[Unity] スプライト+法線マップで3Dっぽいスプライト表示を行う

ドット絵シェーダーへの道でドット絵が生成できるツールが公開されました。さらにUnity上でドット絵を出力する方法「Unityでドット絵シェーダ その2」「Unityでドット絵シェーダ その3」が記事になりました。

3Dから2D画像を作る時に法線マップも一緒に出してくれたら、スプライト画像+ライティングが出来るのでは?と考えて調べて試してみました。

スプライト+ライティングはすぐできる事が判明。

さらにSprite DLightという2D画像から法線マップを生成し、ライティング可能なデータを作成するソフトが既にある模様。おおー、これで試せる、と思ったが有料。トライアル版みたいな無料バージョンが無いのでお試しで使うことが出来ません。

じゃあ、自分でデータを作って試そうか・・・。

 

※2015/3/10 追記

こちらのツールでも2D画像から法線マップを作れるそうです。1週間お試し版もある。


 

 

環境

Unity 5.0.0

 

参考サイト

Unityでドット絵シェーダ その2

Unityでドット絵シェーダ その3

その5 0から学ぶ法線マップ

Unity のシェーダの基礎を勉強してみたのでやる気出してまとめてみた

法線マップをどのように使用しますか? (Unity 公式マニュアル)

 

スプライトと法線マップを生成する

モデルデータを用意し、スプライトと法線マップを作成します。画面に目的のものを出力し、どうにかファイルへ出力した結果がこちら。(なんせシェーダを触るのが初めてで四苦八苦した。多分シェーダー書ける人は1分で書ける。)

sd_unity_chan_normalsd_unity_chan_sprite

※作成した法線マップが正しいかどうか判らないよ!でもそれっぽいから合っているはずだよ!

 

法線マップ側の設定

UnityにPNGを認識させるとデフォルトでSpriteとして認識されるようです。これをNormal Mapへ変更します。Texture TypeをNormal Mapにし、Create from Grayscaleのチェックを外します。(既に法線マップデータのつもりなので変換しません)

sd_unity_chan_check_off

 

マテリアルを準備

マテリアルを作成しNormal Mapに先ほどの法線マップを指定します。

sd_unity_chan_set_normal

 

配置したスプライトのマテリアルを変更

ユニティちゃん画像のSprite Renderer内のマテリアルを変更して完了です。

sd_unity_chan_material

 

サンプル実行

マウス位置にポイントライトが移動します。

 

まとめ

最初は2D画像があるなら Paint.NET + 法線マップ作成プラグイン で作れるじゃん!と思ったのですが甘かったです。ドット絵シェーダからスプライト+法線マップなどが出力できれば、冒頭で紹介したSprite DLightのように使えるのかなぁと妄想しておきます。

 

ユニティちゃんライセンス

ユニティちゃんライセンスこのコンテンツは、『ユニティちゃんライセンス』で提供されています


希木小鳥

Diablo1でハクスラの世界に。今はBorderlands2をプレイ中。ぬるゲーマー。

あわせて読みたい