読者です 読者をやめる 読者になる 読者になる

人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習・Deep Learningに関する記事が多いです。



今日のUnity (5) 光り輝くコイン

Unity

今回はPointLightを活用して光り輝くコインを実装してみた。マウスをクリックすると赤い点から光り輝くコインがばらまかれる。コインにはライトを追加しているのでちゃんと光って見える。けっこう綺麗だ。

f:id:aidiary:20140809143446p:plain

Unity Web Player で見る

Coin

f:id:aidiary:20140809143451p:plain

  • Sphereを潰して平べったい形状に加工
  • 黄色に塗りつぶしたマテリアルを追加
  • ShaderをSelf-Illumin/Specularに設定するとテカテカ輝いて見える
  • 黄色のPointLightを子要素として追加すると実際に発光する
  • 物理挙動を示すようにRigidbodyを追加

子要素として追加するにはPointLightオブジェクトをマウスでドラッグしてコインにドロップすればよい。PointLightはコインローカル座標になるため (0, 0, 0) を指定するとコインのちょうど中央に配置される。

CoinSource

f:id:aidiary:20140809143454p:plain

  • コインを出すオブジェクト
  • 空のGameObject
  • 赤色のPointLightを子要素として追加
  • 円運動をし、マウスクリックでコインを出すスクリプトを追加

PointLightの上限を開放

このまま動かすとPointLightが2つまでしか発光しないことに気づいた。原因は、Edit > Project Settings > QualityPixel Light Countが2に設定されているため。デフォルトではあまり多くの光源を持つことができないらしい。この値を50にして50個のコインが同時に発光できるように変更した。負荷が高過ぎるかと思ったけど普通に動いた。ただし、マウスをクリックしすぎて50個を超えてしまうとCoinSourceの赤い発光が消えてしまう。

参考