概要
UnityでLive2Dの描画をするにあたって描画順の制御に工夫がいるよう.
RenderTextureを使って回避するというメモ.
Live2D_SDK_Unity_2.0.08_1_jp/sample/Simpleにいくつか設定を追加して,
RenderTextureを利用してキャラを描画し,描画順の制御を試みた.
※以下を読まなくても,SDKにsample/RenderTextureというサンプルがある.
Live2Dの描画設定(詳しくはこちら)は二つあり,それぞれにメリット・デメリットがある.
それぞれ困りそうなところは,
L2D_RENDER_DRAW_MESH_NOW:layerを設定できないなど
L2D_RENDER_DRAW_MESH:非推奨(Unityの非推奨のAPIを使っており今後も使えるかわからない
開発環境
- Live2D_SDK_Unity_2.0.08_1_jp
- Unity 5.0.1f1
Render Texture
オフスクリーンレンダリングのようなもの
カメラが写している情報をTextureにする
詳しくはここを参照
手順
以下の三つを追加して,Live2Dのモデルをカメラで写してオブジェクトに貼るイメージ
- Render Texture
- カメラ
- レンダーテクスチャを適用するためのオブジェクト(Plane)
プロジェクトを開いて,
- Project > Create > Render TextureでRender Textureを作る
- Render Textureを選択してInspectorでサイズを1024*1024に設定
- GameObject > Create General > CameraでCameraを作る
- 2で作ったカメラのTarget Textureに1で作ったレンダーテクスチャを設定
- Hierarchy > Create > 3D Object > PlaneでPlaneを作る
- Planeに1で作ったレンダーテクスチャを設定,ShaderはUnlit/Textureにする
参考
http://docs.unity3d.com/ja/current/Manual/class-RenderTexture.html