XNAを使用したシンプルな3Dゲームの作成/アーマチュアとアニメーション

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

アーマチュアの作成[編集]

Blenderで3Dアニメーションを作成するために、最初のステップは、アーマチュアという、骨格構造のようなものをモデルのために作成することです。 それを作成すると、そこに接続されている頂点を移動させて、ボーンの間の動きをアニメーション化できるようになります。 このチュートリアルでは、ボーンのセットを作成して動かす工程と、前回のチュートリアルで作成した魚に取り付ける工程を扱っていきます。

まず、カーソルをボディの中の背びれの付け根に移動させ (これを行う最も簡単な方法は、端部の頂点を選択してスペースを押し、 'Transform'/'Snap'/'Cursor to selection'を選択することです )、そしてオブジェクトモードに戻って、スペースを押し、 'Add'/'Armature'を選択して、新しいアーマチュアを追加します。 こうすると、現在のカメラ位置に対して相対的に、ひとつのボーンが得られたはずです。

Blender first bone for fish.png

このボーンを90度回転させ、魚の体に沿うように移動させます。 前回までのチュートリアルで扱った、モデルに対する同じ操作のほとんどは (rotate, scale, extrude etc.)、ここでも動作します。 アーマチュアを選択した状態で編集モードに入ります。そして今回転させたボーンを胸びれのところまで押し出すために、三角形の最も細い部分に接続されているサークルを選択し、 'E'を押します。 それを半分くらいまで並ぶように移動させます。

Blender second bone.png

この技法を使用して、背びれと胸びれに沿ってつながるボーンと、体の残りの部分全体に沿って平行につながるボーンを作成しましょう。

Blender almost complete bone structure.png

ボーンの構造の仕上げとして、2つのボーンを顔に最も近いほうの端に作成し、それぞれを口に並行になるようにし、口の両端くらいの長さにします。 その後、新しい舳先だけを選択し、 'Alt-P'と押しましょう。 こうすると、ボーンを親から切り離すことができるので、以下のように口の位置に合わせて少し下に移動させることができますが、それでもまだ元のアーマチュアの一部です。

Blender mouth armature.png

最後に、以下の手順を使って、ボーンをモデルに接続しましょう。 各モデルを選択して、Subsurfモディファイアを設定したのと同じ方法で、アーマチュアモディファイアを追加します。 あなたのアーマチュアの名前を入力して (アーマチュアが選択されているときに左下に表示される )、 'Envelopes'オプションが選択解除されていることを確認し、 そして 'Vert groups'が選択されていることを確認しましょう。 こうすると、アーマチュアのモデルへの影響の仕方が変わりますが、しかしチュートリアルの残りの部分のためには、 'Vert groups'を使用する必要があります

Blender armature options.png

オブジェクトモードでアーマチュアを選択し、ポーズモードに入ります。 この後は、ボーンを移動させたり、モデルへの影響を見たりできますが、しかし、今のところはボーンのいずれかを選択し、オブジェクトモードに戻って、接続させたい モデルを選択しましょう。 ウェイトペイントモードに入ると、選択しているモデルが青で囲まれて表示され、カーソルが小さなペイントブラシに変わるはずです。 このモードでは、モデルのうちのそのボーンの影響範囲に入れたい部位を 'ペイント' していきます。 一番下にある様々なオプションでは、ペイントする方法を変更でき、そして今のところは、プロセスをスピードアップするために 'soft' ボタンの選択を解除しておくことをお勧めします。 あなたのモデルに関連するボーンすべてに、これを行いましょう。 この効果をテストして動作を確認するために、再度ポーズモードに入って、モデルを周囲に移動させてみましょう。

これでもう、アニメーションの準備は万端です。

モデルのアニメーティング[編集]

私たちが作成していくアニメーションの基本的な原理は、ボーンの個別の位置を、別々のアニメーションフレーム(キーフレーム)という時間的に離れたところに設定することで、そのあとはBlenderが(およびそれ以降はXNAが)、これら二つの間の位置を計算してくれます。 映画の監督に似たものだと考えると、出演者の移動する位置を指示するときに、彼らが行うすべてのステップを心配しなくてもすむようなものです。

先述のように画面を2つのウィンドウに分割し、左のウィンドウを'Action Editor'モードに配置します。

Blender action editor demo.png

さて手始めに、シンプルな泳ぐアニメーションを作成していきます。

右側のウィンドウでbrowse choicesボタンを選択し、新規追加を選択し、それに 'Swim'と名付けましょう。

Blender browse choices.png

次に、ポーズモードでボーンを移動させ、魚の体を歪ませて泳いで見えるようにします。 私は、頭に最も近いボーンと尾につながったボーンを逆方向にX軸で10度動かし、そしてひれをZ軸で10度動かしました。 その後、アニメーション用に変更したすべてのボーンを選択し、 I を押して 'Rot'と選択します。 こうすると、プロジェクトのフレーム1に回転キーが作成され、左側のアクション·エディタに表示されます。

アクションエディタでフレーム5をクリックして、アニメーションの5フレーム目に移動し、つい先ほど動かしたボーンすべてを反対方向に動かし、動作の次のステージを作成します。 Iを押して、同様にキーフレームを保存します。

最後に、このアニメーションを完成させるために、前と同じプロセスを実行し、ボーンを移動させて元の位置に戻す必要があります (あるいは、最初のキーフレームを選択し、 'Shift-D'を押すことで、それを複製することもできます )。 次に、右側のウィンドウの下部にある 'View' をクリックし、 'Preview range from action length' を選択すると、最初と最後のキーフレームの間のアニメーションの長さが設定されます。 同じメニューの 'Play back animation' iを選択すると、魚が泳ぐところが表示されるはずです。

Blender SwimAnimation.png

次に、同じようなプロセスに従って、 'Swim' を選択したままで、 'ADD NEW' を選択して2つのボーンの接続を変更し、口の形を 'スマイル' と 'しかめ面' のアニメーションのひとフレームにして (期間を少し伸ばした場合 ) 、これを後ほどXNAゲームの開発のなかでNPCの追加をスタートするときに使用していきます。