この記事でのバージョン
Unity 2017.1.0f3
2DDL Pro 1.4.2
はじめに
現在、Unityライセンス購入時に優良&有料アセット詰め合わせ、エッセンシャルパックが貰えます。
せっかく貰ったのだから試しに使ってみよう!記事にもしてみよう!というのがこの記事の趣旨です。
さて、今回紹介するアセットですが、タイトルの通り2Dエッセンシャルに含まれる2DDL Proです。
説明によると2D環境にて高品質な光と影の演出が出来るとの事。
2DDL Pro : 2D Dynamic Lights and Shadows - Asset Store |
何が出来るの?
とりあえず何が出来るのか知りたいので、サンプルを見ていこうと思ったのですが、
なんとこの2DDL Proにはサンプルが17個も含まれています。
さすがに多すぎる感はありますが、それだけ色々出来るっぽいです。
とりあえず"0 - DUNGEON GAME"が雰囲気を掴める感じだったので、これをご紹介。
DUNGEON GAMEはその名の通り、ちょっとしたダンジョン探索ゲームです。
全4ステージで、1ステージ目は操作説明的な感じ、既に松明がいい感じに光っている。
2ステージ目はプレイヤーが光源を持って移動するサンプルで、
明るくしないと見えない宝箱があったり、明るくすると開くドアがあったりします。
3ステージ目もプレイヤーが光源を持って移動するサンプルですが、
2ステージ目とは違い、見下ろし型&光源が近いほど明るいという自然な感じ。
4ステージ目はまさかのエンディング。
角度を付けて3Dっぽくしている所をプレイヤーがひたすら歩くというもの。
このサンプルだけでだいぶ色々出来る事が分かりましたが、
一応、他のサンプルもざっと見て、出来る事を箇条書きで並べてみると以下ような感じ。
- 光源の様々な設定(色、明るさ、半径、角度、レイヤー、etc)
- 影の表示、リアルタイムで更新
- 光に当たったか、外れたかの判定
- 光が当たっている所だけ表示(Fog)
- 光が当たった時だけ物を表示
- レンズフレアの追加
- 炎のような揺らめき
- 複数の光源
しっかりは見てないので、恐らくこれ以外にも出来る事は色々ありそうです。
以下はおまけで、他のサンプルの抜粋です。
仕組み
2DDLでは明るい部分のMeshを生成&更新し、
それをMeshRendererで表示する事で光源を作り出しているようです。
また、Sprite Rendererを明るくするのにはUnityのPoint Lightを使っているようです。
ただし、このPoint Lightも2DDLのスクリプトから調整出来るようになっています。
なお、影が出来るか判定するため、
壁などの光を遮断する部分にCollider2Dが必要になります。
おわりに
上述の通り、Sprite Rendererを明るくする部分にはUnityのPoint Lightが使われているため、
前回の記事でやったやり方の代わりにはならないようです。
とは言え、PointLightだけでは出来る事は限られているので、
2Dでもっと光と影の表現をしたい!という場合にはかなり強力な手助けになりそうです。