UDN
Search public documentation:

SettingUpVehiclesJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

ビークルのセットアップ

文書の概要:本書は、3Dパッケージでビークルを作成し、エンジンにインポートし、ゲーム内で機能するようにする方法を説明します。

文書変更ログ:2006年2月18日、James Goldingにより作成。

ビークルのモデリング

UnrealEngine 3のビークルはレンダリングに骨格メッシュを使用します。これによって、車輪、サスペンション、フラップ、ドアその他の複数の可動部を持つメッシュを1つのアセットとして容易にインポートできます。 ビークルは様々な形状を取りますが、コードは、ビークルには単一の剛性シャーシがあると見なします。ビークルに車輪があれば、好きな数の車輪を使用することができます。また、異なるサイズの車輪を使用することができます。UEで使用するためのビークルメッシュを作成するときに覚えておくべき重要事項は次の通りです。

  • ルートボーンは、ビークルの本体剛体シャーシに追加されなければなりません。
  • ビークルはX軸上に沿って+X方向を向き、+Zが上方となっています。また、ルート「シャーシ」ボーンのX軸上に沿って+X方向を向き、+Zが上方となっていなければなりません。ボーンを追加する前に、ビークルが正しい方向を向いている方が便利です。
  • 車輪とサスペンション要のその他のボーンは、シャーシボーンの直接の子でなければなりません。車輪ボーンをサスペンションボーンの 子にしないでください 。シャーシの子のままにしておいてください。
  • 各タイヤボーンを、車輪を回転させたい場所に配置してください (ロールとステアリングの両方)。ボーンの1つの軸は、ロール軸に沿っており、もう1つの軸は、ステアリング軸に沿っている必要があります (軸がインポートされた後、AnimTreeを定義する際に、エンジンにどの軸を使用するか伝える必要があります。
  • ビークルをエクスポートしているときに、車輪ボーンがサスペンションを最も伸ばした状態まで下がっていることを確実にしてください。

SettingUpVehiclesJP\Vehicle_Paladin.jpg

SettingUpVehiclesJP\Vehicle_Scorpion.jpg

物理資産を作成

いったん、ビークルメッシュをエンジンにインポートしたら、物理資産を作成することでその衝突形状を定義する必要があります。これを行うには、PhAT (物理資産ツール) を使用する必要があります。このツールに関する情報は PhAT入門? ページを参照してください。

ビークルで使用される物理アセットに不可欠な唯一のボディは、ルート「シャーシ」ボーンです。他のどのボーンにも物理ボディを作成する必要はありません。たとえば、車輪用のジョイントを作成する必要はありません。車輪シミュレーションは、すべてビークル物理コードによって処理されます。シャーシボディのみが物理オブジェクトとして作成され、ビークル衝突に使用されます。ただし、物理アセットはラインチェックやビークルへのプレーヤーの衝突に使用されます。このため、特に、これらのボーンが動く場合は (ドア、フラップ、砲塔など)、より正確な衝突を得るために、他のボーンの衝突形状を作成するとよいでしょう。

アニメーション ツリーを作成する

作成したビークルについてアニメーションを再生しない場合でも、ビークルが正しく動作するためにはアニメーションツリーを作成する必要があります。これは、ゲーム内で順に個別ボーンを移動する場合、アニメーションツリーにスケルトン コントロールも含まれるためです。UE3ビークルシステムは、車輪ボーンを基礎となるシミュレーションに一致させるため、特別なボーンコントローラタイプを使用して動かします。スケルトン コントロールに関する詳細な情報は、骨格コントローラを使用するページを参照してください。

車輪のセットアップ

SkelControlWheel.jpg

「WheelDisplacement」、「WheelRoll」および「WheelSteering」設定は、正しい軸が正しい方向に動いていることをエディタ内で視覚的に確認できるようにする設定です。これらは、実際にビークルの性能や制約を変更するわけではありません。

「WheelMaxRenderDisplacement」設定はZ軸における変換の上限を定義します。これにより、サスペンションの動作の範囲が定義されます。「WheelDisplacement」に値を入力して、車輪の動く上限を視覚的に定義します。限界値を設定するには、「WheelMaxRenderDisplacement」に、最終値を入力してください。ゲームでビークルを使用している間、車輪は「WheelMaxRenderDisplacement」で指定された値と0の間を上下に動きます。残りの各種設定を使用することで、ロールとステアリング軸を変更し、反転することができます。

SkelControlWheelのControlNameプロパティを設定する必要があります。このプロパティは、シミュレーションに渡されます。これにより、シミュレーションはドライブ中に更新するべきコントロールを知ることができます。

サスペンションボーンのセットアップ

運転時に車輪を動かすコントロールがあるように、サスペンションアームを制御するボーンにもコントロールを追加したいことがあるでしょう。「ルックアット」コントローラと呼ばれる種類のスケルトンコントロールがあります。これは、1つの軸が常に別のオブジェクト、ボーン、またはスペース内の点を向くようボーンを設定します。このノードはサスペンション ボーンをコントロールするために使用されます。

SuspensionRig.jpg

SkelControlLookAt.JPG

青いダイヤモンドの形は、照準の対象です。「TargetLocationSpace」設定は、照準の対象が何を基準にしているかを定義します。基準には、それ自体、親、アクタスペース、ワールドスペース、または上記例の場合のように、その他のボーンを指定できます。「TargetSpaceBoneName」設定内に照準の対象にしたいボーンの名前を入力してください。「TargetLocationSpace」設定は、「Target Location Space」設定に対象に目標ターゲットの位置をオフセットします。また、LookAtノードの後にSkelControlSingleBoneノードをチェーンして目標をオフセットさせ、サスペンション ボーンの回転をオフセットすることもできます。

SkelControlSingleBone.JPG

3Dパッケージ内の整列を変更したい場合、LookAtAxisまたはUpAxisを変更または反転することができます。サスペンションの複雑さ次第では、LookAtノードとSingleBoneノードを使用してピストンやその他の接続された可動部を作成できます。

また、LookAtノードを車輪に接続された部品の回転を相殺するためにも使用できます。これは、ステアリングと共に回転して、サスペンションと共に移動する必要があるが、前後にスピンさせたくないフェンダーなどに使用します。これを行うには、車輪ボーンを親としながらも、まったく同じ場所に位置するボーンを追加します。フェンダーメッシュをこのボーンに結合します。車輪ボーンのすぐ上に別のボーンを追加します。これが、フェンダーの照準の対象となります。アニメーションツリーで、フェンダーボーンにLookAt制約を追加します。このとき、フェンダーを照準の対象とするボーンを照準の対象にします。LookAtノード設定で、LookAt軸とUp軸の両方をZに設定します。これで、サスペンション移動およびステアリング時に、フェンダーボーンはスピンせずに、車輪ボーンと一緒に動くようになります。

FenderTip1.JPG

FenderTip2.JPG

スクリプトファイルを作成する

これで、すべてのアセットが正しくセットアップされました。次に、UnrealScript .ucファイルにすべての情報を入力する必要があります。必要な情報は次の通りです。

* 骨格メッシュの名前。 * 物理資産の名前。 * アニメーションツリーの名前。 * 各車輪ボーンの名前。 * 各スケルトンコントロールホイールの名前。 * 各車輪の半径。

以下は、これらすべての情報を、自分のビークルの.ucファイルに入力する方法です。

Class MyVehicle extends SVehicle;

Defaultproperties
{

   Begin Object Name=SVehicleMesh
      SkeletalMesh=SkeletalMesh'VehiclePackage.VehicleMesh'
      AnimTreeTemplate=AnimTree'VehiclePackage.VehicleAnimTree'
      PhysicsAsset=PhysicsAsset'VehiclePackage.VehiclePhysAsset'
   End Object

   Begin Object Class=SVehicleWheel Name=RRWheel
      BoneName="R_R_Tire"
      SkelControlName="R_R_Tire_Cont"
      WheelRadius=25
   End Object
   Wheels(0)=RRWheel
}

ビークルの各車輪は、SVehicleWheel プロパティを1つ持つことができます。

ビークルのチューニング

ビークルが処理する方法を制御する多くのパラメータがあります。その一部は、各SVehicleWheelオブジェクトに属する車輪毎のパラメータです。一方、ビークル全体に影響を及ぼすパラメータは、SVehicleとSVehicleSimオブジェクトに入っています。各パラメータの説明は、ビークルガイド?ページを参照してください。

ビークルのチューニングに非常に便利なUnreal Engineの1機能は、「editacto」コンソールコマンドです。ビークルを運転中に、コンソールで「editactor class=svehicle」と入力すると、プロパティウィンドウがポップアップ表示されます。これにより、ドライブしている途中でほとんどすべてのパラメータを調整できます。これにより、反復が非常に高速になります。

*この選択は今後拡張される予定です。*