Unityアセット「 Game Creator」でのキャラクターの動作方法やPlayer、Characterコンポーネントの扱い方を解説します。
Table of Contents
Player、Characterコンポーネントの利用とモデルの変更方法
Player(ユーザーが操作できるキャラクター)はHierarchyのGame Creator > Cahracters > Player、Caracter(操作できないキャラクター)はHierarchyのGame Creator > Cahracters > Characterを選択すると利用できます。


選択直後はGame Creatorデフォルトのロボット3Dモデルが自動的にセットされており、実際に方向キーでの移動とSpaceキーでのジャンプが可能な状態です。ここから独自の3Dモデルを反映させるのも簡単です。Player、及びCharacterのInspectorでCharacter Modelコンポーネントにモデルをドロップできる箇所があります。ここにProjectから3Dモデルをドラッグ&ドロップで放り込むとキャラの設定は完了です。操作感覚やアニメーションはデフォルトと全く同じです。
ただし、公式発表では、3DモデルはHumaroidタイプ以外利用できません。実際には利用できますが、いくつかのアニメーション関連の調整が必要になります。


▲モデルはUnityアセットのRinを利用しています。
Characterコンポーネントの設定項目
Basic Parameters

Is Controllable
キャラクターの操作可否。Playerの場合、キー入力を受け付けなく他、Player及びCharacterの場合、Actionの移動なども制限します。
Can Run
- Trueの時、走行しており、速度にRun Speedを使用。
- Falseの時、歩行しておりにRun Speed / 2を使用。
Run Speed
走っている時にキャラクターが直線移動する速度。歩いている時はその半分
Angular Speed
キャラクターが回転する時の速度。1秒あたりの度数を表しており、180の場合、キャラクターが後ろを向くのに1秒かかることを意味します。
Gravity
重力。キャラクターに常に下にかかる力。
Max Fall Speed
最大落下速度。キャラクターはGravityに従って加速し、Max Fall Speedに達した時点で地上に落ちるまでその速度を維持します。
低い値だと滑空し、0だと空中に静止します。
Can Jump
キャラクターのジャンプ可否。Playerの場合、ジャンプができなくなる他、Player、及びCharacterの場合、Actionによるジャンプ命令を受け付けなくなります。
Jump Force
ジャンプする時に、上向きにかかる力
Jump Times
キャラクターが地面に触れる前にジャンプできる回数。二段ジャンプや三段ジャンプのこと。
Time Between Jumps
一度ジャンプして着地してから再度ジャンプができるようになるまでのクールタイム秒。
Advanced Parameters

Face Direction
顔の向きを制御する項目。
- Movement Directionの時、キャラクターの移動と顔の向きを統一します。
- Camera Directionの時、常にカメラと同じ方角を向きます。
- Target: 指定したゲームオブジェクトや座標の方角に向きます。Offsetで微調整可能。
- Ground Plane Cursor:カーソルの方角に向きます。
- Ground Plane Cursor Delta:マウスの方角に向きます。
Plane Cursor Deltaの違いはカーソルかマウスの違いです。カーソルはプログラム上で操作可能です。反対にマウスは常にマウスの位置に向きます。
Can Use Navigation Mesh
Unityの機能であるNaviMeshシステム(ナビゲーションシステム)の利用可否。ある地点に移動する場合に自動的に障害物を避けます。NaviMeshの詳しい設定方法はUnityのマニュアル等をご確認ください。
Push Force
物理物体に接した時に物体に与える力
Save
Action「Save Game」時にキャラクターの位置と回転をセーブします。ロード時に位置・回転を自動的に復元します。
Player Input

