■公式マニュアル「Unityでグリグリ動かしてみよう」
- モデルを変更する際、Cubism Modelerを使うよう言われるが、このソフトはCubism Editorに内包されている
- Macの場合はJavaのインストールが必要
- OSXがYosemiteの時にJava8で動作していたが、OSXをEI Capitanに変えたら今度はJava SE 6のインストールを要求された
- 上記ポップアップが現れたら「詳しい情報...」を押せばAppleのJava提供ページに移動できる
- Macの基本設定では、ファイル名末尾に.bytesを書き足してもファイルの形式変更はできない(参考)。そのため、チュートリアルのようにハルのモデルをミクのモデルに差し替えることができない。落としたSDKのsample\SampleApp1\Assets\Editor\Live2DImporter.csを使うとmocファイルをインポートした時に自動でバイト形式に変換してくれるエディタ拡張ができる。(参考)
■公式マニュアル「ハジメテノ Live2D」('14記念セミナー)
- Unityに関する話は④から
- 動画が見切れているので特設ページのスクリプト閲覧必須
- Cubism Modelerで2Dの絵にポリゴンを割り振り、パーツごとの動きを-n~nの範囲で細かく設定する
- モデルファイル(.cmox)をダブルクリックしてソフトを起動しても、モデルデータは自動で読み込まれない。都度、ドラッグ&ドロップでモデルを読み込む必要がある。
- Cubism Modelerで作ったモデルをCubism Animatorに読み込み、歌う動作などのアニメーションを作る
- リップシンク機能を使えば、読み込んだ音楽ファイルの音の強弱で口の開閉を自動で行わせることができる
- 瞬きなどの汎用性のある動きは「テンプレート」として保存すると、好きな時にその動作(キー設定)を配置できる
- Unityで使うのは.mtn形式のファイル(参考:マニュアルの基本操作の冒頭の説明)。何故かこの書き出しについての映像資料がない
- Cubism Animatorで.mtnのインポートができるはずなのだが(参考)、何故かできない。ver.2.1なのに何故かダメ。そのため、Cubism Viewerでモーションのチェックを行った。
- 原因判明。プロジェクトとシーンを作り、モデルデータを先に読み込んでおく必要がある(参考)。
- Cubism Viewer
- .mocをドロップするよう要求されるが、
- ドロップ後もこのウィンドウは残る。そしてこのウィンドウを閉じると確認なしにCubism Viewerが終了する。
- 読み込むのはmocファイルとそのテクスチャファイルのみ。モーションフォルダは別途ドロップして追加する必要がある。(参考)
- モーションの「再生」を押すことで、その動きを確認できる(参考)
- プロジェクト>サンプルにある「表情:笑顔」などを選ぶと、自動的にそれらしい動きを作ってくれる。便利。
- Live2DのSDKを使うため、プロジェクトにLive2DUnity.dllをインポートする。動画ではLive2Dというフォルダを作り、その中に格納している。
- ver.2.1で追加されたシェーダーはResourcesフォルダ内に入れないと、「Live2DModelUnity.Draw()」でエラーとなる(参考)
- 必要になるNameSpaceは、live2dとlive2d.framework。後者は何に使われるのかまだ分からないので調査中。
- Startにて、Live2D.init()で初期化する。必ず最初に呼び出す必要がある。
- テクスチャの「ゴミ取りツール」はCubism Modelerに統合された(参考)。Java7が以上必要(Java8推奨)。
- setPalamFloatで、目や首の向きなどを変更できる
- パラメータIDはCubism Modelerで確認できる(参考)
- Live2DModelUnityが何故かリファレンスに無い。ALive2DModelクラスが抽象基底クラスとなっており、Live2DModelXXXXはそのサブクラス(参考)。Unityの場合も、基本的なメンバはALive2DModelを参考にすれば良い。
- モデルがオブジェクトより前面に表示されてしまうのは、OnRenderObjectで描画しているケース。描画モードをデフォルトのDrawMeshNowからDrawMeshに変更し、Updateで描画するようにすれば解決できる。(参考:参考先の「描画方法を変更する」を参照)
- …とあるが、 setRenderModeメソッドがリファレンスに見つからない
- 試しにサンプルにて、モデルの前面にオブジェクトやuGUIを置いてみたが、前述の問題は起きなかった
- サンプルの描画はOnRenderObjectで行っているので、おそらく仕様が変わったのだと思う
- カメラのProjectionがOrthographicになっていないと、パース(遠近法)により表示が崩れる
- モーションについて
- public TextAsset[] mtnFiles; // mtnファイル
- private Live2DMotion motion; // Live2Dモーションクラス
- private MotionQueueManager motionManager; // モーション管理クラス
- startMotionの第二引数はメモリ管理(C#の場合は気にしなくていいとのこと)
- モーション管理クラスは複数生成して、モーションの途中で別なモーションを割り込ませることなどもできる
- Update内でmotionManager.updateParam( live2DModel );を呼び出す必要がある
- addToParamFloatでパラメーターを書き換えることなくの加算できる(参考)
〜参考〜
〜追記(2016.4.15)〜
Live2Dについて、有志の方がwikiを編集してくださっている模様。こちらに勉強会などの情報もまとめられていました。感謝。
0 件のコメント:
コメントを投稿