Siv3D で音楽プレイヤーを作る

Siv3D Advent Calendar 2013, 6 日目の記事です。 今日は Siv3D の GUI と Sound 機能を使って音楽プレイヤーを作ってみました。このプログラムのソースコードと解説は Qiita | Siv3D で音楽プレイヤーを作る に掲載しています。GUI の使い方に慣れる良いチ…

開発中の機能 | 手書き文字認識

Siv3D Advent Calendar 2013, 5 日目の記事です。 今日は開発中の機能の 1 つ「手書き文字認識」を紹介します。 このように、書いている途中でも候補の文字を高速に取得できます。判定には機械学習アルゴリズムを用いた文字認識エンジン Zinnia を使っていま…

手拍子をカウントする

Siv3D Advent Calendar 2013, 4 日目の記事です。 今日はマイク入力を使って手拍子を認識するソフトを作ってみましょう。まずは Play Siv3D! のチュートリアルからマイク入力のサンプルを持ってきます。 チュートリアル | マイク入力 | 録音した波形の解析 |…

Circle の描画関数

Siv3D Advent Calendar 2013, 3 日目の記事です。 今日は Circle の描画関数を紹介します。基本の円描画 draw(color) # include <Siv3D.hpp> void Main() { Circle(30, 30, 20).draw(Palette::Yellow); Circle(100, 100, 50).draw(Palette::Skyblue); Circle(400, 400, </siv3d.hpp>…

INI ファイルからデータを読み込む

Siv3D Advent Calendar 2013, 2 日目の記事です。今日は INI ファイルからデータを読み込む方法を紹介します。 INI ファイルは設定を記述するのに便利なテキストフォーマットです。test1.ini [AAA] aaa = 50 bbb = 1.234 ccc = Hello ; コメント [BBB] aaa =…

Siv3D December 2013 リリース | おすすめ機能

昨日 Siv3D December 2013 をリリースしました。5 か月ぶりの安定版です。 たくさんの更新内容 の中で、僕が特に気に入ってる 8 つのトピックを紹介します。 インストール時間が短くなった June 2013 で Visual Studio プロジェクトテンプレートを導入、そし…

Siv3D が 2013 年度 IPA 未踏事業に採択されました

Siv3D が 2013 年度 IPA 未踏 IT 人材発掘・育成事業 に採択されました。 採択テーマは「メディアアートのためのプログラミングライブラリの開発」です。来月から 9 か月間、東京工業大学の首藤一幸先生 と IPA の支援のもと Siv3D の開発を加速させていきま…

「ゲーム開発者のための C++11 / C++14」を公開しました

C++

全日本学生ゲーム開発者連合(全ゲ連)第 14 回交流会 での講演「ゲーム開発者のための C++11 / C++14」を SlideShare にアップロードしました。 ゲーム開発者のための C++11/C++14SlideShare のページから PDF 版をダウンロードできます。SlideShare アカウ…

全ゲ連で講演します

C++

9/14(土)に 全日本学生ゲーム開発者連合(全ゲ連)第 14 回交流会 にて、「ゲーム開発者のための C++11 / C++14」というテーマで講演します。 Visual Studio 2010, 2012, 2013 で使えるようになった機能を中心に、最新の C++ でゲーム開発をするためのガイ…

6 月振り返り | ゲームコミュニティサミット2013など

個人的な出来事やニュースなどのまとめ。 Haskell free-game @fumieval さんが開発している free-game という Haskell のゲームライブラリを知りました。まさか Haskell のゲームライブラリを同年代の日本人が開発しているとは思わなかったので驚きでした。 …

Siv3D June 2013 を公開しました

Siv3D のアップデート June 2013 を公開しました。今回のバージョンから Siv3D の導入が大幅に簡単になりました。新しい導入手順 を確認してください。もう一つ大きなニュースとして、Siv3D の入門サイト Play Siv3D! をオープンしました。従来のチュートリ…

Clustered Shading の論文 "Clustered Deferred and Forward Shading" を読みました

先日、CG 論文講読会で HPG2012 の論文 "Clustered Deferred and Forward Shading" を紹介しました。Motion Blur 以来 3 か月振りの発表、個人的に読みたいと思っていたこの論文をチョイスしました。Clustered Shading は Tiled Shading の発展型で、従来の …

Siv3D June 2013 で追加予定の機能

まもなく Siv3D の次期アップデート June 2013 をリリースします。一番の目玉機能は Visual Studio 2012 のプロジェクトテンプレートを使った、セットアップの大幅短縮です。 今まで Siv3D をダウンロードしてからサンプルコードを実行するまでは 5 分以上か…

「Processing によるプログラミング入門 第1回」を slideshare にアップロードしました

大学の研究室で Processing についての講義を担当することになりました。 先日の第1回目の講義では、参加した 30人ほどの研究室メンバーがメディアアート・プログラマーとして華々しく(?)デビューしました。今後も 2 週間ごとに新しいスライドを更新してい…

「Kinect 入門」を slideshare にアップロードしました

先日、大学の研究室で Kinect についての講義を担当しました。 Kinect 入門 from Reputeless 僕の研究室はデザイン系の人が多いので、「プログラムはできないけれど、Kinect で何かを提案してみたい」という人をターゲットに、Kinect とは何か、Kinect で何…

Siv3D May 2013 を公開しました

