Unity で正規分布のグラフを描く
先日、第78回 PHP勉強会 というイベントに参加して、Unity の話を聞くことができました。私は Unity に触ったことはなかったのですが、それほど難しくもなさそうだと思えたので、簡単なプログラムを作成して遊んでみました。
私はデータの可視化といった分野に興味があるので、今回は、Unity の ParticleSystem を利用して 2 次元の多変量正規分布のグラフをアニメーションとして描画してみます。作成にあたっては以下の記事が参考になりました*1。
Graphs, a Unity C# Tutorial
できあがりは以下のようになりました。ウェブブラウザ上で動作を確認できます。
Unity Web Player | unity-normal-distribution
初期状態では、画面上に二次元標準正規分布が描画されます。表示範囲は -5 から +5 です。画面左上のスライダーを操作することで、平均、分散、共分散の値を変更できます。平均は、表示範囲と同じく -5 から +5 まで動かせます。分散は、0.1 から 5 の範囲で動かせます。共分散は、そのときの分散の値に対して設定可能な最小値、最大値がそれぞれスライダーの両端になります*2。
ソースコードは y-uti/unity-normal-distribution · GitHub にあります。Unity のプロジェクトを GitHub で管理する方法については、以下の記事が参考になりました。
Unity で GitHub しよう!
Windows から GitHub を利用するために GitHub for Windows を使いましたが、これを使って Unity のプロジェクト用にリポジトリを作成したときには、生成される .gitignore から *.meta の行を削除しておく必要があります。Unity では GameObject とスクリプトの対応付けに GUID を用いますが、生成された GUID は meta ファイルに記録されるため、Unity のプロジェクトでは meta ファイルを commit から除外してはいけません。Unity の公式フォーラムに掲載されている以下の記事も参考になりました。
Unity and Git: Missing Sprites and Scripts | Unity Community