Unity

【Unity】Game Creator 2 キャラクターシステム完全解説

【Unity】Game Creator 2 キャラクターシステム完全解説

当サイトを閲覧いただきありがとうございます。

本記事では、Game Creator 2のコア機能のひとつである「Characters」(キャラクターシステム)について詳しく解説します。

Charactersは、プレイヤーやNPCなどシーン上のあらゆる「動く存在」を司るシステムです。Character コンポーネント1つに、移動・ジャンプ・アニメーション・IK・足音・ラグドールといった1キャラクターが必要とするほぼすべての要素がまとまっています

公式ドキュメント:Game Creator 2 Documentation


Charactersとは

Character コンポーネントを任意のGameObjectに付けるだけで、移動・回転・IK・ジャンプ・落下・足音・アニメーションを備えた存在になります。

主な機能は以下のとおりです。

  • Player Input:方向入力、ポイント&クリック、タンク操作など、制御方式を切替可能
  • Rotation Modes:カメラ方向/移動方向/特定対象を向くなど、回転方式を複数装備
  • World Navigation:Character Controller/NavMesh Agent/Rigidbodyからドライバを選択可
  • Gestures & States:Mecanim上の軽量アニメーションシステム
  • Inverse Kinematics:足接地や注視先への頭部向きを自動化
  • Footstep Sounds:地面のテクスチャに応じた多層ミックス足音
  • Dynamic Ragdoll:追加設定なしでラグドール化と復帰が可能

プレイヤーキャラクター

Is Player チェックボックスがONの Character は、Player ユニットを通じて入力を処理します。

シーンにPlayerは常に1体までです。切替はInstruction Change Player で行います。HierarchyメニューやToolbarから「Player」を生成すると Is Player が自動でONになります。


Characterコンポーネントの全体像

Characterコンポーネントは、インスペクタ上で次のブロックに分かれています。

General Settings

  • Is Player:プレイヤーキャラとして扱うか
  • Update TimeGame Time(時間スケールに従う)/Unscaled Time(リアルタイム)
  • 人形アイコン(Mannequin icon):実行時にデバッグ情報を表示する
    • 緑=正常/赤=該当する四肢がBusy/赤いドクロ=死亡

Kernel Settings

キャラクター動作の核となる5つのUnit群です。Unitとは Game Creator独自の概念で、キャラクター動作を構成する交換可能なモジュールのことです(公式では “Control Unit” とも呼ばれます)。

Extra Settings

  • Inverse Kinematics(IKリグの管理)
  • Footsteps(足音システム)
  • Ragdoll(ラグドール)

Kernel(5つのUnit)

Kernelはキャラクター挙動を5種類の「Unit」に分割し、それぞれ独立に差し替え可能にした設計です。各Unitはインスペクタ右端のアイコンで実装を切り替えます。

Unit役割主な実装
Playerユーザー入力の解釈。Is Player がOFFなら無効Directional/Point & Click/Tank
Motion速度・加速度・重力などの運動特性と、ジャンプ等のコマンド受付Motion Controller(唯一の標準実装)
DriverMotionで算出された動きをTransformに反映Character Controller/NavMesh Agent/Rigidbody
Rotation (Facing)体の向きを決めるPivot/Pivot Delayed/Look at Target/Object Direction/Towards Direction/Tank
Animation (Animim)3D/2Dモデルを表示しアニメーション駆動Kinematic(唯一の標準実装)

Player Unitの選択肢

  • Directional:カメラ基準でWASD/左スティック入力。最も一般的で、3Dアクション、RPG、アドベンチャー全般に向きます
  • Point & Click:マウスクリックで移動。DriverがNavMesh Agentなら障害物回避しながら目的地へ。クラシックRPG、ストラテジー、CRPG向きです
  • Tank:前進キーでローカル前方へ移動。RotationはTankが必須。固定カメラ型ホラーなどに使われます

Motion Unitの主なパラメータ

  • Speed / Rotation / Mass / Height / Radius / Gravity / Terminal Velocity
  • Use Acceleration:加減速を使うか。使わない場合は最大速で即時移動
    • Acceleration / Deceleration:立ち上がり/減速の速さ
  • Can Jump / Air Jumps / Jump Force / Jump Cooldown:ジャンプ挙動
  • 末尾にInteractionセクション(後述)

Driver Unit

  • Character Controller:標準。ほぼすべてのケースで妥当
  • Navmesh Agent:障害物回避可能だがジャンプ不可
  • Rigidbody:Unityの物理エンジンによる挙動

DriverにはAxonometryフィールド(バージョン2.9.36以降)があり、移動を拘束できます。

モード移動制約
Side-Scroll XYX軸方向に移動、Y軸に重力、Z軸は0固定
Side-Scroll YZZ軸方向に移動、Y軸に重力、X軸は0固定
Isometric 8 DirectionsXZ平面を45度刻みで移動
Isometric Cardinal東西南北(上下左右)のみ移動
Isometric Ordinal斜め4方向のみ移動

Rotation Unit(Facing)

  • Pivot:直近の移動方向を向く
  • Pivot Delayed:遅延して回転(スニーク等の低速移動向き)
  • Look at Target:特定オブジェクトを常に正面に据え、横移動はストレイフに
  • Object Direction:他オブジェクトが向いている方向に合わせる(TPS/FPS向け)
  • Towards Direction:ワールド空間の一方向を常に向く(オンレール等)
  • Tank:指定キーでその場旋回
  • ランタイム切替可:状況に応じて動的に差し替えできます(例:通常はPivot、敵接敵時はLook at Target)

Rotation側にもAxonometryがあり、Driverと値を合わせると整合性が取れます。各モードの回転制約は以下のとおりです。

モード回転制約
Side-Scroll XY左右のみ回転
Side-Scroll YZ前後のみ回転
Isometric 8 Directions45度刻みで回転
Isometric Cardinal東西南北のみ回転
Isometric Ordinal斜め4方向のみ回転

Animation Unit(Kinematic)

  • Position / Rotation / Scale:Mannequinのローカル Transform
  • Smooth Time:ほとんどのアニメ遷移にかかる秒数。大=なめらか・遅い/小=機敏・スナップ
  • Mannequin:Characterと3Dモデルの間に入る中間オブジェクト
  • Animator:モデル側のAnimator。標準はGCのLocomotion Runtime Animator Controllerを使う
  • Start State:開始時のState(layer = -1)
  • Reaction:Shooter/Meleeのデフォルトヒットリアクション

Still pose(1フレームのアイドル)も、Breathing(呼吸)とTwitching(微動)が重なることで生きた動きに見えるよう設計されています。


Extra Settings詳細

Inverse Kinematics

IKはスタック式です。Add IK Rig Layer ボタンでリグ追加し、上から下に適用されます。

標準装備として以下が用意されています。

  • Look at Target:頭・首・胸・背骨を動かして注視点を向く(Hotspotと連携)。Humanoid専用
  • Align Feet with Ground:足接地と傾斜追従。傾斜が強い場合は腰を下げて両足接地させる

Footsteps

  • 足のボーンを配列で登録(デフォルトで人間の2本足を想定、Add Foot で拡張可)
  • Sound AssetFootstep Sounds(Material Soundsアセット)を紐付ける
  • 音はピッチ/スピードが自動で揺らされ、複数テクスチャが混ざる地面では音量もブレンドされる

Ragdoll

追加設定なしで物理反応するラグドール状態に遷移可能です。Skeletonアセットが必須となります。

パラメータは以下のとおりです。

  • Transition Duration:ラグドール → リカバリアニメへのブレンド時間。0.5秒以上推奨(スナップ感を避けるため)
  • Recover Face Down / Recover Face Up:体が下/上を向いているときの起き上がりアニメ

アニメーション(GesturesとStates)

Unity Mecanimの上に構築された独自層で、Animator Controllerに事前登録しなくてもアニメーションを動的に再生できる仕組みです。

Gestures(一発再生)

終わったら自動で元のアニメに戻る単発アニメ(パンチ・ヴォルト・手を振るなど)です。Play Gesture Instructionで再生します。

主なパラメータは以下のとおりです。

  • Character / Animation Clip:対象キャラとクリップ(必須)
  • Avatar Mask:適用する身体部位
  • Blend ModeBlend(上書き)/Additive(加算)
  • Delay / Speed
  • Root Motion:ルートモーション使用時は入力を無視
  • Transition In / Out:フェードイン/アウト秒数
  • Wait to Complete:完了まで次のInstructionを待たせるか

Gestureは常にStateより優先度が高いという点が重要です。

States(ループ再生)

  • Animation State:1本のクリップをループ再生。Entry/ExitにGestureを仕込めます。バージョン2.5.20以降はOn Refresh Instructionsが末尾にあり、CharacterがStateを追加/削除するたびに下位レイヤーから上位レイヤーの順に呼び出されます
  • Locomotion State:速度・方向・落下速度に応じてクリップをブレンド
    • Basic State:アイドル+8方向の移動クリップ
    • Complete State:アイドル+16方向(半速8+全速8)。アナログスティック想定ならこちら
    • Airborne Mode:Single/Circular 8 Point/Circular 16 Point
  • Properties(2.9.34以降):State自体に速度・回転速度・ジャンプ・重力などの上書き値を持たせられます。レイヤー番号が小さい順に適用され、上位レイヤーが上書きします

Layers(レイヤー優先度)

Photoshopのレイヤーと同じ発想で、番号が大きいほど優先されます。

例えばLayer 1/2/10にStateがあれば、再生されるのはLayer 10です。Layer 10を除去すればLayer 2に切り替わります。

追加・削除時には**Transition(遷移時間)**を設定するとスムーズにブレンドされます。

Gestureは常にあらゆるStateより優先です。

優先度の全体像は以下のとおりです。

[最高] Gesture(常に最上位で再生)

[高い] State Layer 10

[中間] State Layer 2

[低い] State Layer 1

[基底] Locomotion Controller(ベースアニメーション)

Weights(重み)

