Unityのアニメーション付きアセットをBakinに導入する
今回の記事は私がかなり苦戦した、Unityのアニメーション付きアセットをBakinに導入するための手順について解説しています。
Bakinは新興のゲーム開発ソフトということもあり、アセットがそれほど充実していません。
そのため、Unityのような大御所のソフト(ゲームエンジン)用に開発されたアセットをBakinに流用することで、Bakinでも豊富なアセットを使うことが出来るようになります。
ただし、そのためには色々と面倒な手順や前提条件がありますので、今回の記事ではそういった面倒な部分について焦点を当てて解説していきます。
今回導入するアセット
先ず、今回導入するUnityのアセットは「HEROIC FANTASY CREATURES FULL PACK Volume 1」というものです。
豊富なモンスターの3Dモデルが用意されているので、ゲーム作成する際の敵キャラクターとして採用できると思います。
また、アセットはFBXというファイル形式のため取り込みがしやすく、攻撃のアニメーション等も充実しているため非常におすすめのアセットです。
その代わり値段が非常に高め(約400ドルなので、1ドル150円換算だと6万円近くです)なのですが、ブラックフライデー等のセール期間であれば70%OFFくらいになりますので、そういったタイミングを狙いましょう。
もちろん、このアセット以外のものでも今回紹介する手順で基本的にBakinに導入することは出来ると思いますので、最初は無料のアセット等で試してみるのも良いと思います。
ただ、アセットの相性次第では上手く取り込めないものも有ると思いますので、その点については予めご理解ください。
このアセットをBakinに導入するわけですが、UnityのアセットをそのままBakinに導入するのは様々な理由から不可能です。
そのため、Unityのアセットは一度Blenderという3D用ソフトに取り込んだうえで、Bakinで取り込める形式に変換して出力することになります。
つまり、全体的な導入の流れとしては次のようになります。
①Unityのアセットを購入
②Unityのプロジェクトにアセットをインポート
③BlenderにUnityプロジェクトのアセットをインポート
④BlenderでBakinに取り込める形式に変換(シェーディング設定、アーマチェア設定、アニメーション設定)してエクスポート
⑤BakinにBlenderで変換したアセットをインポート
この流れの中で難しいのは④くらいですが、私が数日悩むくらいには色々操作が必要です。
恐らくBlenderの知識を十分に持っている人であれば、そこまで悩まずに変換できるのだと思いますが、Blender初心者の私には非常に難しかったです。。。
今回の解説における前提条件
今回の解説では先に説明した通り、「Unity」の「アセット」を「Blender」というソフトを経由して「Bakin」に導入するという流れになります。
そのため、前提条件として以下が完了しているものとして解説していきます。
・Unityのアセットを購入済み
・Unityのアセットの利用規約で他ゲームへの流用が禁止されていない
・Unityをインストール済み
・Blenderをインストール済み
・Bakinをインストール済み
Unityのアセットは上で張ったリンクのサイトで欲しいものがあれば何か購入してみれば、それで良いかと思います。
Unityアセットは基本的に他のゲームへの流用は問題ないのですが、一部のアセットでは禁止されているものがあります。
Unityアセットの利用規約はアセットのページの「License agreement」が「Standard Unity Asset Store EULA」となっていれば、通常規約のアセットなので流用は問題ないはずです。
また、Unity・Blender・Bakinのインストールについてはそれぞれのインストール方法を解説しているサイトで確認すれば、簡単にインストールすることが出来ると思います。
この前提条件を事前に完了してから、以降の導入手順について進めてもらえればと思います。
Unityプロジェクトにアセットをインポート
最初にUnityのプロジェクトにアセットをインポートする方法について解説します。
先ずは事前にUnityを起動しておき、適当なプロジェクトを一つ作っておいてください(別に起動しておかなくても出来ますが、その方が手間が少ないので)。
そして、Unityのアセットを購入したときの以下ページで「Open in Unity」をクリックします。
「Open in Unity」をクリックすると、ブラウザの上部に次のような表示が出てきます。
問題ないので「開く」をクリックしてください。
そうすると次のようにUnity上で「パッケージマネージャー」が表示されます。
この「パッケージマネージャー」で「〇〇をプロジェクトにインポートします」というボタンを押してください。
対象のアセットのサイズ次第で結構時間が掛かりますが、基本的には長くても数分程度で終わると思います。
暫くすると、次のように対象のアセットの中でどれをプロジェクトにインポートするのか選ぶ画面が出てきますので、そのまま「インポート」を押してください(そうすれば対象のアセットの全ての内容がインポートされます)。
インポートが完了するとプロジェクトの「Assets」の中に導入したアセット名のフォルダが出来ていると思います(次の画像の左下付近にフォルダが出来ている)。
試しにインポートしたアセットをUnityの画面上に表示してみます。
FBXのファイルやPrefabファイルを画面上にドラッグ&ドロップすれば確認できますので、Unity上でも事前に確認しておいて下さい。
ほとんどのアセットがFBXファイルの保存場所に「FBX Files」等の分かりやすい名称でフォルダが分けられているので、探せば見つかるはずです(中にはFBXファイルの無いアセットもあるので、そこは注意してください)。
アセットに何か問題があれば都度調べて対応する必要がありますが、今回は正常にインポートできた前提で進めます。
Unity上でFBXファイルの保存場所を見つけたら、右クリックして「エクスプローラーで表示」を選択して下さい。
そうするとFBXファイルの保存場所がPC上で表示できます。
次以降の手順ではこの保存場所のファイルを使って作業を進めていきます。
UnityのアセットをBlenderで変換する
BlenderにUnityのアセットをインポート
それではUnityのアセットをBlenderにインポートして、Bakinで表示できるように変換していきたいと思います。
最初にBlenderを起動して、次のような画面を表示しておいてください。
初期表示されている邪魔なCubeは先に消しておきましょう。後から消すことも出来ますが、私は先に消しておく派です。
次にPC上のフォルダで表示しているUnityのアセットのFBXファイルの中でモデル用のファイルをBlender上にドラッグ&ドロップしてください。
尚、ドラッグ&ドロップではなく、Blenderの左上の「ファイル」から「インポート」で「FBX」を指定しても良いですが、私はドラッグ&ドロップの方が早いのでこちらの方法を使っています。
モデル用のファイルは今回のアセットだと「SK_〇〇.FBX」となっており、モデル以外の動作アニメーション用のファイルは「〇〇@Walk.FBX」のようなネーミングでした。
ここら辺の名称は購入したアセット毎で違いますので、事前にUnity上で確認してから対象のファイルを選択して下さい。
FBXファイルをBlender上にドラッグ&ドロップすると、次のようにインポート設定を行う画面が表示されます。
アーマチェアの「リーフボーンを無視」「子を強制的に接続」の2つにチェックを付けて、それ以外はデフォルト設定のままで「FBXをインポート」してください(このチェックを付けない方が上手くいくときもあるっぽい?)。
そうすると、次のようにUnityのアセットがBlender上に取り込めたことが確認できると思います。
アセットによってはモデルの向き等がおかしくなっている場合もありますが、その場合は手動で向きを補正してください。
Blenderのシェーディング設定
※アセットによっては不要の作業となる可能性があります。
インポートしたFBXファイルは上手くマテリアルの設定がされていないことが多いので、その場合は「シェーディング」のタブを開き、画面中央の「スロット」の右側にある「新規」ボタンを押してください。
次に画面中央のマテリアルの設定部分に設定する画像をドラッグ&ドロップしてください。
今回のアセットでは「Textures」の中にtgaファイルがあったのでそれを使いますが、アセットによってはjpgファイルだったり、pngファイルだったりするので、アセット毎にマテリアル画像は違うことは認識しておいてください。
選択した画像の「カラー」と「プリンシプルBSDF」の「ベースカラー」を線を引っ張って繋げば、Unity上で見たのと同様の色付きのモデルとなったことが確認できると思います。
モデルとアーマチェアの関連付け
※アセットによっては不要の作業となる可能性があります。
モデルにマテリアルが設定されると、これで結構いけてるんじゃないかと思うかもしれませんが、大体のアセットでは、このままだと棒立ちのモデルにしかなりません。
動く必要のないモデルであればそれで良いのですが、今回のアセットのようにアニメーション付きのモデルであれば、しっかりとモデルとアーマチェア(骨組み)を関連付けて動くようにしておく必要があります。
方法としては、右側のビューレイヤー上に表示されている、モデル(今回はSK_Hydra)とArmatureを選択した状態にして、「Ctrl」キーと「P」キーを同時押ししてください。
そうすると、「ペアレント対象(親子設定)」という表示が出てくるので、「自動のウェイトで」を選択して下さい。
この操作でモデルとアーマチェアの親子関係を設定し、自動的に骨組みのウェイト(どの程度動かすか)を設定することが出来ます。
本来的には手動で細かくウェイトを設定する方が良いのでしょうが、正直専門的な知識が無いとそれらの調整は難しいため、とりあえずは自動設定で良いと思います。
この操作をすると何故かスケールの設定がおかしくなってしまうのですが、これはUnityからインポートした時は0.01のスケールでBlenderに取り込まれていたモデルが、1.00のスケールに変更されてしまったためです。
そのため、モデルのスケールを全て0.01に変更すれば、サイズは元に戻ります。
スケールの変更はモデルを選択した状態で、右側の「オブジェクト」プロパティを表示することで、「トランスフォーム」の設定から変更できます。
全て0.01に変更すれば次の通り、モデルとアーマチェアの大きさはつり合いが取れます。
しかし、何故かモデルの向きまで少しおかしくなっているため、同じく「オブジェクト」プロパティを表示することで、「トランスフォーム」の設定で「回転X」を0度にすることで、向きを揃えることが出来ます。
アニメーションの取り込み
※アセットによっては不要の作業となる可能性があります。
モデルとアーマチェアの関連付けをした後は各アニメーションを取り込んでいきます。
アニメーション用のFBXファイルを一つBlenderにドラッグ&ドロップしてみてください。
そうすると先ほどのモデル同様にFBXファイルの取り込み表示が出てくるので、特に設定変更はせずにFBXをインポートしてください(デフォルト設定でアニメーションの取り込みにチェックが入っています)。
そうすると、右上のビューに新しいアーマチェアが追加されたことが分かります。
試しにBlenderの中央下部にある「再生ボタン(▶ボタン)」を押してみてください。
恐らくモデルは動かずに新しいアーマチェアの骨組みだけが動くアニメーションになっていると思います。
これはアーマチェアがそれぞれ別の階層であり、新しく取り込んだ方のアーマチェアにのみアニメーションが紐づいているからです。
このアニメーションをモデルの方のアーマチェアと紐づけたいので、Blender上部の「アニメーション」タブを開いてください。
「アニメーション」タブを開くと、Blenderの画面下部にアニメーションに関する設定が色々出てきますが、左下の「ドープシート」となっているプルダウンを選択し、「アクション」に変更してみて下さい。
すると、「Armature.001|Take 001|BaseLayer」みたいにアクション名が表示されている箇所が出てきます。
この表示の右側にあるチェックが付いていることを確認したら、一度「レイアウト」タブに戻り、モデルの方のアーマチェアを選択した状態で再び「アクション」タブを表示してください。
そうすると、モデルの方のアーマチェアにはアニメーションが無いため「新規」のボタンが出てくると思います。
この「新規」のボタンを押すと、アニメーションを追加できます。
そして追加できるアニメーションはもう一つのアーマチェアでチェック状態にした、アニメーションだけ表示されてくると思います。
このアニメーションを選択してみて下さい。
そうすると、右上のビューでモデルの方のアーマチェアにアニメーションが作成されたことが分かると思います。
アニメーションを移し終わったら、後から入れたアニメーション用のアーマチェアは不要になりますので、右上のビューで選択して削除しておいてください。
ここまでの手順を全て正常に終わらせている場合、実際にこのアニメーションを動かしてみると、モデルのモンスターが実際に動くことを確認できると思います。
動かない場合は恐らくどこかの手順に問題が有るか、アセット側の問題で上手くBlenderに取り込めていないのではないかと思いますので、個別に調べる必要があります。
正直調べるのはBlenderの知識が結構必要となってくるので、かなり時間と根気を必要とすることを覚えておいてください(今回私もかなり苦労しましたので・・・)。
尚、複数のアニメーションを適用したい場合も、同様の手順で追加していけば複数アニメーションを持ったモデルを作成することが出来ます。
BakinにBlenderで変換したアセットをインポート
BlenderからBakin用のFBXファイルを出力
それではBlenderでの変換作業の終わったアセットをBakinに向けて出力したいと思います。
先ずは左上の「ファイル」から「エクスポート」を選択し、出力形式で「FBX」を選んでください。
出力時の設定でデフォルトから変更するのはそれぞれ以下の通りです。
・保存先→自分の使いやすい保存先を設定してください
・ファイル名→好きに決めてください
・オブジェクト設定→「エンプティ」「アーマチェア」「メッシュ」「その他」を選択(複数選択する場合はShiftキーを押しながら選択する必要があります)
・スケール設定→0.01(Bakinの画面に合わせたサイズにする必要があるので、ここはアセットそれぞれで少し変えてください)
・ジオメトリ(スムージング)設定→「タンジェント空間」にチェック
これらを設定したら「FBXをエクスポート」ボタンを押下し、設定した保存先にFBXファイルが出力されていることを確認してください。
BakinにFBXファイルを取り込む
Bakinを起動し、アセットを取り込みたいプロジェクトを事前に作成しておいてください。
Bakinのプロジェクトを作成したら、「リソース」を開いて「3Dスタンプ」の「+追加」ボタンを押してください。
そうすると、リソースを取り込むための画面が表示されますので、「ファイルから作る」のタブを選択し、Blenderから出力したFBXファイルのパスへ移動し、対象のファイルを選択して下さい。
選択したら、右下の「追加して終了」ボタンを押してください。
3DスタンプとしてUnityアセットが取り込めたことが確認できると思います。
この取り込みが上手くいかない場合は、サイズが大き過ぎるという問題が起きているケースが多いので、BlenderでのFBXファイルエクスポート時の設定でスケールをもう少し小さくすれば良いと思います。
Blenderで折角シェーディングで色を付けましたが、Bakinではそのまま取り込むと今回のように色が消えますので、右側の設定で「マテリアル」を選択して、色を付けます。
「マテリアル」ではBlenderのシェーディング同様にアセットに付随している画像ファイルを選択すれば、その画像ファイルに沿って色を付けてくれます。
今回は「T_Hydra_BaseColor.jpg」というJPEGの画像ファイルを使って色を設定します。
「ファイルから作る」タブを選択し、Unityのアセットフォルダの中に含まれている対象の画像ファイルを選択したら、「選択して終了」ボタンを押してください。
すると、Bakin上でもUnity等と同様に色が付いたことが分かります。
ただし、Bakinは元々ドット絵を中心にしたゲームを作成するためのソフトのため、画質の差からBlenderやUnity等で表示していた時と比べて、かなり荒い見た目になるのはご理解下さい。
次に作成したアニメーションを取り込んでいきたいと思います。
「リソース」の「3Dスタンプ」で今回追加した対象を選択した状態で、右側の「モーション」と書かれた部分の右側(現在は何も設定されていない場所)を選択して下さい。
そうすれば、モーション設定用のファイルを選択する画面が表示されます。
今回作成したFBXファイルにはアニメーションをすでに作成済みなので、「リソースから作る」タブを選択し、今回追加したファイルを選択して、「選択して終了」ボタンを押して下さい。
そうすると、Bakinのアニメーション設定画面が表示されますので、右側のモーションを選択すれば、設定されているアニメーションの通り動くのが確認できると思います。
Bakinにはモーション名の規則がありますので、規則と紐づいたアニメーションを割り当てることで、Bakinの各主動作で自然に動かすことが出来るようになります。
もちろん独自のモーション名でも「キャストイベント」で指定すれば、そのモーションで動かすことも出来るので、そこら辺は作成者の好きにしてもらって構いません。
マテリアルの設定とモーションの設定が終わったら完成でも良いのですが、今のままだとモデルの当たり判定(コリジョン)がかなり大きく設定されてしまっています。
コリジョンは四角い枠の白線で表示されていますが、取り込んだままの設定では実際のゲームに組み込むとあまりにも大きすぎる判定で違和感が出てきます。
コリジョンを変更するには、右側の「簡易コリジョン設定」の欄でモデルに合わせて微調整する必要がありますが、基本的なタイプとして「Box」や「Capsule」等があります。
モデルの形次第ではありますが、基本的には「Box」にして、そのモデルの大きさで調整するのが一番自然なコリジョンになることが多い気はしています。
コリジョン設定はモデルの形やゲームの特性等と合わせて個別で調整するようにお願いします。
ここまでの設定を終えたアセットをBakinに表示してみました。
Bakinのデフォルトアセットでは表現できない、強そうなモンスターをBakinに登場させることが出来ました。
まとめ
今回はUnityのアニメーション付きアセットをBlender経由でBakinに取り込む方法について解説しました。
以前VRoidを取り込んだことが有ったので難しくはないと思っていたのですが、Blenderの操作で思った以上に手間取りました。
この記事は私が今後忘れないようにするための備忘録として各操作を残しておくものですので、今後どなたかの参考になれば幸いです。
今後もBakinでゲームを作成する方法は解説していきたいと思いますので、興味があれば閲覧ください。
Canvaで簡単にマンガを作る方法 AIイラストで誰でもマンガ家になれる時代! – センコの活動記録 (senkohome.com)
コメント