UE4」カテゴリーアーカイブ

UE4でMMDモデル・アニメーションを使用する方法

※この記事は2019年5月時点での情報です。

個人でゲームを作成するにあたって、MMDのモデルやアニメーションを使いたい、という需要があろうかと思います。
Unityでゲームを作成する場合、MMDからUnityへの実装のための情報はかなり充実しているように思います。
(元々UnityPackageとして配信されているものも結構あります)

ただ、UE4で使いたい場合への情報はやや少ないようでした。
私自身がそれでかなり苦労したので、UE4でMMDモデル・アニメーションを使えるようにしたまでの備忘録です。

▼この記事の対象者
・UE4でMMDモデル・MMDアニメーションを使いたい
・MMDBridgeでIK、物理、表情モーフをベイクする方法がうまく行かなかった

▼この記事での環境
・Windows10
・Blender2.79b
・Unreal Engine 4.21.2

■目次
UE4で動かしたいMMDモデルを用意
▽BlenderにMMD用アドオンを入れる
▽BlenderでMMDモデルをインポートする
▽MMDのアニメーションファイルを読み込む
▽FBXファイルとしてエクスポートする
▽UE4にFBXファイルをインポートする

ではまいりましょう。

▽UE4で動かしたいMMDモデルを用意

私の場合以下からモデルを探しました。

ちょむメモ(仮)
fbxモデル無料配布中なアニメ系女の子キャラクターまとめ

VPVP wiki
モデルデータ/個人デザインキャラクタ

ニコニ立体
MMDデータ配布中の作品一覧

今回は「中野シスターズ」の「 鷺宮なか 」ちゃんを使用させていただきます。
公式Twitter

!!!注意!!!
モデル・アニメーションごとにどのような使用を許可しているかは各々異なります。
大抵の場合モデルデータと一緒にReadmeなどが添付されており、そこにライセンスについての詳細が書かれている場合が多いのできちんと確認しましょう。

▽BlenderにMMD用アドオンを入れる

Blenderは標準ではPMD/PMX(MMDモデルのファイル形式)のインポートに対応していないため、アドオンを別途入れる必要があります。

※導入方法については以下を参照させていただきました。
Blenderの易しい使い方 – 【Blender】MMDのPMD・PMX・VMDファイルを読み込み、出力する方法

1.こちらから「mmd_tools」をダウンロードします。
上記の[Clone or download]ボタンを押下するとポップアップがでるので、引き続き[Download ZIP]ボタンを押下すると任意の場所にダウンロードできます。

2.上記でダウンロードした「blender_mmd_tools-master.zip」を解凍します。

3.解凍した中に「mmd_tools」というフォルダがあります。
こちらを、Blenderをインストールしたフォルダ>各バージョン番号のフォルダ内> 「scripts」フォルダ>「addons」フォルダ とたどり、その中にコピーします。

4.Blenderを起動し、[ファイル]>[ユーザー設定]>[アドオン]タブ を開き、検索ボックスに「mmd_tools」と入力します。

5.すると「Object:mmd_tools」という項目が出てくるので、チェックボックスにチェックを付けます。

6.[ユーザー設定の保存]ボタンを押して、ウィンドウを閉じます。

▽BlenderでMMDモデルをインポートする

1.前述のアドオンがきちんと導入できていれば、
[ファイル]>[インポート]の中に「MikuMikuDance Model(.pmd .pmx)」という項目があるはずなのでこちらを選択します。

2.インポートするモデルのファイルを選択します。
読み込む際のインポートオプションを設定できますが、今回は割愛します。
希望通りのインポートができなかった場合はアドオンの公式ページを参照してください。

3.インポートが完了するとMMDのモデルが表示されますがグレー一色になっていますね…。

Blenderをある程度ご存知の方はご存知でしょうが、初めてBlenderを触る方のために、簡単にMMDに近い表示になるための設定を書いておきます。

・下のシェーディングボタンが標準では「ソリッド」になっているので「マテリアル」に変更する。

暗っ!怖っ!というわけでライティングも変更します。

・プロパティウィンドウ(標準では右下)の[ワールド]タブ(球のアイコン)にして、「環境照明」にチェックを入れる。

よし。これでモデルがある程度確認できるようになりました。

4.揺れもの(髪やアクセサリ)がついているモデルの場合、物理計算をさせる必要があります。これを反映させるため、以下を行ってください。

・キャラクターを右クリックして選択状態にします。
※Blenderの場合、対象の選択は一般的な「クリック」ではなく「右クリック」で行います。

すると、3Dビュー(キャラが映っているウィンドウ)右の[ツールシェルフ]の中、[mmd_tool]タブの「rigidbody:」に「Build」ボタンが現れるので、これを押しておきます。

▽MMDのアニメーションファイルを読み込む。

1.[ツールシェルフ]>[mmd_tool]タブの[Import Motion]ボタンを押します。

2.MMDのモーションファイル(vmd)ファイルを任意の場所から選択し、[Import VMD file to MMD Model]ボタンを押下してインポートします。