State追加は全置換ではなく、%指定でブレンドできます(例:走り+しゃがみ走りを50/50)。ランタイムではChange State Weightで変更可能です。

Stateの開始/停止

  • Enter State Instruction:State Type でAnimationClip/Stateアセット/Runtime Animator Controllerを選択
  • パラメータ:Layer / Blend Mode / Delay / Speed / Weight / Transition
  • Stop State Instruction:指定LayerのStateを滑らかに停止。Delay / Transition 指定可

Custom Model

CharacterのAnimationセクションにキャラプレハブをドラッグ&ドロップするだけで差し替え可能です。ランタイムでの差し替えはChange Model Instructionで行います。

Locomotion Controllerを独自のものに差し替える場合は IAnimim インターフェース実装のカスタムユニットが必要です。


Inverse Kinematics詳細

リグ管理

Characterコンポーネント下部の「Add IK Rig」から追加します。上から下の順で実行されるため、同じボーンチェインに触れる後続リグが前段を上書きします。

標準Rig

Feet Align(Humanoid専用)

  • 地形の凹凸に合わせて足を接地・回転
  • Foot Offset:皮膚メッシュとボーン先端のずれを補正する垂直オフセット
  • Foot Mask:接地判定するコライダーのレイヤー(例:水面は除外)

Look at Target(Humanoid専用)

  • Hotspotの注視点に向かって頭・首・胸・背骨を回転
  • Track Speed(deg/s)/Max Angle(周辺視野)/Head / Neck / Chest / Spine Weight

カスタムRig(Custom IK)

CharacterはレイヤードIKシステムを持ち、複数のリグをスタックして重ね掛けできます。Feet IK(足接地)やLook At(注視)だけでなく、独自のIKロジックを追加することも可能です。

リグへのアクセス

Character コンポーネントの IK プロパティからリグを取得します。該当リグが存在しなければ null が返ります。

// 例:足接地 IK を無効化
character.IK.GetRig<RigFeetPlant>().IsActive = false;

カスタムリグの作成

Game Creatorは2種類のIKラッパーを提供しています。

基底クラスエンジン備考
TRigAnimationRiggingDOTS(Animation Riggingパッケージ)推奨。高パフォーマンス
TRigAnimatorIKUnity AnimatorIKレガシー互換

いずれかを継承し、以下のメソッドをオーバーライドして実装します。

メソッド呼び出しタイミング
DoStartup(Character)初期化時に1回
DoEnable(Character)リグ有効化時
DoDisable(Character)リグ無効化時
DoUpdate(Character)毎フレーム
public class MyCustomRig : TRigAnimationRigging
{
    protected override bool DoStartup(Character character)  { /* 初期化 */ }
    protected override bool DoEnable(Character character)   { /* 有効化 */ }
    protected override bool DoDisable(Character character)  { /* 無効化 */ }
    protected override bool DoUpdate(Character character)   { /* 毎フレーム更新 */ }
}

Footstep Sounds詳細

Phases(足接地検出)

  • Phaseカーブ(アニメカーブ)で足の接地を検出(Phase-0Phase-3 の最大4本)
  • Humanoidはデフォルトで Phase-0=左脚、Phase-1=右脚
  • 値0=空中/値1=接地
  • 独自アニメを使う場合はPhaseカーブを手動追加する必要あり(公式のFootsteps Generator拡張で自動化可)

Material Sounds

  • Create > Game Creator > Common > Material Sounds で作成
  • テクスチャごとに複数SFXを定義可能。再生時にランダム選択されますが、直前と同じ音は連続しない仕様です
  • インパクト地点にパーティクル等のプレハブをプールから生成することも可能
  • ピッチ/スピードを毎回微変化させて繰り返し感を抑制
  • 複数テクスチャのブレンド地形では音量/ピッチが比例ミックス
  • Characterの Sound Asset フィールドにドラッグ&ドロップで紐付け

On Step Trigger

On Step イベントで歩行に合わせてInstruction実行(足跡を残すなど)が可能です。


RagdollとSkeleton

起動/復帰

  • Start Ragdoll Instructionで開始
  • ただし入力は残るため、通常は以下2つのInstructionを使います:
    • Kill Character:インタラクトを無効化し自動的にラグドール化
    • Revive Character:自動で起き上がりアニメを選択して制御復帰
  • 下/上向きに応じて Recover Face Down / Up が再生されます

Skeletonアセット

Ragdollのほか、Melee/Shooterのヒット判定でも使われる基幹アセットです。

Create > Game Creator > Characters > Skeleton で生成し、CharacterのAnimationタブにドラッグ&ドロップで紐付けます。

Skeletonの構成

  • Skeleton Configuration Mode:専用シーンでキャラを中央表示。プレハブモデルを下部のフィールドにドラッグ&ドロップし、Change Characterボタンをクリックすることでプレビュー用モデルを差し替えられます
  • Physical Material/衝突検出モード
  • Volume(ボリュームボーン):
    • Box:胸・平面向き
    • Sphere:手・頭向き
    • Capsule:大半の四肢向き
  • 各ボリュームは Bone Type(Humanoidのドロップダウンor Root/Spine/... のパス)、体積定義、Joint(関節)で構成
  • Create Humanoidボタン:Humanoidモデルをドロップすると Skeletonを自動推定してくれます

