ビークル アートの設定

Unreal Engine でビークルにアート アセットを設定する方法

ビークルのアートのセットアップに最低限必要な、基本条件は スケルタルメッシュ のみです。ビークルのタイプによって、どの程度複雑なアートのセットアップが必要であるかが決まります。 また、サスペンションには特別な配慮が必要な場合があります。戦車のサスペンションは隠れてしまう場合がほとんどなので、凝った設定をする必要はありません。 しかし、ビークルゲーム 内のデューンバギーなどの場合は、むき出しになっているコンポーネントすべてを本物のように動作させるために多くのジョイントが必要になります。

基礎原理

ビークルのメッシュは X軸上に沿って正の X 方向を向きます。

basics01.png

Unreal Engine で使用するために車輪の半径をセンチメータ単位で測定する必要があります。

wheelRadius.png

上記の画像では、Maya の Distance Measurement ツールを使用して、車輪上の対向する 2 つの頂点間の距離を元に車輪の直径を測定します。 この値の半分が車輪の半径になります。

3D Studio Max の Helpers セクションに類似ツールがあります。

ジョイント

四輪車両で最低限必要なジョイント数は、5 です。ルートが 1 で車輪が 4 です。車輪とルートのジョイントは、X 軸が前方向、Z 軸が上方向になります。

wheelJnt.png

これで Y 軸上を転がり、Z 軸で操作します。

その他のジョイントは適切に見えるように調整可能ですが、Animation ブループリントLook At ノード等は、X 軸が前方向であることを前提としています。

ビジュアルの不自然さを防ぐためには、車輪のジョイントを正確に中心にするようにします。コリジョン検知には、ビジュアル メッシュを使用しませんが、 車輪メッシュが中央から外れていると、車輪が壊れているように見え、モーション ブラーによってかなり目立ちます。

バインディング

Maya の標準的なスムーズ バインドまたは 3DS Max のスキンモディファイアです。不自然な変形を生じることなく自由に回転できるように、1 つのジョイントのみに車輪のウェイトをかけるようにします。ショックアブソーバーやサスペンションの場合は、 スキニングでこのような状態を回避できますが、アンリアルエディタ側で更なる見直しが必要となります。

エクスポート

ビークルは特に気にしなくてもスケルタルメッシュとしてエクスポートできます。

インポート

ビークルはスケルタルメッシュに標準の FBX を使用してインポートされます。インポーターの [Create Physics Asset (物理アセットを作成)] オプションを有効にしておくとよいです。

物理アセット

PAicon.png

物理アセットはビークルにとって非常に重要であり、見過ごしたり、スキップしたりできないものです。Unreal Engine で初めて物理アセットを作成すると 以下のようになるでしょう。

badPA.png

この図のようになるのは、物理アセットツール (PhAT) は、ジョイントにスキニングされた頂点をできる限りラップしようとするからです。実際のところ、これらをすべて削除し、再作成することになるでしょう。 なぜでしょう?現時点では、PhAT ではすべての物理ボディをまとめて保持するコンストレイントの再作成をうまく処理ことができません。そのため、中間の物理ボディを削除すると、 新規コンストレイントをその階層の上に作りません。ただし、すべての物理ボディを削除しビークル ルート ジョイントから最後までビルドすると、 すべてのコンストレイントが正確に作成されます。

デフォルトの表示オプションの [Skeleton Tree (スケルトン ツリー)] パネルで、すべてを選択して削除します。これで、アセットからすべての物理ボディが取り除かれます。

selectAllDelete.png

物理ボディの作成のセットアップ

  1. [Skeleton Tree] パネルの [Options (オプション)] ドロップダウン メニューから [Show All Bones (すべてのボーンを表示)] を選択します。

    ShowBones.png

  2. 各作成ステップで、[Tools] パネルの [Body Creation] 設定が必要なものであることを確認します。特に注意するのは以下の 2 つの設定です。

    • Min Bone Size は、物理ボディを作成するために必要なボーンの大きさを定義します。スケルトンメッシュに適切なサイズに設定されていることを確認してください。この例では 5 に設定してあります。

    • Primitive Type は、作成される物理ボディの基本形状を制御します。作成する物理ボディに応じてタイプを変更する必要があります。

    • この例の目的で、他のオプションはそのままにしてあります。

    BodyCreation.png

ボディのコリジョンを作成する

まず、ルート ジョイントから始めて、ビークルのジョイントで物理ボディの作成を開始します。物理的にシミュレートするか、またはビークルの境界に影響を与える必要がある物理ボディだけが ジョイント上で必要になります。

このバギーの場合、ルートのボックスと車輪の球体があれば開始するのには十分ですが 望ましい動作をさせるには他の数多くの物理ボディが必要になります。

  1. [Body Creation Primitive Type][Box] に変更します。

  2. [Skeleton Tree] パネルの rootJNT ボーンを右クリックして コンテキスト メニュー を開きます。

  3. Add/Replace Bodies を選択します。

    bodyToRoot.png

  4. これで、新しい物理ボディを 移動回転スケーリング させると、ビークルの形状をさらに整えることができます。

    newBodyBoxResultScaled.png

作成された物理ボディは、メッシュの残りの部分に対して作成されたコンストレイントと物理ボディの階層のルートになります。その関係は、[Skeleton Tree] パネルのボーンと一緒に [Graphs] パネルで直接確認することができます。

車輪のコリジョンの作成

車輪の球体を作成するには、以下の手順に従います。

  1. [Body Creation Primitive Type][Sphere] に変更します。

    BodyCreationSphere.png

  2. [Skeleton Tree] パネルの車両ジョイント ボーンを選択して右クリックで コンテキスト メニュー を開きます。

  3. [Add Replace/Bodies] を選択します。

    bodyToWheel.png

  4. 新しく作成した車両の物理ボディを選択して右クリックで コンテキスト メニュー を開きます。

  5. [Physics Type][Kinematic] を選択します。

    makeTheWheelsKin.png

    [Physics] セクションの [Details] パネルから [Physics Type] を変更することも可能です。

    makeTheWheelsKin_2.png

    これは、車輪がビークルの領域に影響を及ぼすために必要です。これにより、シャドウとカリングが正確に生じるようにし、 さらにゲームが開始して、車輪がビークルから転がり落ちないようにします。

    車輪の物理ボディがコリジョンのために使用されることは、実際には決してありません。現在、車輪はワールドと相互作用するためにレイキャストを使用しています。

今後に向けて

これは基本的なインポートされたビークル メッシュの単純なセットアップにすぎません。ビークル ゲームでビークルの Physics アセットを見ると、以下のようになります。

goodPA.png

車輪の外部では、すべてのコリジョン ボディはビークルのルート ジョイントに存在します。これにより、一部のゲーム エレメントで車輪が動かなくなるのを防ぎます。 また、車輪のメッシュが壁やレールを通り抜けてクリッピングするのを防ぎます。

タグ
このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.3 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル