2019.12.10

【Unity編】Live2Dでゼルダの伝説のファンアートを作る

    【作画編】Live2Dでゼルダの伝説のファンアートを作る

    【Live2D編】Live2Dでゼルダの伝説のファンアートを作る

    の続きです。

     

    いよいよ今回は、前回Live2Dで作ったアニメーションをUnityで動かしてみたいと思います!

     

    Live2Dでmocファイルとモーションファイルを書き出す

    テクスチャアトラスを書き出す

    まず、Live2DでUnityに読み込むためのファイルを書き出します。

     

    オレンジ色の丸で囲った場所をクリックすると、このアニメーション のテクスチャアトラスが生成できます。

     

     

    テクスチャアトラスとは、今回作ったpsdのパーツレイヤーを1枚の平面にまとめた画像データです。自動レイアウトを押すと、基本的にパーツが重ならないようにできるだけ大きくレイアウトしてくれます。

    この1枚の画像は最大8000px規模まで大きくすることができますが、重くなるんでちょうどいい大きさで作ってください。

     

    これについてもちょっと頭を使うところがあります。一応説明しますので、以下の2つのキャラクターをみてください。

     

    こちら、ご存知インフォ少年(左)とスーパーサイヤ少年(右)です。

    それぞれレイヤー数は「頭」「体」「武器」「防具」の4枚、キャラクターサイズもほぼ揃えています。ちょっとインフォ少年の方が大きいかなって感じですね。この2キャラで倍率を変えずにテクスチャアトラス的にパーツを並べると以下のようになります。

     

    元画像ではややインフォ少年のほうが大きかったのに、無駄なく平面上にならべるとスーパーサイヤ少年の方が大きくなりました。

    画像サイズとレイヤー数を揃えているのに、キャラによってはこれくらいテクスチャアトラスのサイズが変わって来てしまいます。これは「パーツの大きさ」「パーツの重なり具合」「パーツの形」などの要素がそれぞれことなるからです。今回は顔と体は問題なかったのですが、スーパーサイヤ少年の武器や防具が大きく、体と重なっている部分が多かったためこれくらいテクスチャのサイズが変わってしまったのです。

    例えばこれでスーパーサイヤ少年の方の倍率を少し下げテクスチャアトラスのサイズを同じにして書き出す場合、出来上がったモーションデータはスーパーサイヤ少年の方が倍率を下げた分解像度も下がってしまいます。その点だけ注意が必要です。

     

    mocファイルを書き出す

     

    テクスチャアトラスの生成ができたら、mocファイルを書き出します。

    上記画像のように、「ファイル」→「組み込み用ファイル書き出し」→「mocファイル書き出し」で、mocファイルを書き出したい空のフォルダを選択し、書き出します。

     

    モーションデータを書き出す

    mocファイルを書き出したら、今度はそのフォルダにモーションファイルも作って入れましょう。

     

     

    今度はアニメーション(canデータ)の方を選択した状態で、「ファイル」→「組み込み用ファイル書き出し」→「モーションファイル書き出し」をクリックします。こちらのデータも先ほど制作したフォルダの中に入れると良いと思います。

     

    これでLive2Dは終わりです。今生成されたフォルダは、中がこんな感じになってると思います。

     

     

    テクスチャ(png)の入ったフォルダと、moc3、model3.json、cdi3.json。そしてモーションファイルである.motion3.json。この4ファイル+モーションファイルが生成されていたら問題ないかと思います。

     

    Unityで再生する

    SDK for Unityをインストールする

    UnityはデフォルトではLive2Dに対応していないため、ソフトウェア開発キットをダウンロードする必要があります。「そんなもん知らねーよ」という人はこちらからDLしてください。

    とりあえずUnityを立ち上げまして、プロジェクトにSDKをドラッグ&ドロップでインポートします。

     

     

    するとこちらの左上のようなポップアップが出るので、全部インポートします。インポートし終わったら一度Unityを再起動する必要があります。再起動しないで制作を続けるとPrefabが生成されなかったり、エラーが出たりします。

     

     

    再起動後、今度はAssets内に先ほどLive2Dで作ったフォルダをそのままドラッグ&ドロップでインポートします。

     

     

    SDKがちゃんと作動している場合、インポートした時点でこのようにPrefab(立方体のやつ)が生成されるはずです。されなかった場合は別で問題があるのでConsoleなどでエラーを吐いてないか確認します。

     

    そして、生成されたPrefabをHierarchyに追加することで、、、

     

     

    どん!リンクがやっと表示されました!

    しかし、これではまだ動かないため、

     

     

    この中の右から3番目にあるモーションファイルをHierarchyのリンクのprefabにドラッグ&ドロップすることで、アニメーションを再生することが可能です。

     

     

    実際に動かして見ると、アンチエイリアスがない感じ・・・。弓紐をみてもらえるとわかると思うのですが、テラテラしてるような、ジャギジャギしてるような感じに多少なってしまいます。ちょっと気になってしまうので、Textureのinspector上でAdvancedのGenerate mini mapsにチェックを入れると

     

     

    このように大分改善されました。

     

    まとめ

    ということで、3回に分けて、ゼルダの伝説ファンアートを動かして来ました。UnityやLive2Dなどを使いたいな〜と思っている人にも参考にしてもらえれば嬉しいです。Unityに関してはゲームアニメーション制作依頼の際にデバッグ用として使用しているためそこまで明るいわけではありませんが、わからないこととかあれば答えられるだけ答えますので、問い合わせでもなんでも聞いてもらえたらと思います。

     

    終わります!

    咳戸
    咳戸

    大手広告代理店から独立し、不動産事業や投資等で
    莫大な資産を得る人生を日々夢見ながら家でゴロゴロしている。
    TWITTER

    関連記事