Markers(移動目的地)

Characterが向かう目的地を表すコンポーネントです。向きを示す黄色い矢印ギズモ付きとなっています。

  • Stop Distance:到達判定の誤差許容。混雑時に押し合いを防ぐ
  • Type
    • Directional:矢印と同じ位置・回転で停止
    • Inwards:円周上の最寄り点に移動し、中心を向く(アイテム拾得などに便利)

Interaction(相互作用システム)

Character側の設定(Motion Unit内)

  • Radius:注目対象と認識する最短距離
  • Mode:対象の優先順位付け
    • Near Character:Characterのインタラクション中心に最も近い対象を選ぶ。中心位置はオフセットで調整可能(コントローラ向き)
    • Screen Center:画面中央に近い(FPS向き)
    • Screen Cursor:カーソルに近い(ポイント&クリック向き)
  • Interact Instructionで現在注目中のオブジェクトと相互作用
  • BusyなキャラはInteractできない点に注意してください

Interactive Object側の設定

  • TriggerコンポーネントにOn Interactイベントを置くだけで対象化されます
  • On Focus / On Blurイベントで注目開始・解除も検知可
  • Hotspotを併用すると、注目時にテキスト表示やプレハブ有効化ができます

Busy(身体部位の使用中判定)

身体の特定パーツが「使用中」か問い合わせる仕組みです。Mannequinアイコンが実行時に緑↔赤で切り替わり、各肢のBusy状態を可視化します。

Instructions/Conditionsから取得・設定可能です。

スクリプトAPI

IsArmLeftBusy : bool
IsArmRightBusy : bool
IsLegLeftBusy : bool
IsLegRightBusy : bool
AreArmsBusy : bool
AreLegsBusy : bool
IsBusy : bool

各肢には MakeLimbXXX()(例:MakeLegLeftBusy())でBusy化します。詳細メソッドは Plugins/GameCreator/Packages/Core/Runtime/Characters/Busy 以下のスクリプトを参照してください。


Handles(プロップ装着位置)

武器などのプロップをどのボーンの、どの位置・回転に装着するかを決めるアセットです。

上から順にConditionを評価し、合致したHandle情報を使います。例えばHumanoidなら右手に剣、非Humanoidならビーストの口に装着、といった使い分けが可能です。

同じ位置情報を複数武器で使い回せるため、アイテム数が多いゲームで有用です。


スクリプティング/拡張

フレーム更新順

  1. Player.Update() → 入力解釈、Motionの MoveToDirection / MoveToPosition を呼ぶ
  2. Motion.Update() → 重力・坂スライド・ダッシュ・ジャンプなど外部力計算
  3. Driver.Update() → Transformを更新
  4. Facing.Update() → 体の向きを計算
  5. Animim.Update() → Animatorパラメータをフィード

各Unitは互いに参照可能(相互に読み出せる)です。

拡張ポイント(インターフェース)

インターフェースカスタム対象
IUnitPlayer独自入力システム
IUnitMotion独自モーション計算
IUnitDriver他パッケージのCharacter Controller統合
IUnitFacing独自の向き制御(TUnitFacing 継承がレイヤー機構込みで推奨)
IUnitAnimim独自Animator/Runtime Animator Controller対応

Motionのムーブ系メソッド

  • MoveToDirection / StopToDirection
  • MoveToLocation(Location) / MoveToTransform(Transform) / MoveToMarker(Marker)
  • StartFollowingTarget(target, min, max) / StopFollowingTarget()
  • Jump():条件を満たせばジャンプ/エアジャンプ

Facingのレイヤー API

int SetLayerDirection(int key, Vector3 direction, bool autoDestroyOnReach);
int SetLayerTarget(int key, Transform target);
void DeleteLayer(int key);
  • 初回呼び出しで新規 key が返ります。以降は同じ key で更新
  • autoDestroyOnReach = true で到達時に自動解除
  • 存在しない key を削除しても例外は出ません
// 特定対象を見続ける(第3引数 false → 到達しても自動解除しない)
IUnitFacing face = character.Facing.Current;
key = face.SetLayerTarget(key, lookAtTransform, false);

// 解除(存在しない key を渡しても例外は出ない)
face.DeleteLayer(key);

モデル変更(スクリプト)

GameObject instance = character.ChangeModel(prefab, default);

第2引数の ChangeOptions 構造体で足音・Skeleton・Animator Controller・オフセットも指定可能です。

IKリグへのアクセス

character.IK.GetRig<RigFeetPlant>().IsActive = false;

該当リグが無ければ null が返ります。

Breathing / Twitching

デフォルトのキャラは呼吸・微振動のプロシージャルアニメを全アニメに重ねています。HeartRate / Exertion / Twitching プロパティで強度を動的変更可能です。


