AnyPortrait > マニュアル > 複数方向の姿を持つキャラクターを作

複数方向の姿を持つキャラクターを作


1.3.4

ゲームに登場するキャラクターを作るとき、ゲームの特性によって「前面」、「側面」、「背面」が見えるように作らなければならない場合があります。
これはトップビューのゲームだけでなく、サイドビューのアクションゲームでもよく使われます。
このページでは、AnyPortraitを使用してさまざまな方向の外観を持つキャラクターを作成する方法について説明します。


このページでは機能中心で説明し、アニメーションを作成する細かいプロセスや画像を制作する方法は扱いませんので参考にしてください。


複数方向の姿を持つキャラクターを作る方法には大きく二つの方法があります。
最初の方法は、「複数のルートユニット」を作成してスクリプトに外観を切り替える方法です。
別の方法は、「複数の子メッシュグループを持つ 1 つのルートユニット」を作成して制御パラメータに変更する方法です。
それぞれ長所と短所を持っているので、以下の説明からあなたに合った方法を選んでください。








方法1.複数のルートユニットを使用する




複数の方向を持つキャラクターを作成する最初の方法は、それぞれの方向に沿ったルートユニットを作成することです。
アニメーションの途中で方向を切り替えるなどの複雑なアニメーションを作成しない場合、この方法はかなり直感的でスクリプトで扱いやすいです。




作成したメッシュグループとルートユニットは、上記のように「Front」、「Side」、「Back」です。
各メッシュグループは互いに独立しています。




ルートユニットとなる各メッシュグループは、ボーンと「Riggingモディファイア」、「Transform(Animation)モディファイア」を持っています。




それぞれの方向のアニメーションを作成します。
(1)Front」のアニメーションである「Walk_Front」を作成します。
(2) アニメーションを「Front」メッシュグループにリンクします。
(3)Front」メッシュグループのアニメーションを作成します。






同じように「Side」、「Back」のアニメーションを作成します。


それでは、簡単なスクリプトを作成してキャラクターの向きを変えるようにしましょう。



スクリプトを見ると、ルートユニットを切り替える別のコードはなく、単にアニメーションを再生するコードしかありません。
アニメーションによってルートユニットが切り替わるので、コードを本当に簡単に書くことができます。




作成したキャラクターと作成したスクリプトをUnityシーンに配置しましょう。
(1) AnyPortraitエディタで「Bake」をすると、キャラクターがシーンに配置されます。
(2) 新しい「GameObject」を作成します。
(3) 生成された 「GameObject」に先に作成したスクリプトを追加し、「apPortrait」を割り当てます。




ゲームを実行してスクリプトで作成したように、数字1、2、3を押すと、対応するルートユニットに切り替えてアニメーションが実行されます。


複数のルートユニットを使用することは、従来の制作方式では大きく変わらず、キャラクターの向きに合ったアニメーションを再生するようにスクリプトで作成すればよい。
ワークフローとスクリプトの作成が簡単で直感的であることは、このアプローチの利点です。
一方、方向が切り替わるアニメーションを作成するのは難しいという欠点です。
方向を切り替えるアニメーションを作成したい場合は、各方向のアニメーションを作成して順番に再生するスクリプトを作成する必要があります。
したがって、このアプローチは「トップビュー(Top-View)」のゲームで効果的に使用できます。




方法2.複数の子メッシュグループを使用する




2番目の方法は、「1つのルートユニットとなるメッシュグループ」に「複数の子メッシュグループ」を追加する方法です。
レンダリングする必要がある子メッシュグループのみを表示し、残りのメッシュグループを非表示にして、キャラクターの向きを変えることができます。
(1) 前の説明と同じキャラクターのように見えますが、1つのメッシュグループに3つのメッシュグループが子メッシュグループとして登録されています。
(2) 各メッシュグループは独立してメッシュとボーンを持っており、「Rigging Modifier」が適用されています。




親子メッシュグループを使用して作業する場合は、どのメッシュグループにどのモディファイアを追加するかを決定する必要があります。
子メッシュグループがそれぞれボーンを持ちながら独立した動きを持つ場合は、特に注意が必要です。
私たちは上記のようにモディファイアを設定することをお勧めします。


