今から始めるUE4極め本⑥ 〜スケルタルメッシュ編〜

UE4極め本
動作確認済みバージョン
UE4.25.1

はじめに

今回はスケルタルメッシュのインポートや物理アセットについて解説します!

これらはUE4のバージョンアップによる機能変更が多い箇所で、本書の出版当時からも大きく変わってしまっています。そのためできるだけ丁寧に変更点を説明しますが、もし躓いてしまった場合は遠慮なくTwitterなどでどこが分かりにくかったかお知らせください!

第13章 スケルタルメッシュをインポートし、キャラに組み込む

13.2.1 骨入りFBXファイルからスケルタルメッシュをインポートする

最新版と異なる箇所
P.210
最新版ではスケルタルメッシュのインポートオプションの表記が変わっています。
旧)[Import as Skeletal]にチェックが入っていることを確認する。
新)[Skeletal Mesh]にチェックが入っていることを確認する。

旧)[Material]カテゴリの[Import Materials]と[Import Textures]のチェックを外して…
新)[Material]カテゴリの[Material Import Method]を[Do Not Create Material]に、[Import Textures]のチェックを外して…

13.2.3 ペルソナアニメーションエディタ

UE4でキャラクター関連の作業をする際には、このペルソナエディタが活躍します。

キャラクターのアセットは、見た目のポリゴンであるメッシュ、骨構造のスケルトン、キャラクターアニメーションを管理するアニメーション、挙動を制御するブループリント、物理に関するPhysicsといった別々のアセットが関連し合って構成されています。

ペルソナウィンドウ右上の[ペルソナモードの切り替え]から切り替えることができます。

それぞれ別のアセットで管理されている

13.2.4 スケルタルメッシュにマテリアルを割り当てる

最新版と異なる箇所
P.210
最新版ではマテリアルをセットするプロパティの表記が変わっています。
旧)[メッシュの詳細]パネルの[LOD 0]>[エレメント0]の指定欄の右側にある…
新)[アセットの詳細]パネルの[Material Slots]>[エレメント0]の指定欄の右側にある…

13.3.2 移動方向へキャラを向ける設定をする

最新版と異なる箇所
P.217
旧)7. [詳細]パネルで、[Character Movement]カテゴリの[Orient Rotation to Movement]にチェックを…
新)7. [詳細]パネルで、[キャラクタ移動(回転設定)]カテゴリの[Orient Rotation to Movement]にチェックを…

第14章 物理アセット

物理アセットは若干難易度が高いのに加えて、UE4.18でエディタの構成が大幅に変わりました。

今回作成するPaperNinjaでは物理アセットの優先度は低いため、もしこの章の途中で躓いてしまったら遠慮なくこの章を飛ばしてください。

14.2.1 物理アセットを新規作成する

最新版と異なる箇所
P.222
最新版では物理アセット作成時に即座にスケルタルメッシュに割り当てることができます。ここでは学習のために割り当ては手作業で行います。
旧)[作成する]>[物理アセット]を選択します。
新)[作成する]>[物理アセット]>[作成]を選択します。
最新版と異なる箇所
P.222
最新版では物理アセット作成時のオプションが大きく変更されています。ここでは以下のように設定することにします。
旧)[ボーン適用]のチェックを外し、[コリジョンジオメトリ]を[Box]に変更、[頂点と一緒に使用]を[Any Weight]に変更します。
新)[Auto Orient to Bone]のチェックを外し、[Primitive Type]を[Box]に変更、[Vertex Weighting Type]を[Any Weight]、[Min Bone Size]を[5.0]に変更します。

14.2.2 物理アセットを割り当てる

物理アセット作成時に自動でスケルタルメッシュに割り当てなかったので、この手順通りに割り当ててください。

表記が異なる箇所
P.223
旧)[メッシュの詳細]>[Physics]カテゴリの[Physics Asset]プロパティを探し、
新)[アセットの詳細]>[物理]カテゴリの[Physics Asset]プロパティを探し、

14.3 物理アセットエディタでコリジョンを調整する

最新版ではボディ(剛体)の表示はワイヤーフレームではなく半透明メッシュで表示されています。

ワイヤーフレーム表示にしたい場合は、ビューポート内の[キャラクター]>[ボディ]>[ボディの描画]を[ワイヤーフレーム]に変更します。

