記事一覧

キャラに武器を持たせる for UDK

ファイル 150-1.jpg
どうやろうか悩んでいたいけど、実際やってみるとかなり簡単にできた。


ファイル 150-2.jpg
まず武器の基準(手首のありそうな大雑把な位置でもいい)となる大まかな箇所を中心位置にして、そこからジョイントを構成。
画像では畳めるマウントとトリガーを動かすジョイントとマズルフラッシュのソケット用ジョイントがあります。
この武器だけの構成をUDKへPSK出力してUDKにインポート。


ファイル 150-3.jpg
キャラクタ作成の作業用シーンに武器のシーンデータを持って行き、武器のジョイント全てをキャラクタの手首のジョイント階層に入れ、移動XYZと回転XYZに全て0を入力し、手首ジョイントの基準にする。そして改めて指を動かしながら手に対する武器の細かい位置や正しい向きに修整し、手と武器を握らせた構成にする。武器の位置合わせに行われた移動と回転情報は次の作業で使う。
ここでは保存やエクスポートなどは要らない。

ファイル 150-4.jpg
ここでUDKに移り、コンテンツブラウザからキャラクタのSkeletal Meshを開き、手首のジョイントからソケットを作成する。そしてソケットマネージャからRelative LocationとRelative Rotationにモデリングソフト側武器の移動と回転情報をそのまま入力すれば(Mayaのセンチメートル単位に限る)、先ほど調整した位置と向きになる。ちなみに数値指定じゃなくてもドラッグ操作で調整はでき、スペースキーで移動と回転を切り替える。
位置が合っているかを確認するため、上の画像ではソケットマネージャのPreview Skel Meshに先ほど出力した武器のSkelMeshを指定しプレビューさせている。握ったアニメーションもプレビュー再生しておくとなお良い。

ソケットの作成
http://udn.epicgames.com/Three/SkeletalMeshSocketsJP.html

実際ゲームやマシニマ内でキャラクタに武器を持たせるのも結構シンプルな操作でいける。キャラクタと武器両方のSkeletalMeshをシーン内に設置し、メニューの「表示⇒ソケットのスナップを有効にする」を行うと、キャラクタ側に先ほど作成されたソケットが表示される。そして武器を選択し、次にソケット部分をクリックするだけでソケット部分に自動でフィットする。

チュートリアル動画 3D Buzz Video Tutorials - Using UDK
シネマティクスに含まれる「14_-_Cinematics__002_RobotSkelMesh」を参考
http://udn.epicgames.com/Three/VideoTutorialsJP.html


ファイル 150-5.jpg
Matineeなどでキャラクタが動いてもソケットにくっついた武器はソケット元のジョイントにずっと追従し続ける。
ここまでスクリプトや設定ファイルの作成等を一切行ってないし、DCCツール側もキャラクタに特殊な要素追加や出力し直す作業が必要ない。