去年末話題になったこちら、皆さんご存知でしょうか?
https://twitter.com/ShirasawaKazane/status/680709583522758656
実はコレ、プログラミングなしで作れます。
今回はその作り方を説明してみようと思います。
コミケ近づいてきたし。
※急いで作ったのであんまり動作確認とか出来てません。
対応するかはわかりませんが、何かあればコメントに書いていってください。
[最終更新:2016/07/19]
対象
Live2Dのモデルは作れるけど、プログラミング、Unityのどれもわからない人
前提
1.Live2Dのモデル一式はできているものとします。
Live2Dのモデルは作れるけど、プログラミング、Unityのどれもわからない人
前提
1.Live2Dのモデル一式はできているものとします。
(モデル一式:mocとかmtnとか、model.jsonとかphysics.jsonとかの、Viewerでまとめて書き出されるやつ。詳細は以下参照)
2.作ったプロジェクトをAndroidやiOSとして書き出す方法についてはやりませんので、各自で調べてください。
「Unity Android 書き出し」 、「Unity iOS 書き出し」とかで検索すればやり方が出てくると思います。
3.プログラミングは不要ですが、アイドリング以外のモーション再生にはmodel.jsonを少し書き換える必要があります。
解説もしますし、やることもそれほど難しくないので、ちょっとやってみてください。
必要なもの
・Live2Dのモデル一式(mocとかテクスチャとかmodel.jsonとか)
・Unity3D(FREE版でOK)
・愛・Live2D SDK for Unity (に付属してるサンプルプロジェクト「SampleApp1」)
・これだけでモデルの表示からモーション再生(アイドリング、タップによるモーション、表情切替等)、
音声の再生まで全部できます。
・ダウンロードは こちら から
音声の再生まで全部できます。
・ダウンロードは こちら から
[2016/06/14 更新]
[2016/06/13 更新]
・愛
作り方
1.SDKのサンプルプロジェクトの/sample/SampleApp1に、
解凍したC90フォルダ内のAssetsフォルダをまるごと入れます。
解凍したC90フォルダ内のAssetsフォルダをまるごと入れます。
Assetsフォルダには修正ファイルが入ってるので全て置き換えてください。
2.SampleApp1をUnityで開きます。
3.モデル一式をResourcesフォルダの中に突っ込みます。
後からResourcesフォルダに移動しても大丈夫ですが、
使うときには必ずResourcesフォルダ内に置いてください。
使うときには必ずResourcesフォルダ内に置いてください。
ちなみに、ResourcesフォルダとかSceneフォルダとかに元々入ってたファイルは
今回は使わないので消してしまっても大丈夫です。
------------[2016/06/13 追記]------------
/[SDKのフォルダ]/sample/SampleApp1/Assets/Resources/live2d/[キャラ名] には、SDKのプロジェクトに付属しているモデル一式が入っています。
もしモデルを作らず、まず試しに使ってみたいという方は、それぞれのキャラクターのmodel.jsonを、
この記事用にカスタマイズしたものを以下のzipに入れてありますので、これに差し替えて使ってみてください。
model.json.zip 【再配布禁止】
------------------------------------------------
4.以上ができたら、メニューバーのLive2D>Create Live2D Canvasをクリックします。
すると、Hierarchyビューに「Live2D_Canvas」というものが作成されます。
5.今作った「Live2D_Canvas」を選択すると、Inspectorビューに情報が表示されるので、
その中の「この範囲にmodel.jsonを(略)」と書かれた枠の中に、3.でResourcesフォルダに
突っ込んだモデル一式にある(はず)の「XXXX.model」をドラッグアンドドロップします。
(拡張子が表示されていないだけで、ホントは XXXX.model.jsonです)
そうしたら、Unity上部の [ ▶ ] ボタンを押して実行すれば表示されるようになります。
複数キャラクターを表示したい場合は、4.と5.を繰り返します。
ただし、AndroidやiOSは大体2体が限界で、それ以上は動作が重くなってしまいますので注意してください。
表示したモデルの位置やサイズの調整は、InspectorのTransformの値で調整してください。
背景に画像を起きたい場合は、UnityのオブジェクトのQuadやPlaneを作って、それに画像をドラッグアンドドロップしてサイズや位置などを調整します。
↑Hierarchyを右クリック or Hierarchy左上の「Create ▼」ボタンで出ます
突っ込んだモデル一式にある(はず)の「XXXX.model」をドラッグアンドドロップします。
(拡張子が表示されていないだけで、ホントは XXXX.model.jsonです)
そうしたら、Unity上部の [ ▶ ] ボタンを押して実行すれば表示されるようになります。
複数キャラクターを表示したい場合は、4.と5.を繰り返します。
ただし、AndroidやiOSは大体2体が限界で、それ以上は動作が重くなってしまいますので注意してください。
表示したモデルの位置やサイズの調整は、InspectorのTransformの値で調整してください。
背景に画像を起きたい場合は、UnityのオブジェクトのQuadやPlaneを作って、それに画像をドラッグアンドドロップしてサイズや位置などを調整します。
↑Hierarchyを右クリック or Hierarchy左上の「Create ▼」ボタンで出ます
あとはこれをAndroidやiOSなどに書き出せばOK!
アイドリング以外のモーションの設定方法
このプロジェクトでは、タップからのモーション再生もmodel.jsonから扱えます。
実際にはmodel.jsonの "motions" 内に以下の様に書きます。
"motions":{"D_BODY_001.01":[{"file":"mtn/tap_00.mtn" ,"sound": "voice/tap_00.mp3","fade_in":2000},{"file":"mtn/tap_01.mtn" ,"sound": "voice/tap_01.mp3","fade_in":2000}],…"D_BODY_001.02":[{"file":"mtn/tap_02.mtn" ,"fade_in":2000, "fade_out":250},{"file":"mtn/tap_03.mtn" ,"fade_in":1000, "fade_out":1000}],…
"D_BODY_001.AA":
[
{"file":"mtn/tap_BB.mtn" ,"fade_in":2000, "fade_out":2000}
]
}
"motions"内にはモーションの設定を記述します。
その中に書かれている"D_BODY_001.01"や"D_BODY_001.02"は描画オブジェクトのIDです。
この描画オブジェクトがタップされた時に、この項目内のモーションの中からランダムで再生されます。
1つしか無い場合は必ずそれが再生されます。
1つもない場合は2016/06/02現在エラーに成ってしまうバグがあるので、最低一つは入れるか、項目ごと消しておいてください。
早いうちに直したものをリリースしますスミマセン……。
項目の並び順は特に問題ありませんが、上から順に範囲内かどうかをチェックしていますので、もし複数の当たり判定の範囲が重なっている場合、より優先したいものを上にしておくといいでしょう。
例えば仮に、「身体」の当たり判定の中に「胸」の当たり判定がある場合、「身体」の項目よりも「胸」の項目を上に書いておけば「胸」の方が優先されます。
また、描画オブジェクトのID以外にも特殊なタイミングで呼び出される項目名もあります。
用意しているのは以下の通りです。
"idle" (アイドリングモーション用)
"shake" (加速度センサーのある端末を振り回した時に呼び出される)
"flick_head" (画面をスワイプして顔を素早く横に向かせた時に呼び出される)
"sleep" (指定した時間タップされない場合に呼び出される。時間はタップするとリセットされる)
"sleep" が呼び出されるまでの時間ですが、これはmodel.jsonではなくUnityエディター上で設定します。
単位は秒です。
model.jsonに表情用jsonが設定してある場合、「表情切替用のID」に指定した描画オブジェクトのIDがタップされた時にランダムで表情が切り替わります。
以上となります。
何かわからないことなどありましたらコメントまでお願いします。
誤: {"file":"mtn/tap_01.mtn" ,"sound": "voice/tap_01.mp3","fade_in":2000},
正: {"file":"mtn/tap_01.mtn" ,"sound": "voice/tap_01.mp3","fade_in":2000}