タスクの利便性、一貫性、パフォーマンスの両方を考慮する場合は、「ルートメッシュグループ」に「Morph、Transform、Color Onlyモディファイア」を追加することをお勧めします。
特に、「Animationモディファイア」はルートメッシュグループにのみ追加できます。
(誤って「Animationモディファイア」を子メッシュグループに追加してアニメーションを作成した場合は、関連ページの解決方法を参照してください。)


「Rigging, Physics モディファイア」は外部データ (制御パラメータ、アニメーション) に関係なく動作するため、ボーンやメッシュを持つ 「子メッシュグループ」に追加する方が便利です。
特に、子メッシュグループにボーンがある場合は、「Riggingモディファイア」を子メッシュグループに追加するのが便利です。
ただし、対象メッシュに2つ以上の「Riggingモディファイア」が適用される場合、問題が発生しますのでご注意ください。
この点に注意して設定してください。
親メッシュグループにこれらのモディファイアを追加して適用しても構いません。


「Controllerモディファイア」(Morph、Transform、Color Only)を子メッシュグループに追加することは可能ですが、私たちはお勧めしません。
親子メッシュグループにモディファイアを複合的に登録したが、意図しないキャラクターの動きに苦しむ方々からのフィードバックを多く受けました。
したがって、可能であれば、外部データによるバリエーションはルートメッシュグループで一貫して編集することをお勧めします。




この方法で最も重要なポイントは、「制御パラメータを使用して表示される子メッシュグループを切り替えること」です。
これは、前の最初の方法でアニメーションを実行してルートユニットを切り替えることに対応します。
(1) 新しい「制御パラメータ」を追加します。 ここでは、「Root Pose」という名前の「制御パラメータ」を作成しました。
(2) 制御パラメータの種類を「Int」に設定します。
(3) 値の範囲を「-1~1」に設定したが、これはそれぞれ「Back : -1, Side : 0, Front : 1」にマッピングするためである。




(1) ルートメッシュグループを選択します。
(2)Modifier」タブを選択し、「Add Modifier」ボタンを押します。
(3)Color Only(Controller)」モディファイアを選び、 (4)Select」ボタンを押す。




(1) 制御パラメータに3つの「キー(Key)」を登録します。
(2) 子メッシュグループをモディファイアに登録します。




制御パラメータに従って表示される子メッシュグループを変更します。
値が「-1」の場合は「Back」が表示され、「0」の場合は「Side」、「1」の場合は「Front」のみが表示されます。
これで「Root Pose」制御パラメータの値によってキャラクターの向きが変わるようになりました。




続くプロセスを説明する前に、複数の子メッシュグループを使用する場合は、次の機能の説明を最初に確認してください。








ボーンアニメを作ろう
(1) ルートメッシュグループを選択し、「Modifier」タブの「Add Modifier」ボタンを押します。
(2)Transform (Animation)」 モディファイアを選択し、 (3)Select」 ボタンを押します。




(1) 新しいアニメーションを追加します。
(2) アニメーションに名前を付けた後、「Select Mesh Group」ボタンを押します。
(3) メッシュグループが表示され、子メッシュグループは選択できないことがわかります。 ルートメッシュグループを選択します。
(4)Select」ボタンを押します。




(1)Add Timeline」ボタンを押します。
(2) 子メッシュグループを切り替えるには、「Control Parameters」タイムラインを最初に追加します。




(1) 追加した「Control Parameters」タイムラインを選択します。
(2) 前に作成した「Root Pose」制御パラメータを選択します。
(3)Add Timeline Layer to Edit」ボタンを押してタイムラインにコントロールパラメータを登録します。




(1) もう一度「Add Timeline」ボタンを押します。
(2) ボーンアニメーションを作成するには、「Modifier: Transform (Animation)」を選択して追加します。




(1) 追加した「Transform(Animation)」タイムラインを選択します。
(2)Bones」タブを選択します。
(3)All Bones to Layers」ボタンを押します。
(4) 案内メッセージの「Okay」ボタンを押して、すべてのボーンをタイムラインに登録します。




それではアニメーションを作りましょう。
ボーンアニメーションを作成する前に、表示される子メッシュグループ、つまりキャラクターの方向をまずキーフレームに設定してみましょう。
(作業者のスタイルによっては、このページの説明とは異なり、メッシュグループのレンダリングとボーンアニメーションを同時に編集することもできます。)
(1) アニメーション「編集モード」をオンにし、「Control Parameters」タイムラインの「Root Pose」を選択します。
(2) キーフレームを追加します。