使い始めるためのミニガイド

  1. Hierarchy右クリック → Game Creator > Characters > Player でPlayerを生成(シーンにカメラとライトがあることを事前に確認)
  2. CharacterのMotionSpeed / RotationDriverでCharacter Controller、RotationでPivotを確認
  3. Camera Shotを作って Look Target / Orbit Target にPlayerを設定
  4. Locomotion Animator Controllerが標準でAnimatorに設定されているので、CharacterのAnimationセクションにモデルをドラッグ&ドロップするだけで走り・ジャンプが動く
  5. 足音は Material Sounds を作り、Characterの Sound Asset にドロップ
  6. 倒れるギミックが必要なら Skeleton を作って Create Humanoid でラグドール準備
  7. 敵やインタラクションが必要になったらTriggerの On Interact を設置

Visual Scriptingリファレンス(Instruction/Condition/Event全一覧)

Charactersカテゴリ配下でVisual Scriptingから呼び出せる、すべてのInstruction・Condition・Eventを網羅した早見表です。ノード追加時の検索補助として使ってください。

Instructions(命令)

Visual ScriptingのActionsコンポーネントに追加できる命令群です。カテゴリは Characters > <サブカテゴリ> となります。

Animation(アニメーション)

命令機能主なパラメータ
Change Smooth Timeロコモーション間のブレンド時間を変更Smooth Time(0〜0.5推奨)/Duration/Easing/Wait to Complete/Character
Change State Weight指定レイヤーのStateの不透明度を時間経過で変更Character/Layer/Weight/Transition
Enter StateCharacterにState(AnimationClip/Stateアセット/Runtime Animator Controller)を再生させるCharacter/State/Layer/Blend Mode/Delay/Speed/Weight/Transition
Play Gesture単発のAnimationClipをCharacterに再生Character/Animation Clip/Avatar Mask/Blend Mode/Delay/Speed/Transition In/Out/Wait to Complete
Stop Gesture再生中のGestureをすべて停止Character/Delay/Transition
Stop State指定レイヤーのStateを停止Character/Layer/Delay/Transition

Busy(身体部位の使用中管理)

命令機能主なパラメータ
Set Available指定のLimbsを利用可能状態に戻すCharacter/Limbs
Set Busy指定のLimbsを使用中状態にするCharacter/Limbs

Combat > Invincibility(無敵化)

命令機能主なパラメータ
Set InvincibleCharacterの無敵状態を一定時間ONにするCharacter/Duration/Wait Until Complete

Combat > Poise(怯み値)

命令機能主なパラメータ
Set PoiseCharacterのPoise値を設定Character/Poise

Combat > Targeting(ターゲット管理)

命令機能主なパラメータ
Add Target Candidateターゲット候補リストに追加Character/Target
Remove Target Candidate候補リストから除外Character/Target
Set Target現在のターゲットを直接指定Character/Target
Clear Targetターゲットを解除Character
Cycle Next Target候補リストの次候補へ切替Character
Cycle Previous Target候補リストの前候補へ切替Character
Cycle Closest Target最近接の候補に切替Character
Cycle Direction Targetカメラ視点から指定方向にある候補へ切替Character/Camera/Direction

Footsteps(足音)

命令機能主なパラメータ
Change Footstep Sounds使用するMaterial Soundsテーブルを差し替えCharacter/Footsteps
Play FootstepMaterial Soundアセットから1回鳴らすCharacter/Material Sound

IK(インバースキネマティクス)

命令機能主なパラメータ
Active Feet IK足接地IKの有効/無効Character/Active
Active Lean IK傾きIKの有効/無効Character/Active
Active Look IK注視IKの有効/無効Character/Active
Start Looking At指定Transformを注視開始Character/Target/Layer
Stop Looking At注視を停止Character/Target/Layer
Clear Looking AroundHotspot由来でない注視(priority 0)を全解除Character

Interaction(相互作用)

命令機能主なパラメータ
Interact現在フォーカス中の対象と相互作用Character
命令機能主なパラメータ
Jumpジャンプ実行Character
Move Direction指定方向に連続的に移動させるDirection/Priority/Character
Stop Move移動を停止Priority/Character
Move To指定ロケーションに移動。失敗時Instructionも設定可Location/Stop Distance/Cancel on Fail/On Fail/Character
Teleport指定ロケーションに瞬間移動Location/Character
Start Following対象を追従開始Target/Min Distance/Max Distance/Character
Stop Following追従を解除Character
Dash方向と時間を指定してダッシュDirection/Velocity/Duration/Wait to Finish/Mode(Cardinal/Single)/Animation Speed/Transition In/Out/Character
Cancel Dashダッシュを中断Character
Set Character DriverDriver Unitを別実装に差し替えCharacter/Driver
Set Character RotationRotation Unitを別実装に差し替えCharacter/Rotation

Player(プレイヤー)

命令機能主なパラメータ
Change PlayerPlayerとして扱うCharacterを切り替えるCharacter
Set Player InputPlayer Input Unitを差し替え(Directional/Point&Click/Tank等)Character/Input

Properties(キャラクタープロパティ)

