Q. 対応プラットフォームはどのようになっていますか? A. Unityで対応しているものであればどのプラットフォームでもご利用いただけます。 Q. 実行してもLive2Dのモデルが描画されません。 A. 仕様により、描画命令はUpdate()からでは行えません。 Q. 当たり判定の範囲が少し上にずれています。 A. 1.0.00のサンプルコード内のバグによるものです。 1.0.01以降では修正してありますので、そちらをお使いください。 Q. iPhone など実機に書き出したときにテクスチャの画像が圧縮されて汚くなってしまうことがあります。 A.
Q. 描画されるLive2Dのモデルに、レイヤーを設定することはできますか? (2014/03/04追記) 設定できるようになりました。 1.0.03_1で追加された、モデルの描画方式をL2D_RENDER_DRAW_MESHに切り替え、 Live2DModelUnityクラスのsetLayer()に、引数にレイヤーの値を渡してください。 描画方式の切り替えは以下を参照してください。 Q. 半透明のマテリアルを設定したゲームオブジェクトが、Live2Dのモデルの前に表示できません。 A. Live2Dの描画の仕組み上そのようになります。 下記回避策をお試しください。 Unityでは、複数のカメラで撮ったものが合成されます。別のカメラを用意し、そのカメラのClear FlagsをDepth onlyにして、 Depthの値をメインのカメラのものよりも大きい値にして、モデルの上に表示させたいものをそのカメラに映させてください。 また、Unity Pro版で提供されているRender Textureを利用しても対応できます。 Render TextureでLive2Dのモデルをゲームオブジェクトに表示し、そのゲームオブジェクトを扱うことで問題を回避できます。 ※2013/11/22追記 描画方法を追加しました。 詳細は以下の該当項目を参照してください。 Q. Live2Dのモデルを半透明に表示させることはできますか? A. Unity Pro版で提供されているRender Textureを利用すると出来ます。 Render TextureでLive2Dのモデルをゲームオブジェクトに表示し、そのゲームオブジェクト自体の透明度を変化させることで半透明表現ができます。 Q. Live2Dのモデル全体に乗算で色をのせることはできますか? A. はい、できます。 Live2DModelUnity.getDrawParam().setBaseColor() の関数から設定してください。 Q.Live2Dのモデルの裏面が表示されません。 A. SDK1.0.02で修正しました。 また、従来通り裏面を表示したくないときは、テクスチャの設定前に以下のように設定してください。 Live2DModelUnity model; model.setCulling( true );//カリングを有効にする。(裏面を表示しない) Q.1.0.03_1で追加された、Live2Dのモデルの描画方式の変え方がわかりません。 A. Live2DModelUnity.setRenderMode() を一度だけ呼び出して、引数に以下のいずれかを渡してください。 ・Live2D.L2D_RENDER_DRAW_MESH_NOW (デフォルトで設定している値) ・Live2D.L2D_RENDER_DRAW_MESH Live2D.L2D_RENDER_DRAW_MESH の設定の場合、Live2DモデルにLayerを設定することが出来ます。 Live2DModelUnity.setLayer() の引数に、設定したいLayerの値(デフォルトでは0)を渡してください。 ※Live2D.L2D_RENDER_DRAW_MESH に設定する場合、 Live2DモデルをレンダリングしているカメラのProjectionをOrthographicにしてください。 Q.Resources.UnloadUnusedAssets()を実行するとエラーになってモデルが表示されなくなってしまいます。 A. SDK1.0.04_1で修正しました。 最新のバージョンをお使いください。 Q.ダウンロードしたzipファイルを解凍していたら、途中でエラーになってしまいます。 A. 解凍ソフトにLhaplusをお使いの場合、解凍時にエラーが発生することがあります。 他の解凍ソフトをお試しください。 Q.ドローコールが膨大な数字になってしまいます。ドローコールを抑えることはできませんか? A. 原因は二つ考えられます。 一つは、モデルの描画の仕様で起こります。 ドローコールは、テクスチャを一枚読み込むごとに一つ増えます。 Live2Dは、モデルの各描画オブジェクトを背面から順に描画していきます。 その際、パーツによっては一つ前に描画したものとその次に描画するものの テクスチャが違う場合があり、その度にテクスチャを読み込み直しています。 この読み込み直しが多くなりすぎてドローコールが膨大になってしまうこともあります。 対処法としては、例えばテクスチャの枚数を一枚にすると、テクスチャの 読み込み直しがなくなるため、一度のドローコールに抑えることができます。 二つ目として、シーン内に複数のカメラが配置されていることでも発生します。 SDKでは、描画部分をOnRenderObject()から呼んでいます。 OnRenderObjectは、カメラがシーンをレンダリングした後に呼び出される関数ですが、 配置したカメラの数だけ呼び出されてしまいます。 そのため、カメラの数だけモデルの描画命令が呼び出され、ドローコールが 膨大になってしまいます。 この場合の対策は二つあります。 一つ目の対策は、モデルの描画方式をデフォルトから変更し、モデルにレイヤーを指定し、 カリングマスクを設定する方法です。 描画方式の切り替え方、レイヤーの設定の方法は、本ページ上部を参照してください。 モデルに設定したレイヤーの値で、カメラのカリングマスクを設定してください。 二つ目の対策は、OnRenderObject()とほぼ同じタイミングで呼び出される、 OnPostRender()から描画をする方法です。 OnRenderObject()と違い、OnPostRender()は、Cameraにセットされた スクリプトでのみ呼び出されるオーバーライド関数です。 この関数を記述したスクリプトを、モデルを描画したいカメラにセットし、 そこからモデルの描画を行ってください。 この方法では、UnityエディターのSceneビューにも表示されなくなりますが、それは Unityの仕様です。 ご了承ください。 |