ガレージ暮らしのトライタム

プログラムやツールの解説や技術を公開する場所

Live2DCubism2.1以前で作られたモデルをCubism3.0SDKで使う

CubismEditorの方は記事があるのに、SDKの使い方が見つからなかったので書きます。

以下お品書きです。
Unity対応のCubism3.0SDKの導入
Unity用モデルを作成する
Unityでモデルを表示させる・アニメーションさせる

今回使用しているモデルはLive2D公式からダウンロードできる、こはるちゃんを活用しています。
自作モデルが無い、手っ取り早くSDKを使いたい方は以下のリンクからダウンロードください。
サンプルデータ集 - Live2D Cubism 2 マニュアル
f:id:traitam:20170619212317p:plain

Unity対応のCubism3.0SDKの導入

Unityのバージョンは5.6以上が必要だとのことですので、Unityバージョン5.6以上を用意します。
やっちゃん on Twitter: "あぁそうそう、Unity版Cubism 3.0 SDKですが、最新版の5.6が動作対象です
5.5以下はパッケージをインポートしても表示がおかしくなりますし、基本的にサポート対象外ですのでご注意を"

次に、リンクからSDKをダウンロードします。
Live2D @ GitHub
f:id:traitam:20170619205112p:plain

f:id:traitam:20170619205300p:plain

SDKはunitypackageで配布されているため、Unityへドラッグ&ドロップでインポートすることにより使えるようになります。
サイト内には2つのリンクがありますが、一つはSDKを使うためのunitypackageで、もう一つはSDK開発者用(?)のものになっています。
そのためunitypackageの方のみダウンロードすればOKです。

また、インポート時、以下の画像のようなエラーが出てくることがあります。
これはSDKをインポート直後はDllが読み込まれないためのエラーです。
f:id:traitam:20170619212047p:plain

この状態でモデルをインポートしようとAsset内にモデルを入れても、プレハブ化してくれません。
対策として、一度Unityを再起動します。
再起動することで、Dllが読み込まれLive2Dモデルインポートが可能になります。

Unityでモデルにアニメーションさせる

SDKはCubism2.1以前のモデルには対応しておらず、3.0と拡張子が異なっています。
そのため、使いたいモデルは一度CubismEditor3.0で組込み用モデルを作成する必要があります。

方法はCubismEditor3.0でCubism2.1以前に作られたモデルを開きます。
その後、「ファイル」→「組込み用ファイル書き出し」→「moc3ファイル書き出し」
を行い、moc3ファイルを作成します。
f:id:traitam:20170619210520p:plain

これで、Unityで使うためのモデルの用意はできました。
ただ、これだけではモデルは表示できますがモーションが使えません。

ですので、以下の流れで組込み用モーションの出力を行います。
これも今までは.mtnファイルだったのが.jsonファイルになっています。
手順としては以下の通りです。
まず、Cubism2.1以前で作られたアニメーションファイル。.canxファイルをCubismEditor3.0にドラッグ&ドロップします。
次に、組込み用モーションにしたいアニメーションをダブルクリックし、編集タブを開きます。
その後、「ファイル」→「組込み用ファイル書き出し」→「モーションファイル書き出し」を押します。
f:id:traitam:20170619210925p:plain

そして、ウィンドウが新しく出てきますので「選択中のシーンを出力」にチェックを入れ、OKを押します。
f:id:traitam:20170619210914p:plain

これで必要なデータは全て揃いました。
モデルファイル(.moc3)、モデル情報(.model3.json)、テクスチャデータ(フォルダ)、モーションデータ(.model3.json)
2.1以前とは違いモデル情報とモーションデータの2つが同じ拡張子になっています。

Unityでモデルを表示させる・アニメーションさせる

予め、SDKを入れたUnityプロジェクトにモデルデータが分かりやすいようにAssetフォルダの下に「Live2DModels」フォルダを作成します。
その中に先ほど作った4つのデータを入れると自動変換が行われプレハブデータや.animデータを作成してくれます。
これはUnityで良く使われているもので、今回のSDKをこれらのデータを活用してモデルを表示やアニメーションを作っていきます。

無事にインポートされれば以下の画像のようになります。
f:id:traitam:20170619212645p:plain

Sceneウィンドウ、もしくはHieraruchyウィンドウにプレハブをドラッグ&ドロップします。
f:id:traitam:20170619212900p:plain

これでモデルが表示されれば成功です。


モデルが正しく表示されない?
その場合、Unityのカメラを設定する必要があります。
HieraruchyウィンドウのMainCameraを選択し、ProjectionをOrthographicに変更します。
f:id:traitam:20170619213202p:plain
f:id:traitam:20170619214456p:plain
f:id:traitam:20170619214508p:plain

これで無事に表示されるはずです。
これでモデルの表示は終了です。

ただ、これではモデルが動いてくれません。
ですので次はアニメーションを設定します。

画像のように、一度モデルを選択した後に、Inspecterウィンドウに.animデータをドラッグ&ドロップします。
f:id:traitam:20170619213545p:plain

そのご再生ボタンを押すとモデルがアニメーションしてくれます。
f:id:traitam:20170619213636p:plain
かわいいですね。


本日は以上です。
キモになっているのは「Cubism2.1以前で作られたモデルをどのようにCubism3.0SDKで使うか」という所で、モデルを最新版の拡張子にするという点でした。
これが出来るようになれば2.1以前より3.0SDKはUnityの仕様に沿った使い方で活用ができるので、Unityに慣れている方には嬉しい変更ですね。

メカニムを活用したアニメーションの推移は書かないんですか?という質問を想定して。
これはUnityの仕様になってしまうので、これ以上はいいかな、と考えています。


それではみなさん、楽しい創作ライフを!