命令機能主なパラメータ
AxonometryAxonometry値(2D/Iso制約)を変更Axonometry/Character
Can Collide他物体との衝突可否Character/Can Collide
Can Jumpジャンプ可否Character/Can Jump
Change Angular Speed角速度を時間変化で変更Angular Speed/Duration/Easing/Wait to Complete/Character
Change Gravity重力(上昇/下降/両方)を時間変化で変更Mode/Gravity/Duration/Easing/Wait to Complete/Character
Change Height高さを時間変化で変更Height/Duration/Easing/Wait to Complete/Character
Change Jump Forceジャンプ力を時間変化で変更Jump Force/Duration/Easing/Wait to Complete/Character
Change Mass質量を時間変化で変更Mass/Duration/Easing/Wait to Complete/Character
Change Movement Speed最大移動速度を時間変化で変更Speed/Duration/Easing/Wait to Complete/Character
Change Radius当たり半径を時間変化で変更Radius/Duration/Easing/Wait to Complete/Character
Change Terminal Velocity最大落下速度を時間変化で変更(滑空など)Terminal Velocity/Duration/Easing/Wait to Complete/Character
Change Time ModeGame Time / Unscaled Timeを切替Time Mode/Character
Is ControllablePlayer入力の受付可否を切替(カットシーン中など)Character/Is Controllable
Kill Character死亡状態にする(自動的にラグドール化)Character
Revive Character復活させ、起き上がりアニメ実行Character
Mannequin PositionMannequinのローカル位置を変更Character/Position
Mannequin RotationMannequinのローカル回転を変更Character/Rotation
Mannequin ScaleMannequinのローカルスケールを変更Character/Scale
Reset Vertical Velocity垂直速度を0にリセットCharacter

Ragdoll(ラグドール)

命令機能主なパラメータ
Start Ragdollラグドール状態に遷移Character
Recover Ragdollラグドール状態から起き上がるCharacter

Visuals(見た目/装備)

命令機能主なパラメータ
Attach PropボーンにPropをプレハブorインスタンスで装着Character/Type/Prop/Bone/Position/Rotation
Remove Prop装着済みPropを除去Character/Type/Prop
Drop Prop装着済みPropを落とすCharacter/Type/Prop
Change Modelモデルを差し替え(Skeleton/Footstep Sounds/Offset任意)Character/Model/Skeleton/Footstep Sounds/Offset
Put On Skin MeshSkin Mesh Rendererプレハブを新規装着Prefab/On Character
Take Off Skin Mesh装着済みSkin Meshを取り外すPrefab/From Character

Conditions(条件)

Conditions コンポーネントのBranchやCondition系ノードで使える条件群です。

Animation

条件判定内容主なパラメータ
Has State In Layer指定レイヤーにStateが再生中ならtrueLayer/Character

Busy

条件判定内容主なパラメータ
Is AvailableCharacterが何もしておらず新規アクション可能ならtrueCharacter
Is BusyCharacterが何らかのアクション中ならtrueCharacter
Are Arms Available両腕が使用可能ならtrueCharacter
Are Legs Available両脚が使用可能ならtrueCharacter
Is Left Arm Available左腕が使用可能ならtrueCharacter
Is Right Arm Available右腕が使用可能ならtrueCharacter
Is Left Leg Available左脚が使用可能ならtrueCharacter
Is Right Leg Available右脚が使用可能ならtrueCharacter
Is HumanoidHumanoidモデルならtrueCharacter

Combat

条件判定内容主なパラメータ
Is Invincible無敵状態ならtrueCharacter

Interaction

条件判定内容主なパラメータ
Can Interact相互作用可能な対象が存在するならtrueCharacter
条件判定内容主なパラメータ
Is Airborne空中にいるならtrueCharacter
Is Grounded接地しているならtrueCharacter
Is Idle移動していないならtrueCharacter
Is Moving移動中ならtrueCharacter
Is Dashingダッシュ中ならtrueCharacter
Raycast Floor足元一定距離にコライダーがあるならtrueCharacter

Properties

条件判定内容主なパラメータ
Can JumpCan Jumpプロパティが ONならtrueCharacter
Compare Foot Phase指定Phaseの足が接地中ならtrueCharacter
Compare Gravity重力値が条件に一致するならtrueCharacter
Compare Height身長値が条件に一致するならtrueCharacter
Compare Mass質量が条件に一致するならtrueCharacter
Compare Radius半径が条件に一致するならtrueCharacter
Compare Speed速度が条件に一致するならtrueCharacter
Jump Force(Compare Jump Force)ジャンプ力が条件に一致するならtrueCharacter
Terminal Velocity(Compare Terminal Velocity)最大落下速度が条件に一致するならtrueCharacter
Is ControllablePlayer入力を受け付けているならtrueCharacter
Is Dead死亡状態ならtrueCharacter
Is PlayerIs Playerフラグが ONならtrueCharacter

Visuals

条件判定内容主なパラメータ
Has Prop Attached指定ボーンにPropが装着されているならtrueBone/Character

Events(イベント)

Trigger コンポーネントに追加して、該当イベント発生時にInstructionsを発火させます。

Characters(ルート直下)