今回はテスト用に以下からモーションをお借りしました。
hino 様
【MMD-DMC3】galaxias!

3.きちんとインポートできていれば、下の[タイムライン]ウィンドウに黄色い線がポツポツ見えるはずです。
これはそのフレームにキーが打たれていることを示しています。

さて、ここできちんと動くかどうか確認してみましょう。
[タイムライン]ウィンドウの「再生」ボタンをポチります。

ちゃんと動いています!髪の動きもバッチリです。

▽FBXファイルとしてエクスポートする

1.[ファイル]>[エクスポート]>[FBX(.fbx)]を選択します。

2.保存場所とファイル名指定になりますが、ここでオプションを設定します。
「バージョン:」の下の各タブごとに設定を行う必要があります。
設定内容に関しては以下のスクリーンショットを参照してください。

「メイン」タブ
「ジオメトリ」タブ
「アーマチュア」タブ

※「アニメーション」タブは特に設定を変更していません(全部チェック入った状態)。
設定ができたら任意の名前で[FBXをエクスポート]ボタンを押して保存します。

▽UE4にFBXファイルをインポートする

1.UE4を起動し、上記で作成したFBXファイルを、インポートしたいフォルダにドラッグ&ドロップ(もしくはコンテエンツブラウザの[インポート]ボタンからFBXファイルを選択)します。

2.「FBXインポートオプション」ウィンドウが開かれます。
下記のスクリーンショットを参考に設定してください。

特に注意すべきは以下の点です。

・[Import Morph Target]にチェックを入れてください。
これにチェックを入れないと、表情変化が反映されません。

・[Animation – Import Animation]にチェックを入れてください。
これにチェックを入れないと、アニメーションシーケンスが作成されません。
また、[Animation Length]は「Animated Time」にしておきましょう。

設定が終わったら[全てインポート]ボタンを押してインポート開始です。
(モーションが長いとそれに伴ってインポート時間も長くなります。)

3.インポートが完了すると以下のような状態になっているはずです。

さっそくアニメーションシーケンスを確認してみましょう!

(゚∀゚)キタコレ!!

アニメーション・表情・髪の動き、全部きちんと移行することができました!

さあこれであとはゲームに使用OKで、ゲーム中に使いたいモデルとモーションを探しまくるだけだ!(これがまぁまた大変なわけですが…)

それでは充実したゲーム作成ライフを!

カードアクションRPG進捗(2019年2月)

2月の頭からUnrealEngine4の学習がてら自作のゲームを作成しています。
初心に帰って、プランナーデビューして初めてメイン部分のゲームデザインを担当したゲームを自分ひとりで作ってみようかと…。
「カードアクションRPG」という、以後誰もやっていない超ニッチジャンルのゲームです。

カードアクションRPG(2月進捗)

ひとまず
・スタンドのようにすぐ出てきて攻撃してすぐ消える武器型
・カードを投げて召喚して徘徊、プレイヤーのHPを回復する自律型
・カメラ演出付きで召喚し、強力な攻撃を放つ召喚型
という基本3タイプが何となくそれっぽく動くところまではできました。
また、バージョン管理までは不要かなと思いましたが、Githubをいじったらよくわかっていないながらもなんとかできたのも収穫。

引き続き1ヶ月おきくらいに進捗を備忘録的に書いていきたい次第。

[UE4]極み本 Appendixの目次

湊和久氏著『Unreal Engine4で極めるゲーム開発』の購入者特典のダウンロードデータ「Appendix」の目次です。

■各Appendixの内容
・AppendixA:Movement Component でアクタを動かす
・AppendixB:Construction Script
・AppendixC:カメラを作り込む
・AppendixD:ゲームのUI を構築する
・AppendixE:パッケージを作成する

▼AppendixA:Movement Component でアクタを動かす
A.1 Rotating Movement で歯車を回す
A.1.1 歯車のブループリントを組み上げる
A.1.2 Rotating Movement の追加
A.1.3 回転の調整機能を追加する
A.2 Projectile Movement で火の玉を飛ばす
A.2.1 パーティクルシステムをマイグレーション(移行)する
A.2.2 火の玉のブループリントの準備
A.2.3 Projectile Movementコンポーネントの追加
A.2.4 重力に引かれて
A.2.5 バウンス設定を行う
A.2.6 プロジェクタイルの調整機能を追加する
A.2.7 Lifespan の設定
A.3 移動処理の補足
A.3.1 手裏剣のダメージ処理をセットアップする
A.3.2 進行方向を変数化する
A.3.3 Sweepフラグ
A.3.4 ヒットイベントを使って手裏剣を反射させる
A.3.5 スピードの調整機能を作る
A.3.6 TickイベントとDelta Seconds
A.3.7 Lifespan の設定
A.4 スポーナーを作る
A.4.1 スポーンのスクリプトの復習
A.4.2 スポーンノードでパラメータを編集する
A.4.3 専用スポーナーのブループリントを作る
A.4.4 専用スポーナーにパラメータを追加する
A.4.5 専用スポーナーを使いやすくする