Siv3D のアップデート May 2013 を公開しました。 導入の手順はこちらです。 http://play-siv3d.hateblo.jp/entry/installおもな新機能を紹介します。 Visual Studio 2012 対応 enum class や <random> ヘッダ、range-based for ループ、emplace_back などの C++11 </random>…

シェーダの最適化についての GDC 2013 講演 "Low-level Thinking in High-level Shading Languages" を翻訳しました

Avalanche Studios Emil Persson 氏の GDC 2013 講演 "Low-level Thinking in High-level Shading Languages" を翻訳しました。HLSL の低水準での最適化について書かれている画期的な資料で、講演者が長い開発経験で得たテクニックの数々が紹介されています…

Perlin Noise を C++ で実装

プロシージャルテクスチャの作成に便利な、Ken Perlin の ImprovedNoise を C++11 で実装しました。https://github.com/Reputeless/PerlinNoiseリファレンス実装には無い、乱数シード設定、1D/2D ノイズ、オクターブノイズといった機能を追加しています。C++…

Siv3D March 2013 で追加予定の機能 [グラフィックス以外]

Visual Studio 2012 対応 ライブラリを Visual Studio 2012 の新しい機能やヘッダに対応させます。 enum class による可読性の向上、<random> ヘッダなど Boost 依存が減ることによるライブラリサイズの削減、その他パフォーマンスの向上を見込んでいます。 ドキュメ</random>…

Unity 勉強会【2】空と水

大学のサークルの Unity 勉強会、第 2 回。 『Unityではじめるゲームづくり』の第 5 章後半を進めました。空の画像が貼られた張りぼて「Skybox」をシーンに置き、視点からの距離に応じてフォグの色をブレンドする「Distance Fog」を適用します。さらに太陽が…

コンソールウィンドウでマンデルブロ集合

C++

Windows のコンソールウィンドウにマンデルブロ集合を表示します。 マウスでぐりぐり動かして、[i] / [o] キーでズームイン / アウト。 暇があればマルチサンプリングで表示を改善したり、コードを整備したりする予定です。Visual C++ 2010 / Visual Studio …

Siv3D February 2013 の新機能(2/2)

Siv3D February 2013 で追加された機能の紹介、後編です。 線分の最近接点 Line::closest(Vec2) はある点に最も近い Line 上の点を返します。 中央の白い線分とマウスカーソルを結ぶ最も短い線分を黄色で描画してみます。 # include <Siv3D.hpp> void Main() { const Li</siv3d.hpp>…

Siv3D February 2013 の新機能(1/2)

先日リリースした Siv3D February 2013 で追加された新機能を 2 回にわたって紹介します。今回は「扇型の描画」「日付と時刻のフォーマット」「INIReader」の 3 つです。 扇型の描画 Circle 型で表現される中心座標、半径を持つ扇形を Circle::drawFan() 関…

boost::string_ref に c_str() がない理由

string_ref について Boost 1.53.0 で追加された String_Ref は、文字列の所有権を持たずに先頭のポインタとサイズだけを持つクラスです。const string& の引数を受け取る関数に const char* を渡すと、不要な string オブジェクトが作成されてしまいますが…

Unity 勉強会【1】地形を作る

大学のサークルの Unity 勉強会に参加しました。勉強会メンバーはサークル内外から集まった 7 人。全員プログラミングの経験はありますが、Unity のようなゲームエンジンを使うのは初めてでした。教科書は『Unityではじめるゲームづくり』。Unity の導入方法…

--> 演算子

C++

新しい演算子が採用されたようです。 # include <iostream> int main() { int x = 10; do { std::cout << x << '\n'; } while(x --> 0); } 10 9 8 7 6 5 4 3 2 1 0ネタ元 : What is the name of this operator: “-->”? (stackoverflow)while だと 10 が出力されないの</iostream>…

Siv3D February 2013 をリリース

Siv3D アルファ版のアップデート、Siv3D February 2013 をリリースしました。 変更内容一覧は こちら です。前回の October 2012 plus1 以降、学園祭でのサークルのゲーム制作、Tokyo Demo Fest の作品制作に時間を割いていたため、機能面の大規模な更新はあ…

C++11 の乱数ライブラリ <random>

C++

C++11 では、新しい乱数ライブラリのヘッダ <random> が追加されました。 一様にランダムな整数を生成する「乱数生成エンジン」と、値を特定の方法で分布させる「分布生成器」が用意されています。乱数生成エンジンは 線形合同法 メルセンヌ・ツイスター Lagged Fibo</random>…

モーションブラーの論文「A Reconstruction Filter for Plausible Motion Blur」を読みました

昨年 10 月から参加している CG 論文講読会にて、先週初めて発表を担当し、i3D 2012 の「A Reconstruction Filter for Plausible Motion Blur」を紹介しました。 リアルタイム向けの高品質なモーションブラーフィルタの研究で、エッジ周辺のシャープさや過剰…

6400万平方メートルの大自然 -Unigine Valley Benchmark-

「Heaven benchmark」を開発した Unigine が、新しい 3D ベンチマーク「Valley」をリリースしました。6400 万平方メートルにも及ぶ広大な自然の中を様々な視点で探検するこのベンチマークでは、Ambient Occlusion, DoF, Sun Shafts など様々なリアルタイムグ…