イベント発火タイミング
On Become PlayerNPCがPlayerに切り替わった瞬間
On Become NPCPlayerがNPCに戻った瞬間
On Change ModelCharacterのモデルが変更された瞬間
On DieCharacterが死亡した瞬間
On Revive死亡状態から復活した瞬間

Combat

イベント発火タイミング
On Defense ChangeDefense値が変化したとき
On Dodge攻撃を回避したとき
On Invincibility Change無敵状態が変化したとき
On Poise BreakPoiseが破られたとき
On Poise ChangePoise値が変化したとき
On Target Change戦闘ターゲットが変わったとき
イベント発火タイミング
On Dashダッシュ実行時
On Jumpジャンプ実行時
On Land着地時
On Step1歩踏み出すたび(足跡・エフェクト・音の差し込みに便利)

Ragdoll

イベント発火タイミング
On Start Ragdollラグドール状態に入った瞬間
On Recover Ragdollラグドールから復帰した瞬間

なお、ここに挙げた以外にもInteractionOn InteractOn FocusOn Blur)やAudioInputなど他カテゴリにもCharacterと関連するイベントがあります。


実践的な使い方 ― やりたいこと別の構成ガイド

「こういうキャラクター挙動を実現したい」場合にどのUnit・命令を使うかをまとめます。

3Dアクション/RPGの標準的なプレイヤー操作

カメラの向きを基準にWASD/左スティックでキャラクターを移動させる構成です。

使うもの設定
Player UnitDirectional
Driver UnitCharacter Controller
Rotation UnitPivot(移動方向を向く)

最も汎用的な構成で、ほとんどの3Dゲームに適しています。

クラシックRPG/ストラテジーのポイント&クリック移動

マウスクリックした地点にキャラクターが障害物を避けながら歩いていく構成です。

使うもの設定
Player UnitPoint & Click
Driver UnitNavMesh Agent(障害物回避のため)
Rotation UnitPivot

固定カメラ型ホラー(バイオハザード風)のタンク操作

カメラの向きに関係なく、前進キーでキャラクターのローカル前方に進み、左右キーでその場回転する構成です。

使うもの設定
Player UnitTank
Driver UnitCharacter Controller
Rotation UnitTank(必須、Player Unitの Tankと対)

敵と対峙したときにストレイフ(横歩き)させる

通常は移動方向を向くが、敵と戦闘状態に入ったら敵の方を常に向いたまま横移動します。

使うもの設定
通常時 Rotation UnitPivot
戦闘時 Rotation UnitLook at Target(敵を常に正面に据え、ストレイフ)
切替命令Set Character Rotation

ランタイムで状況に応じてシームレスに切り替わります

TPS/FPSでキャラクターの体をカメラの向きに合わせる

銃を構えたとき、キャラクターがカメラの向きと同じ方向を向き、武器の方向がカメラの視線と一致するようにする構成です。

使うもの設定
Rotation UnitObject Direction(カメラオブジェクトの向きに合わせる)

横スクロール/アイソメトリックゲームの移動制約

3D空間を使いつつ、移動を特定の軸や方向に制限する構成です。

使うもの設定
Driver UnitAxonometryフィールドを設定
Rotation UnitAxonometryをDriverと同じ値に設定
Axonometryモード用途
Side-Scroll XY横スクロール(X軸移動、Y軸重力)
Side-Scroll YZ奥行き方向の横スクロール
Isometric 8 Directions見下ろし型アイソメトリック(8方向)
Isometric Cardinal東西南北の4方向のみ
Isometric Ordinal斜め4方向のみ

バージョン2.9.36以降で利用可能です。DriverとRotationの両方に同じAxonometryを設定して整合性を取ります。

単発アニメーション(パンチ・手を振るなど)を再生する

一度だけ再生して自動で元のアニメーションに戻る動作を行います。

使うもの設定
命令Play Gesture
最低限の設定Character + Animation Clip(他はデフォルトで動作)
上半身だけAvatar Maskを指定すれば下半身は走りのまま上半身だけパンチなどが可能
連続再生Wait to CompleteをONにして複数のGestureをActionsに並べれば順番に再生

Gestureは常にあらゆるStateより優先されます。

しゃがみ・水泳などの状態アニメーションを切り替える

ループする姿勢アニメーション(しゃがみ、座る、水泳など)を動的に開始・停止します。

使うもの設定
開始命令Enter State(State Type = Animation Clip or Stateアセット)
停止命令Stop State(Layer指定 + Transitionでフェードアウト)
Layer数字が大きいほど優先度が高い

レイヤー活用例

  • Layer 1:走行State(Speed = 10)
  • Layer 2:しゃがみ走行State(Speed = 5)
  • Layer 2を追加すると、上位レイヤーのStateが再生され移動速度も5に変わる
  • Layer 2をStopするとLayer 1に戻り、速度も10に復帰

入場/退場アニメーション付きのStateを使う

剣を構えるとき「抜刀アニメ」→「構えループ」→ 解除時「納刀アニメ」のように、Stateの出入りに一発アニメを付けます。