▼AppendixB:Construction Script
B.1 Construction Script で形状を調整する
B.1.1 Construction Scriptとは
B.1.2 初めての(?)Construction Script
B.1.3 歯車のConstruction Scriptを仕上げる
B.2 床材を自動的に敷き詰める
B.2.1 コンストラクション用のアクタを作る
B.2.2 コンポーネントを使って床を手動で敷き詰める
B.2.3 コンポーネントを使って床を自動で敷き詰める
B.2.4 床の敷き詰めを幅に対応させる
B.2.5 床材を稀に反転させる
B.2.6 床材の自動配置を仕上げる
B.3 プロシージャルな屏風を作る
B.3.1 屏風を並べる
B.3.2 パネルに角度をつける
B.3.3 パネルの角度を変更可能にする
B.3.4 角度に合わせて屏風の幅を広げる
B.3.5 もっと屏風らしく
B.3.6 奥行きから角度を計算する
B.3.7 編集機能を追加する
B.3.8 マテリアルを仕上げる
B.4 ステージ1に組み込む
B.4.1 グレーボックスを追加する
B.4.2 メッシングを行う

▼AppendixC:カメラを作り込む
C.1 UE4カメラワークショップ
C.1.1 ビューターゲット
C.1.2 入力される映像を求めて
C.1.3 ビューターゲットの変更とブレンド
C.1.4 実際の動作から学び取る
C.2 独自のPlayer Camera Manager による三人称視点
C.2.1 標準のカメラ処理をオーバーライドする
C.2.2 初めての(?)オーバーライド
C.2.3 ビューターゲットからカメラ(視点)の位置や向きを求める
C.2.4 カメラ距離とFOVをパラメータ化する
C.3 カメラとコントロールを作り込む
C.3.1 カメラをヨー周回させる
C.3.2 カメラをピッチ周回させる
C.3.3 カメラの回転に“再び”角度制限を加える
C.3.4 カメラの向きで移動するように“再び”改良する
C.4 ゲームのための作り込み
C.4.1 カメラの周回に簡単な補間を持たせる
C.4.2 カメラの「焦点距離変更」「FOV 変更」にも補間を持たせる
C.4.3 ステージクリアを演出する
C.4.4 ニンジャに巻物を掴ませる

▼AppendixD:ゲームのUI を構築する
D.1 UIとワークフロー
D.1.1 UI のワークフロー
D.1.2 UE4におけるUIワークフロー
D.2 タイトル画面をデザインする
D.2.1 ウィジェットブループリントの作成とテクスチャの準備
D.2.2 ウィジェットブループリントエディタ
D.2.3 タイトルの背景を配置する
D.2.4 背景の手前にイメージを重ねる
D.2.5 タイトルロゴを重ねる
D.2.6 タイトルロゴをフレームインさせる
D.3 タイトル画面をゲームに組み込む
D.3.1 アニメーションを呼び出す
D.3.2 レベルブループリントからタイトルHUDを呼び出す
D.4 ウィジェットとのインタラクション
D.4.1 デザイン作業:タイトル画面にボタンを追加する
D.4.2 組み込み作業:ボタンを押したときの反応を組む
D.5 インゲームHUDをデザインする
D.5.1 残機数を表示する
D.5.2 コイン数を表示する
D.6 インゲームHUDをゲームに組み込む
D.6.1 PNGameMode でインゲームHUDを追加
D.6.2 プロパティのバインディング

▼AppendixE:パッケージを作成する
E.1 ゲームを仕上げる
E.1.1 レベル間の遷移
E.1.2 スイッチを踏んだらコインを出現させる
E.1.3 敵AI のデコレーターを確実にする
E.1.4 エラッタ:ふすまが正しく影を落とすようにする
E.1.5 エラッタ: 効果音が確実に聴こえるようにする
E.1.6 スクリプトの警告を取る
E.2 パッケージ化の設定と実行
E.2.1 ゲーム開始時のレベルを指定する
E.2.2 Windowsプラットフォームのビルド設定
E.2.3 はじめてのパッケージング(ビルド)
E.2.4 パッケージ化されたゲームを起動する
E.2.5 Shippingビルドとビルドのイテレーション
E.3 最後に
E.3.1 本書完全読了後の情報源
E.3.2 次は何をすればいい?
E.3.3 困ったら誰に聞けばいい?
E.3.4 まだやることがあるってこと?

本編は目次があるのですが、Appendixには目次がなかったので、「あの内容どこにあったっけかな?」と思うたびにAppendixを開きまくって確認していたのが面倒くさくなったので作ってみました。

UE4.7の頃に書かれた本ではありますが、今持ってなお、UE4を初めて触る方々にとっては良書であることに変わりはないので、これから本書を読まれる方々のお役に立てれば幸いです。

しかし…ブログの更新が2年ぶりだとは…サボり過ぎにも程があるな…。