Playerのみの項目です。入力によるキャラクター制御の設定をします。
Input Type
Playerの移動方法。wasdキーやゲームパッドの入力はInput ManagerのHorizontalとVerticalを利用しています。
- Directionalの時、wsadキー、及びゲームパッドの方向キーで移動ができます。
- Point & Clickの時、画面をMousu Button Movebボタンでクリックするとクリックした場所に移動します。クリックが反応するレイヤーをMouse Layer Maskで制限できます。NaveMeshの利用を推奨。
- Pointer Followの時、Mousu Button Movebボタンをクリックしている間のみマウスポイントに移動します。
- Side-Scroll Xの時、adキー、ゲームパッドの左右キーでのX軸方向の移動のみ許可します。2.5D横スクロールタイプ。InvertAxisにチェックを入れると左右の移動が逆転します。
- Side-Scroll Zの時、wsキー、ゲームパッドの上下キーでのZ軸方向の移動のみ許可します。奥行移動タイプ。InvertAxisにチェックを入れると上下の移動が逆転します。
- Tank Controlの時、adキー、及びゲームパッドの左右キーで回転し、wsキー、及びゲームパッドの上下キーでその方向に前後します。
Jump Key
キャラクターをジャンプさせるためのキー
Use Acceleration
加速時間の可否。チェックを入れるとボタンを押してから徐々に速度が変化するような動きになります。
Acceleration
ボタンを押してから歩行速度になるまでの加速度。
Deceleration
ボタンを離してから速度が0になるまでの減速度。
Character Controller
Unityのコンポーネントです。詳しくはUnityのマニュアルページが詳しいです。
Characterのアニメーション
Game Creatorには、Player、及びCahracterをアニメーションさせる手段としてState(ステート)、Gestureの二つの概念があります。
Gesture
Gestureは1回のみ行う単発アニメーションです。Action「Character Gesture」にてGestureを指定するだけでアニメーションを1回行ってくれます。挨拶や会話時のポーズなどに利用します。Game Creatorには最初から以下のGestureが用意されています。
Character@agree | 同意。肩をすくめるようなアニメーション。 |
Character@angry | 怒り。あきれたような肩を下げるアニメーション。 |
Character@clap | 拍手 |
Character@cocky | 生意気。両手を広げてさも驚くような小馬鹿にしたアニメーション。 |
Character@defeat | 敗北。両手を顔の前で握ってフルフル。女の子が困った時にぶりっ子するようなアニメーション |
Character@disagree | 反対する。手で切るようなアニメーション |
Character@drink | 飲む。グラスを持つように手を口の近くに持っていきだんだんグラスを下げるように移動 |
Character@salute | 健康。軍隊式敬礼。 |
Character@scare | 恐怖。ちょっと仰け反って止めて欲しいとアピールするようなアニメーション |
Character@stretch | ストレッチ。両肩をもう片方の手で揉むようなアニメーション |
Character@talk1 | 会話。両手で説明しているようなアニメーション |
Character@talk2 | 会話。片手で説明しているようなアニメーション |
Character@throw | 投球。片方の手を振りかぶります。 |
Character@victory | 勝利。両手を万歳します。 |
Character@wave | 万歳 |
Character@yell | 怒鳴る |
Gestureの実態は純粋にUnityのプロジェクトで管理するAnimation Clipを再生するのみの単純な構造です。そのため、各種Animation ClipをUnityのProjectに用意するだけでJestrueが追加されます。弊害として、Game Creatorが利用しているGesture以外のAnimation Clipも表示しています。。
State
Stateは歩行・走行・ジャンプなど基本動作に対するアニメーションを管理する仕組みです。Action「Character Default」でベースとなるStateを変更でき、Action「Character State」で一時的にStateを変更できます。一時的に変更したStateはAction「Character State」でリセットすることで再びベースとなるStateに戻すことが可能です。
Game Creatorには、4つの状態変化用ステート「Crouch」「Drunk」「Hurt」「Meditate」が用意されています。




自作の新たなStateを作るには、Projectにて右クリックCreate > Game Creator > Charactersから作りたいテーマに合ったStateを選択します。
SimpleState

キャラクターが単一の状態を取る場合に利用します。サンプル例は上記のMeditate(瞑想)です。静止・歩行・走行・ジャンプ共に均一のアニメーションのみを続けます。例えば椅子に座る、バイクに乗るなど均一の姿勢を持続させる場合に利用します。
LocomotionState

キャラクターの動きをカスタムする場合に利用します。サンプル例は上記のDrunk(酔っ払い)です。静止・歩行・走行・ジャンプそれぞれに個別のアニメーションを設定できます。実態はベースキャラクターのアニメーションをオーバーライドしたアニメーションコントローラーファイルです。そのため、変えたい箇所のみ変更すれば、それ以外はベースキャラクターのアニメーションを利用します。
以下のサイトでは四足歩行の動物アニメーションを作る手法を紹介しています。
Advanced State
Custom Mecanim Animator Controllerを利用しているステート。アニメーションファイルの設定そのものはLocomotionStateと同等。