(1) キーフレームを選択し、 (2) 制御パラメータの値を指定します。
(3) 上記のように「Front > Side > Back > Side」が繰り返し表示されるようにキーフレームを設定しました。
(4) アニメーションを再生すると、ワークスペースの「Root Pose」の値に応じてキャラクターの向きが切り替わることがわかります。




その後、ボーンアニメーションを作成します。
(1)Transform (Animation)」タイムラインを選択し、「編集モード」をオンにします。
(2) ところで、この状態では「Root Pose」制御パラメータが適用されないため、ワークスペースにすべてのメッシュグループが表示されるという問題が発生します。




このページの前述の方法でこの問題を解決します。
(1)表示メニュー > Edit Mode Options > Apply Multiple Modifiers if no conflict」 (ショートカット: D ) を有効にします。




編集対象ではなくタイムラインも機能し、現在の状態に合った子メッシュグループのみがワークスペースに表示されます。




ボーンがワークスペースに見えないように設定した状態でした。
B 」キーを押すか、「表示メニュー > Show Bones」をオンにしてボーンが見えるようにしましょう。
ところで、見られる子メッシュグループとは別に、すべてのボーンが見えます。
あまりにも多くのボーンが乱雑にワークスペースに表示されるため、編集するのは困難です。




「可視性プリセット(Visibility Preset)」を使ってみましょう。
(1)表示メニュー > Visibility Preset > Settings」を選択します。




(1) 新しいルールを追加します。
(2) このルールの方式を「Show Bones If Mesh Group Visible」に設定します。
このオプションは、ボーンが属するメッシュグループがレンダリングされた場合にのみ、ボーンがワークスペースにレンダリングされるようにします。




生成されたルールを適用します。
(1)表示メニュー > Visible Preset」で作成したルールを選択し、 (2)Enable Preset」を押して有効にします。 (ショートカット: I
(3) アニメーションを再生すると、表示される子メッシュグループのボーンだけがワークスペースに表示されます。




すべての準備が終わったら、ボーンアニメーションを作る番です。
アニメーションクリップ内で、キャラクターが方向を変えながら移動するようにモーションを作成できます。


このプロセスはモーションによって、そしてあなたがアニメーションをどのように作るかによってプロセスに違いがあります。
次のワークフローを参考にモーションを作成してください。




(1) Transform タイムラインおよびタイムラインレイヤーを選択してキーフレームを生成した後、 (2) キャラクターのポーズを修正します。




(1) キャラクターの方向が変わる直前にキーフレームを生成します。
(2) キャラクターのポーズをつなぐ次の方向のポーズに似ているように修正します。




次のフレームに移動してキャラクターの向きが変わったとき、前のフレームとポーズの差が少ないほどアニメーションは自然になります。


前のキャラクター方向の最後のキーフレームと次の方向の最初のキーフレームの位置が同じになると、より自然な方向転換になります。




ボーンアニメーションと制御パラメータを組み合わせてキャラクターが回転するようなアニメーションを上記のように簡単に作ってみました。
より多くのキーフレーム、Morphモディファイア、回転に適したキャラクターイメージなどが保たれれば、はるかに高いクオリティの作品を作ることができるでしょう。


キャラクターの向きが自然に切り替わるように制御パラメータとポーズを設定するには多くのノウハウが必要です。
機能についての私たちの説明に加えて、アニメーションを直接作ってみながら、多くの経験を積んで素敵な作品を作ってみてください。




完成したキャラクターアニメーションをUnityシーンに確認しましょう。
(1) ルートユニットを選択した画面でアニメーションクリップを選択し、「Auto Play」を有効にして自動的にアニメーションを再生します。
(2)Bake」を実行します。




完成したアニメーションがUnityシーンで再生されるのを見ることができます。


複数の子メッシュグループを使用する方法は、説明に示すように、多数のオブジェクトを同時に編集する必要があります。
作業が少し難しく、設定する必要があるものが多いのは必然的な欠点です。
しかし、このような困難を乗り越えれば、1つのアニメーション内でキャラクターの向きが変わることを表現できるという大きな利点を得ることができます。
「サイドビュー(Side-View)」のアクションゲームでキャラクターが走り、戦い、ジャンプして振り返るなどの複合的なモーションを作るのに適した技法です。