Blenderを使い、BAKIN【PPG Developer Bakin】でVroidやMMDを動かす方法
◆はじめに
【PPG Developer Bakin 】はHD2DのRPGを作ることが得意なゲームエンジンであり、本来はこういうジャンルを作るものではないと言うことを念頭に置いて下さい。
Bakinというソフトがシンプルで高性能なためにこういう使い方もできるという例です。
◆アプリとモデルデータの準備
▶今回はFreeeの3Dモデリングソフト【Blender】を使用して【PPG Developer Bakin】に【MMD】を導入する方法を解説します。
▼これらは既にインストール済みとして進めます。
▼作業アプリ本体
▼BlenderAdd-on
VRM Addon for Blender Version 2.15.26
▼キャラクターモデル
MMD(PMXモデル)とVroid(Vrm)どちらもBlenderを用いてBinaryFBXに変換するので手順はほぼ同じです。
▼今回も【うー電車】さんの【アライさん】をお借りしようと思います。
▼他のお薦めモデル
※ニコニコ立体ちゃんにはVRMやFBXモデルが最初から存在します。おまけのモーションデータも入ってます。
▼VMDモーションの使用
▶モーション作成にはUnreal EngineやUnityのアセットからアニメーションリターゲットして生成し持ってくる方法(※やり方)や、【MMD】や【Cascadeur 2023.1】などで作成する方法がありますが、今回はVroidやMMDを使用すると言うことでMMDのクリエイターさんのVMDを感謝しつつお借りしようと思います。
▼BakinのDefaultモーション名は、wait、walk、run、attack、guard、skill、damag、KOとなっております。
これらはBakinの方からの返り値があるよう予め設定されているのでコレに合わせて設定していきます。
▼割り当てるVMDを選ぶ上でのお薦め
▼wait ・・アイドリング(待機アニメーション)
むつごろうさんの
▼walk、run・・・歩く、走る
Tacさんの
※MMDの【センターボーン移動型モーション】は定位置固定アニメーションができるのでゲーム表現に適しております。
▼attack
山辺 康夫さんの
▼skill
◆BlenderでFBXにする
●自機、ベースのFBXの生成
▼通常通りBlender起動▶ファイル▶新規▶全般
▼モデルをインポートすると初期値はソリッドビューなので
▼画面右上のシューティングオプションからマテリアルビューに変更して正しく表示されるか確認して下さい。
▼PMXの初期値の【MMDShaderDev】ではエクスポートしてFBX化したときにマテリアル情報が外れるので、mmd Toolのマテリアル設定で「Blender用に変換」を実行し【プリンシプルBSDF】に変換します。
▼PMXのメッシュを選択
▼【プリンシプルBSDF】に変わったことを確認して下さい
ここでは【PMX_Kemo_Arai_03.fbx】にしときます。
▼エクスポートする際の右のパネル、オペレータープリセットの設定。
▼パスモードはコピーにして下さい。右側のパネルもチェックして下さい。
※マテリアルの持ち越しができなくなるので
▼内容▼
対象▶「☑可視オブジェクト」
※Bakinではコレにチェックを入れないと可視オブジェクト以外も表示されるようになってしまいます。
オブジェクト▶エンプティ、アーマーチェア、メッシュ
▼トランスフォーム▼
スケール▶0.01
※BakinのFBXは通常スケールの100分の1じゃないといけないそうです。
「☑空間の変換を使用」
※コレにチェックを入れないと立つ軸が変わるので倒れた状態になります。
▼ジオメトリ▼
「☑三角面化」
※モデルによっては必要かもです。(自作モデルとか)ただしアライさんはDefaultで三角面化されているようでOKっぽい。Bakin側の設定でもできるので☑しなくてもいいかも。
▼アーマーチュア▼
リーフボーン追加は必要ないので外して下さい。
▼☑アニメーションベイク▼
☑全ボーンのキー
※表情キーなども動かすことになるので☑
☑NLAストリップ
※ノンリニアアクションも必要なので☑
☑全アクション
※コレも必要なので☑
□強制的に開始終了キーを挿入
※このFBX自体にはアニメーションが設定されていないのでチェックは必要ないです。外しましょう。
●自機、アニメーションFBXの生成
▼Blender用に変換までは一緒です。
▼アーマーチュアを選択して
▼mmd tools▶モーション▶インポート
▼目的のVMDを選択してインポート
▼タイムライン■の再生ボタン■で再生動作確認
▼次にメッシュを選択して削除します。
※Bakinの公式でアニメーションFBXのメッシュは邪魔なので消すことになっております。
▼エクスポートする際の右のパネル、オペレータープリセットの設定は以下です。
▲マテリアルが無いのでパスは必要ないです。
▼内容▼
対象▶「☑可視オブジェクト」
※可視オブジェクトが無いんですが、Bakin側の【モデルの最適化】でボーンを生成するので入るようです。
オブジェクト▶エンプティ、アーマーチェア
※メッシュは無いので外して下さい。アーマーチュアはモーション情報のために入ります。エンプティはモデルの立ち方向の情報が入っているのでチェックしとかないと倒れた状態になります。
▼トランスフォーム▼
スケール▶0.01
※アニメーションFBXも100分の1じゃないといけません。
「☑空間の変換を使用」
※コレにチェックを入れないと立つ軸が変わるので倒れた状態になります。もしかしたらエンプティーのチェックを外すとこっちも外して良いかもしれません。
▼ジオメトリ▼
「□三角面化」
※アニメーションFBXはBakin側の最適化を使用するのでチェックいりません。
▼アーマーチュア▼
リーフボーン追加は必要ないので外して下さい。
▼☑アニメーションベイク▼
☑全ボーンのキー
※表情キーなども動かすことになるので☑
☑NLAストリップ
※ノンリニアアクションも必要なので☑
☑全アクション
※コレも必要なので☑
□強制的に開始終了キーを挿入
※コレはチェック必要かなと思いましたが、Bakinの方で編集できるので必要ないです。
▲コレで準備完了です。
※ベースのFBXとアニメーションFBXが最低でもwait、walk、runの3つ用意しましょう。
◆Bakinの用意
▼Projectの基本情報はこんな感じにしときましょう。
ラジコン操作はバックの表現がおかしくなる。
▼機能▶リソース▶モデル
▼編集しやすいよう最初からフォルダの方を整理しときましょう。
例として
MMD▶キャラクター▶けものフレンズみたいに。
※マテリアルがあるアニメーションしないFBX
▼モデルを予定のフォルダにインポートできたらアニメーションFBXをインポートするMotion用フォルダを作っときましょう。
●アニメーションFBXのインポート
▼作成したアニメーションFBXをインポートしようとすると、インポート確認画面でこんな風に透明なボックスになります。モデルの最適化をONにしてスケールはBlenderで編集してるので変更しないでOKで実行して下さい。
最低限必要なwait、walk、runに設定するモデルをインポートしときましょう。
▲コレでモデルディレクトリへのインポートは終了です。
▼モーションディレクトリに切り替え、フォルダーをモデル設定と同じように作っておき、「+追加」で前文でモデルディレクトリにインポートしておいたアニメーションFBXのどれか一つをリソースから追加して下さい。
▼前文でモデルディレクトリからモーションディレクトリに引っ張ってきたアニメーションFBXの一つに「+モーション追加」でモデルディレクトリにインポートしておいた残りのアニメーションFBXをすべて追加して統合データを作ります。
▲二度目ですが、BakinのDefaultモーション名は、wait、walk、run、attack、guard、skill、damag、KOとなっております。
これらはBakinの方からの返り値があるよう予め設定されているのでコレに合わせて設定していきます。
※テストプレーでアニメーションしない場合、モーション名を確認して下さい。
あと、モーションの開始と終了もここで編集できるので、初動がおかしかったり、アニメーションが長すぎたり不具合がある場合は編集しましょう。wait、walk、runのアニメーションは短めでループしたほうが良いと思います。
また、統合したモーションデータの名前も例としてPMX_Kemo_Arai_03とかに変えときましょう。
▲この上のディレクトリにスタンプしたベースFBXにモーションFBXの統合データを組み込めば完成です。
※3DスタンプにあるFBXデータは開くとモーション設定でリソースからモーションディレクトリのモーションを組み込める様になってます。
◆データベースでキャストの設定
▼機能▶データベース▶キャスト
▼データベースのキャストで【移動用のグラフィック】を選択。
▼リソースから3Dスタンプディレクトリーのアライさんを選択。
▼移動用のグラフィックがアライさんに変われば今回の目的は達成です。