使うもの設定
アセットStateアセット(Create > Game Creator > Characters > Animation State
EntryState開始時に再生されるGesture(例:抜刀)
ExitState終了時に再生されるGesture(例:納刀)
State Clipループするアニメ(例:構え)

NPCを特定の位置に移動させてからアクションさせる

NPCがドアの前まで歩き、正しい向きで止まってからドアを開ける構成です。

使うもの設定
コンポーネントMarker(移動先に配置)
Markerの TypeDirectional(矢印の位置・向きで停止)
命令Move To(LocationにMarkerを指定)

フロー例Move To(ドア前Marker)→ Wait to Complete → Play Gesture(ドアを開けるアニメ)

群衆の場合はStop Distanceを少し大きくすると、NPC同士がぶつかり合わずに「おおよそ到着」として処理できます。

どの角度からでもアイテムを拾えるMarkerを作る

地面に落ちているアイテムを、キャラクターがどの方向から近づいても自然に拾えるようにします。

使うもの設定
コンポーネントMarker(アイテム位置に配置)
Markerの TypeInwards(円周上の最寄り点に移動し、中心を向く)

死亡→ラグドール→復活の流れを作る

敵を倒したらラグドール状態に、復活イベントで自動的に起き上がります。

使うもの役割
死亡命令Kill Character(インタラクト無効化+自動ラグドール化)
復活命令Revive Character(体の向きに応じた起き上がりアニメ→制御復帰)
設定CharacterのRagdollセクションにSkeletonアセットを紐付け
起き上がりアニメRecover Face Down/Recover Face Upに設定
Transition Duration0.5秒以上推奨(スナップ感を避けるため)

Start Ragdoll を直接使うと入力が残ったままになるため、通常はKill/Reviveのペアが推奨です。

カットシーン中にプレイヤー操作を無効化する

イベント中にプレイヤーが動き回れないようにします。

使うもの設定
命令Is Controllable(Character/Is Controllable = false)
復帰カットシーン終了時に Is Controllable = true

インタラクション対象の優先順位を操作タイプに合わせる

Mode最適な操作形式
Near Characterコントローラー(キャラクター中心から最寄りの対象)
Screen CenterFPS(画面中央に近い対象を優先)
Screen Cursorポイント&クリック(カーソルに近い対象を優先)

設定場所はCharacterのMotion Unit内Interactionセクションの Modeフィールドです。

NPCに特定のキャラクターを追従させる

護衛NPCがプレイヤーに付いてくるようにします。

使うもの設定
開始命令Start Following(Target = Player、Min/Max Distanceで追従距離を指定)
停止命令Stop Following

Min Distance以内に入ると停止、Max Distance以上離れると追いかけ始める、という動作になります。DriverがNavMesh Agentなら障害物を避けて追従します。

アクションゲームのダッシュ(回避行動)を実装する

ボタン入力で指定方向に短時間だけ素早く移動する回避ダッシュです。

使うもの設定
命令Dash
Directionダッシュ方向
Velocityダッシュ速度
Durationダッシュ持続時間(秒)
ModeCardinal(4方向)/ Single(入力方向)
Transition In/Outアニメーションのブレンドイン・アウト

ダッシュ中に中断したい場合は Cancel Dash 命令を使います。

武器やアイテムのプロップをキャラクターに装着する

剣を手に持たせる、盾を背中に付けるなどの構成です。

使うもの設定
命令Attach Prop(Character/Bone/Position/Rotationを指定)
取り外しRemove Prop(消える)または Drop Prop(落とす)
Handlesアセット複数キャラで同じ装着位置を使い回したい場合に有用

Humanoid/非Humanoidで装着先を分岐する条件分岐もHandlesアセット内で設定できます。

足を地形に合わせて接地させる(IK)

坂道や段差でキャラクターの足が地面に自然に接地するようにします。

使うもの設定
IK RigFeet Align(Humanoid専用)
Foot Offsetボーン先端とメッシュ表面の差を補正する垂直オフセット
Foot Mask接地判定するレイヤー(水面などは除外)

キャラクターが近くの注目対象を自然に見るようにする

プレイヤーがHotspotに近づくと、頭・首・胸がそちらを向きます。

使うもの設定
IK RigLook at Target(Humanoid専用)
Track Speed注視速度(deg/s)
Max Angle周辺視野角度(この角度を超えると追わない)
各WeightHead/Neck/Chest/Spineの回転寄与度

Hotspotコンポーネントと連携して動作します。


公式リンク


まとめ

本記事ではGame Creator 2のCharacters(キャラクターシステム)について解説しました。如何だったでしょうか。

Charactersは5つのUnit(Player・Motion・Driver・Rotation・Animation)を組み合わせることで、あらゆるジャンルのゲームに対応したキャラクター制御を実現できるシステムです。

ノーコードでの設定変更からC#スクリプトによる拡張まで幅広くサポートしており、プロトタイプ段階から本格的な製品まで対応可能な柔軟性を持っています。

次回はCameras(カメラシステム)について解説していきます。

全記事一覧 ― Game Creator 2 完全ガイド シリーズ総合案内senkohome.com/gamecreator2-series-index/

それでは次の記事も閲覧いただけると幸いです。