ビューポート内の[キャラクター]>[ボディ]>[ボディの描画]を[ワイヤーフレーム]に変更することができる。

非表示にしたい場合は[なし]を選択します。

14.3.1 ボディ(剛体)を削除する

表記が異なる箇所
P.225
旧)2. [階層]パネルで[head]ボーンを右クリックし、[以下のボディをすべて削除]を選択します。
新)2. [スケルトンツリー]パネルで[head]のボディを右クリックし、[下のすべてのボディを削除]を選択します。

スケルトンツリーで[head]を右クリックし、[下のすべてのボディを削除]を選択する。

14.3.2 ボディの位置と大きさを揃える

Tipにて、物理アセットエディタにはスナップ設定が表示されていないと書かれていますが、最新版では解消されていますのでご安心ください。

14.3.3 コンストレイント

本書ではボディの編集とコンストレイントの編集は、モードレベルで分かれていると書かれていますが、UE4.18以降は同じ物理アセットエディタ上ですべて編集することができるようになっています!ただし、デフォルトでは表示されていないため、以下の手順で表示させる必要があります。

スケルトンツリーの[オプション]>[コンストレイントを表示]を選択します。

特定の部位のコンストレイントを強調表示するには、下図のように[スケルトンツリー]から特定の部位のジョイント要素を選択します。

14.3.4 コンストレイントを調整する

表記が異なる箇所
P.229
旧)2. [階層]パネルで[Neck]を選択し…。
新)2. [スケルトンツリー]パネルで[neck :spine コンストレイント]を選択し…。
※本書ではボディ編集モードとコンストレイント編集モードが分かれているUE4バージョンのため、[Neck]と表記されていますが、最新版ではボディとコンストレイントは混在しているので[Neck]という表記はボディを指します。混同しないようご注意ください。

14.3.5 ボディにシェイプを追加

引き続き、最新版では編集モードが[コンストレイントモード]と[ボディモード]に分かれていませんので、本書に書かれている古い情報については適宜読み流してください。ただし、シェイプもデフォルトでは表示されていないため、以下の手順で表示させる必要があります。

スケルトンツリーの[オプション]>[プリミティブを表示]を選択します。

表記が異なる箇所
P.231
旧)[階層]パネルで[right_ankle]を右クリックして、サブメニューから[ボックスを追加]を選択します。
新)[スケルトンツリー]パネルで[right_ankle]を右クリックして、サブメニューから[形状を追加]>[ボックスを追加]を選択します。

14.3.6 ジョイントの回転、移動

最新版と異なる箇所
P.234
選択したジョイントから先の物理をシミュレートしたい場合は、[スケルトンツリー]パネルでジョイントを選択した状態で、ツールバーの[シミュレート]の横の三角ボタンを押し、[選択済の項目をシミュレート]を選択します。

14.3.7 プロパティのコピー

最新版と異なる箇所
P.235
旧)2. [階層]パネルで、[right_ankle]の子階層にある[Box 0]を右クリックし、メニューから[プロパティをコピー]を選択します。
新)2. [スケルトンツリー]パネルで、[right_ankle]のボディを右クリックし、メニューから[プロパティをコピー]を選択します。

※貼り付ける際も、[left_anke]のボディに対してペーストを行ってください。

また、コンストレイントも別途プロパティをコピーする必要があります。

まとめ

これでスケルタルメッシュ編は終了です!

3Dキャラクターをゲームに表示するという作業は、ゲームエンジンが登場するまでは非常に難易度が高かったのですが、よほど特殊なファイルでない限りはスムーズにゲームエンジンに取り込むことができるようになりました。いい時代ですね~…。

物理アセットは今回のようなラグドールの演出で使う程度であれば調整も楽なのですが、破綻しないよう厳密に設定しようとするととても苦労することになります。今回難しいと感じた方はここで立ち止まらずに、いつか物理を自分のゲームで使うときにまた読み直すとよいかと思います!

わんちゃん
次回はブループリントを使って色々なギミックを作っていきます!

おねがい

学習の際にわかりにくいと感じたことや躓いてしまった箇所がありましたら是非教えてください!

あなたのノウハウを記事に反映することで、次に学習する方の手助けになります!記事のコメントやTwitter等でご連絡ください~!