当サイトを閲覧いただきありがとうございます。
本記事では、Game Creator 2の要となる「Visual Scripting」(ビジュアルスクリプティング)について詳しく解説します。
PlaymakerやUnity標準のVisual Scriptingのようなノードグラフではなく、タスクリスト方式(命令を上から下に実行するリスト)を採用しているのが最大の特徴です。
公式ドキュメント:Game Creator 2 Documentation
Visual Scriptingとは
Game CreatorのVisual Scriptingは次の3コンポーネント+1(Hotspot)で構成されます。
| コンポーネント | 役割 |
|---|
| Actions | 上から下へ順に実行される命令(Instruction)のリスト |
| Triggers | シーンで発生するイベント(キー入力・衝突・Interval等)を受信してInstructionsを実行 |
| Conditions | Branch(ブランチ)ごとに条件群と命令群を持ち、上から評価して最初に成功したBranchの命令を実行 |
| Hotspots | ゲームプレイ自体には影響しないが「インタラクト可能性」を視覚/音/キャラの注目で示す |
命名規約
Actions は複数のInstructionsを持つ
Conditions は複数のBranchesを持ち、各BranchがConditionsとInstructionsを持つ
Trigger は1つのEventを待ち受ける
High-Level Scriptingの思想
プログラミング言語よりも人間の直感に近い語彙で書けるように設計されています。「このキャラクターをあのオブジェクトに追従させる」のような操作を、低レベルのベクタ計算に落とさずそのまま1命令で書けます。
グラフ型とは共存可能
PlaymakerやUnity Visual Scriptingと組み合わせて使って問題ありません。GC2は「定番パターンを素早く組む」ことが得意、グラフ型は「細かい制御を書き込む」ことが得意、という住み分けです。
Game Creator Hub
コミュニティが無償で配布しているInstruction/Condition/Eventのハブサイト(公式推奨)です。プログラミング不要で語彙を増やせます。
Actions(命令リスト)
作成
- Hierarchy右クリック →
Game Creator > Visual Scripting > Actions
- 既存オブジェクトにInspector →
Add Component > Actions でもOK
- 削除は歯車アイコン →
Remove Component
命令の追加
Add Instruction ボタンでドロップダウン → カテゴリ選択または検索バーで直接絞り込み
- 既存命令を右クリック →
Insert Above / Insert Below で任意の位置に挿入
Fuzzy Search
GC2は独自のインデックス検索を持ち、誤字があっても意味的に近いものをヒットさせます。例えば move で Move Character のほか Change Position もヒットします。
組込みヘルプ
命令を右クリック → Help で、説明とパラメータ一覧が載ったフローティングウィンドウが開きます。
実行順
命令は上から下に順次実行されます。1命令が完了するまで次の命令は動きません(Wait to Complete など命令自体が待機する仕様)。リスト末端に達したらActionsは終了します。
デバッグ機能
命令を右クリックすると以下を切替可能です。
- Disable Instruction:命令を無効化(灰色表示)。再度クリックで戻す
- Breakpoint:その命令の直前でエディタを一時停止(エディタ時のみ有効、ビルドには影響しない)
Triggers(イベントリスナー)
作成
- Hierarchy右クリック →
Game Creator > Visual Scripting > Trigger
- または既存オブジェクトへ
Add Component > Trigger
基本構造
Triggerは1つのEventを監視し、発火した瞬間に内部のInstructionsリストを実行します。Instruction部分はActionsと同じ操作です。
Event変更
現在のEvent名をクリック → ドロップダウンから別Eventを選択(Fuzzy Search有効)。
代表的なEventカテゴリ
- Audio:音量変化の監視
- Cameras:Shot遷移
- Characters:入力/戦闘/死亡/ラグドール等
- Input:ボタン・カーソル・Flick・タッチ
- Interactive:
On Interact/On Focus/On Blur
- Lifecycle:
On Start/On Update/On Interval など
- Logic:Hotspotの有効化、
On Receive Signal
- Physics:ColliderのEnter/Exit、衝突
- Storage:セーブ・ロード・削除
- UI:選択・ホバー
- Variables:変数の変更監視
Conditions(条件分岐)
Conditionsコンポーネントの構造
- 上から下にBranchを評価
- 各Branchは「Conditions(条件リスト)」と「Instructions(命令リスト)」を持つ
- 条件リストのすべてがtrueなら、そのBranchの命令を実行して終了
- 途中でfalseが返れば次のBranchへ
- 空の条件リストは常に成功扱い(=デフォルト分岐として利用可能)
Branchの追加と並べ替え
Add Branch で末尾に追加
- 右端の
= をドラッグで順序入替
Description フィールドでメモ的にラベルを付けられます(ロジックには影響なし)
条件の否定
各Conditionの左にある緑のトグルでNOTを適用できます。例:Is Player Moving のNOTはプレイヤーが停止中ならtrueとなります。
作成
- Hierarchy右クリック →
Game Creator > Visual Scripting > Conditions
- または
Add Component > Conditions
Hotspots(インタラクション視覚化)
概要
Hotspotは直接ゲームプレイには影響しない演出用コンポーネントです。インタラクト可能なオブジェクトをプレイヤーに視覚・音・キャラクターの注目で示す仕組みを提供します。
たとえば、プレイヤーが近づいたときにオブジェクトをハイライトしたり、キャラクターの頭を重要なオブジェクトに向けさせたりできます。
一般にTriggerとHotspotはセットで配置します。Triggerがインタラクションの実処理を担い、Hotspotがそのオブジェクトがインタラクト可能であることをプレイヤーに示す演出を担います。
構成要素
HotspotコンポーネントはTargetフィールドとModeで構成されます。Targetは追跡対象のオブジェクト、ModeはHotspotがいつ反応するかを決めます。
Mode(4種類)
| モード | 動作 |
|---|
| Radius | Targetが指定半径内に入ると反応。半径の数値フィールドが追加表示される |
| On Interaction Focus | TargetのInteractionシステムがHotspotにフォーカスしたら反応 |
| On Interaction Reach | TargetのInteractionシステムのリーチ範囲内にあるが、フォーカスは自分以外のとき反応 |
| Always Active | Targetとの距離に関係なく常に反応 |
On Interaction Focus と On Interaction Reach はTargetがCharacterコンポーネントを持つ必要があります。
ギズモとデバッグ
- エディタ時:RadiusモードのHotspotを選択すると、反応距離を示す赤いギズモがシーンに表示される
- 実行時:ギズモは薄い色で表示され、TargetがHotspotを有効化すると緑色に変わる
距離判定の仕組み
Hotspotの距離チェックはUnityの物理エンジンを使いません。Hotspotの中心とTargetの位置の単純な距離計算で判定するため、Colliderコンポーネントは不要です。
作成方法
- Hierarchy右クリック →
Game Creator > Visual Scripting > Hotspot でシーンオブジェクトとして作成
- または既存のGameObjectに
Add Component > Hotspot で追加
Spots(演出要素)
SpotはHotspotの有効化/無効化時に何をするかを定義する個別の演出単位です。Add Spot ボタンからドロップダウンで追加します。
- 上から下の順に評価される
- 同じ種類のSpotを複数置けるが、効果が重なる場合は後のものが上書きする
Audio > Play Sound
Hotspotの有効化/無効化時にUIサウンドエフェクトを再生します。
Characters > Look At
Hotspotが有効化されるとCharacterがHotspotの中心を注視し、無効化されると滑らかに視線を外します。CharacterのIK(Look at Targetリグ)と連動して頭・首・胸・背骨を回転させます。
Game Objects > Activate Object
Hotspotが有効化されるとシーン内の既存のGameObjectインスタンスを有効化し、無効化されると非表示にします。
Game Objects > Instantiate Prefab
Hotspotが有効化されると**PrefabのGameObjectを生成(または有効化)**し、無効化されると非表示にします。
Materials > Change Material
Hotspotが有効か無効かに応じてマテリアルを切り替えます。オブジェクトのハイライト表現などに使えます。
UI > Change Text
指定したTextコンポーネントの値を書き換えます。
UI > Cursor
Hotspotにホバーしたときにカーソル画像を変更します。
UI > Show Floating Text
Hotspotが有効化されるとワールド空間キャンバス上にテキストを表示し、無効化されると非表示にします。Prefabを指定しない場合はデフォルトUIが使われます。
関連するVisual Scriptingノード
Instruction:
- Activate Hotspots(Visual Scriptingカテゴリ):種類を指定してHotspotの有効化/無効化を切り替える
Event:
- On Hotspot Activate(Logicカテゴリ):関連付けられたHotspotが有効化されたときに発火
- On Hotspot Deactivate(Logicカテゴリ):関連付けられたHotspotが無効化されたときに発火
Properties(動的値取得の共通仕組み)
多くの命令・条件・イベントが、フィールドの値をドロップダウン式に動的選択できるようになっています。これがProperty機能です。
- 例:
PropertyGetPosition は「定数のVector3」「Playerの位置」「Main Cameraの位置」「Local Variable」「Nested Access」などから動的選択可能
- スクリプトからは
PropertyGetXXX 系クラスとして提供
- これにより「ハードコードした座標」と「実行時に決まる座標」をUI上で切替可能
デバッグ支援まとめ
| 機能 | 対象 | 使い方 |
|---|
| Disable | Instruction/Branch | 右クリック → Disable |
| Breakpoint | Instruction | 右クリック → Breakpoint(エディタのみ) |
| Fuzzy Search | Add Instruction/Add Condition/Event切替 | 誤字・同義語も拾う |
| 内蔵ヘルプ | 任意のノード | 右クリック → Help |
| Hub連携 | ノードパレット | 追加命令をコミュニティから入手 |
スクリプティングでInstruction/Condition/Eventを自作する
プログラマーはC#で独自ノードを書けます。ひな形はProject右クリック → Create > Game Creator > Developer > C# Event(またはInstruction/Condition)で生成します。
Eventの例(カスタムイベント)
using System;
using GameCreator.Runtime.VisualScripting;
[Serializable]
public class MyEvent : Event
{
protected override void OnStart(Trigger trigger)
{
base.OnStart(trigger);
_ = trigger.Execute(this.Self);
}
}
- 親クラス
Event にはMonoBehaviour風の多数の仮想メソッドがある(OnAwake/OnStart/OnEnable等)。詳細は Event.cs 参照
- トリガーは
trigger.Execute(target) で発火。返り値はasync Task
- Fire-and-forget:
_ = trigger.Execute(this.Self);
- 完了待ち:
await trigger.Execute(this.Self);
target は実行されるInstructionsの「Target」扱いになるGameObject
装飾属性(Decoration)
ノードをVisual Scripting上で扱いやすくするためのC#属性です。
| 属性 | 意味 | 例 |
|---|
[Title("名前")] | ノードのタイトル(未指定ならクラス名から自動生成) | [Title("Hello World")] |
[Description("...")] | 説明文(Hub掲載時の概要欄に使われる) | |
[Image(typeof(IconCubeSolid), Color.red)] | アイコンと色 | |
[Category("Cat/Sub/Name")] | サブメニュー階層 | |
[Version(major, minor, patch)] | セマンティックバージョン(Hub更新時は必須で上昇) | [Version(1, 5, 3)] |
[Parameter("名前", "説明")] | 公開フィールドの説明(複数付与可) | |
[Keywords("hide")] | Fuzzy Search用の追加キーワード | |
[Example("...")] / [Example(@"複数行")] | 利用例。Markdown記法推奨 | |
[Dependency("gamecreator.inventory", 1, 5, 2)] | 必須モジュール指定(Hubで未所持ならブロック) | |
Custom EventsをHubで共有する際の前提
Hub公開時はTitle/Version/Description/Keywords/Dependencyを正しく付けないと利用者側で検索性や互換性の問題が出ます。
Instructions(命令)全一覧 ― コア312種
カテゴリはVisual Scripting上のドロップダウン階層そのままです。モジュール別命令(Inventory・Dialogue・Stats・Quests・Behavior・Perception・Shooter・Melee)は各アセットのドキュメントで扱うため、ここではコアに含まれるもののみを列挙します。
Animations(8)
| 命令 | 説明 | 主なパラメータ |
|---|
| Change Animator Float | AnimatorのFloatパラメータの値を変更 | Parameter Name/Value/Duration/Easing/Wait to Complete/Animator |
| Change Animator Integer | AnimatorのIntegerパラメータの値を変更 | Parameter Name/Value/Duration/Easing/Wait to Complete/Animator |
| Change Animator Layer | Animatorレイヤーのウェイトを変更 | Layer Index/Weight/Duration/Easing/Wait to Complete/Animator |
| Change Blend Shape | Blend Shapeパラメータの値を変更 | Skinned Mesh/Blend Shape/Value/Duration/Easing/Wait to Complete |
| Play Animation Clip | Animation ClipをAnimatorで再生 | Animation Clip/Animator |
| Set Animation | Animation Clipの値をセット | To/Animation Clip |
| Set Animator Boolean | AnimatorのBoolパラメータを設定 | Parameter Name/Value/Animator |
| Set Animator Trigger | AnimatorのTriggerパラメータを設定 | Parameter Name/Animator |
Application(2 + Cursor 3)
| 命令 | 説明 | 主なパラメータ |
|---|
| Open Web Page | デフォルトブラウザでWebページを開く | URL |
| Quit Application | アプリケーションを終了 | — |
| Cursor Texture | ハードウェアカーソルの画像を変更 | Texture/Tip/Mode |
| Cursor Visibility | ハードウェアカーソルの表示/非表示 | Is Visible |
| Lock Cursor | ポインタのロックモードを設定 | Lock Mode |
Audio(21)
| 命令 | 説明 | 主なパラメータ |
|---|
| Audio Mixer Parameter | Audio Mixerの公開パラメータの値を変更 | Audio Mixer/Parameter Name/Parameter Value |
| Audio Source Pitch | Audio Sourceのピッチを変更 | Audio Source/Pitch/Transition |
| Audio Source Volume | Audio Sourceのボリュームを変更 | Audio Source/Volume/Transition |
| Change Ambient Volume | Ambient音量を変更 | Volume |
| Change Master Volume | Master音量を変更(全チャンネルに影響) | Volume |
| Change Music Volume | Music音量を変更 | Volume |
| Change Snapshot | Audio Snapshotを滑らかに遷移 | Snapshot/Transition |
| Change Sound Effects Volume | Sound Effects音量を変更 | Volume |
| Change Speech Volume | Speech音量を変更 | Volume |
| Change UI Volume | UI音量を変更 | Volume |
| Fade All Ambient | 全Ambientを停止 | Wait To Complete/Transition Out |
| Fade All Music | 全Musicを停止 | Wait To Complete/Transition Out |
| Play Ambient | ループ再生Audio Clip(背景音向け) | Audio Clip/Transition In/Spatial Blending/Target |
| Play Music | ループ再生Audio Clip(BGM向け) | Audio Clip/Transition In/Spatial Blending/Target |
| Play Sound Effect | Audio Clip SEを1回再生 | Audio Clip/Wait To Complete/Pitch/Transition In/Spatial Blending/Target |
| Play Speech | Audio Clip音声を1回再生 | Audio Clip/Wait To Complete/Spatial Blending/Target |
| Play UI Sound | 非ダイアジェティックUIサウンドを再生 | Audio Clip/Wait To Complete/Pitch/Spatial Blending/Target |
| Stop Ambient | 再生中Ambientを停止 | Audio Clip/Wait To Complete/Transition Out |
| Stop Music | 再生中Musicを停止 | Audio Clip/Wait To Complete/Transition Out |
| Stop Sound Effect | SEを停止 | — |
| Stop Speech On Game Object | 指定GameObjectのSpeechを停止 | Target |
Cameras(3 + サブ35)
ルート:Change To Shot/Revert To Previous Shot/Set Main Shot。詳細はカメラシステムの記事を参照してください。
Characters(コア67)
詳細はキャラクターシステムの記事を参照してください。
Debug(8 + Console 5 + Gizmos 1)
| 命令 | 説明 | 主なパラメータ |
|---|
| Beep | PC内蔵スピーカーからビープ音を再生 | — |
| Clear Console | コンソールのメッセージをクリア | — |
| Comment | Instructionsリストにコメントを表示(実行時は何もしない) | Text |
| Frame Step | エディタ一時停止中に1フレーム進める | — |
| Log Number | 数値メッセージをコンソールに出力 | Number |
| Log Text | テキストメッセージをコンソールに出力 | Message |
| Pause Editor | Unityエディタを一時停止(エディタのみ) | — |
| Toggle Console | コンソールウィンドウの表示切替 | — |
| Console Close | ランタイムコンソールを閉じる | — |
| Console Command | コンソールコマンドを実行 | Command |
| Console Open | ランタイムコンソールを開く | — |
| Console Text | ランタイムコンソールにテキスト出力 | Message |
| Console Toggle | ランタイムコンソールの表示切替 | — |
| Gizmo Line | シーンビューに線ギズモを描画 | — |
Game Objects(8 + Components 8 + Pooling 2)
| 命令 | 説明 | 主なパラメータ |
|---|
| Change Layer | GameObjectのレイヤーを変更 | Layer/Children Too/Game Object |
| Change Name | GameObjectの名前を変更 | Name/Game Object |
| Change Tag | GameObjectのTagを変更 | Tag/Game Object |
| Destroy | GameObjectインスタンスを破棄 | Game Object |
| Instantiate | GameObjectの新規インスタンスを生成 | Game Object/Position/Rotation/Save |
| Set Active | GameObjectのアクティブ状態を変更 | Game Object |
| Set Game Object | GameObject値を別のものに設定 | Set/From |
| Toggle Active | GameObjectのアクティブ状態をトグル | Game Object |
| Add Component | コンポーネントを追加 | Game Object |
| Disable/Enable Collider | Colliderの有効/無効化 | Game Object |
| Disable/Enable Component | コンポーネントの有効/無効化 | Game Object |
| Disable/Enable Renderer | Rendererの有効/無効化 | Game Object |
| Remove Component | コンポーネントを削除 | Game Object |
| Pool Destroy | GameObjectプールを破棄 | Game Object |
| Pool Prewarm | プールのインスタンス数を確保 | Game Object/Pool Size |
| 命令 | 説明 | 主なパラメータ |
|---|
| Disable Input Action | Input Actionを無効化 | Input Asset |
| Disable Input Map | Input Mapを無効化 | Input Asset |
| Display Touchstick Left | 左側タッチスティックの表示/非表示 | Show |
| Display Touchstick Right | 右側タッチスティックの表示/非表示 | Show |
| Enable Input Action | Input Actionを有効化 | Input Asset |
| Enable Input Map | Input Mapを有効化 | Input Asset |
Lights(2)
| 命令 | 説明 | 主なパラメータ |
|---|
| Light Color | ライトの色を滑らかに変更 | Color/Light/Duration/Easing/Wait to Complete |
| Light Intensity | ライトの強度を滑らかに変更 | Intensity/Light/Duration/Easing/Wait to Complete |
Math > Arithmetic(13)
| 命令 | 説明 | 主なパラメータ |
|---|
| Absolute Number | 絶対値を取得 | Set/Number |
| Add Numbers | 2つの値を加算 | Set/Value 1/Value 2 |
| Clamp Number | 値を範囲内にクランプ | Set/Value/Minimum/Maximum |
| Cosine | コサイン値を設定 | Set/Cosine |
| Divide Numbers | 除算 | Set/Value 1/Value 2 |
| Increment Number | 値を加算して自身に代入 | Set/Value |
| Modulus Numbers | 剰余演算 | Set/Value 1/Value 2 |
| Multiply Numbers | 乗算 | Set/Value 1/Value 2 |
| Set Number | 値を代入 | Set/From |
| Sign Of Number | 符号を取得(-1 or 1) | Set/Number |
| Sine | サイン値を設定 | Set/Sine |
| Subtract Numbers | 減算 | Set/Value 1/Value 2 |
| Tangent | タンジェント値を設定 | Set/Tangent |
Math > Boolean(6)
| 命令 | 説明 | 主なパラメータ |
|---|
| And Bool | AND演算 | Set/Value 1/Value 2 |
| Nand Bool | NAND演算 | Set/Value 1/Value 2 |
| Nor Bool | NOR演算 | Set/Value 1/Value 2 |
| Or Bool | OR演算 | Set/Value 1/Value 2 |
| Set Bool | Boolean値を代入 | Set/From |
| Toggle Bool | Boolean値をトグル | Set/From |
Math > Geometry(23)
| 命令 | 説明 | 主なパラメータ |
|---|
| Add Directions | 方向ベクトルの加算 | Set/Direction 1/Direction 2 |
| Add Points | 位置ベクトルの加算 | Set/Point 1/Point 2 |
| Clamp | Vector3の各成分をクランプ | Set/Value/Minimum/Maximum |
| Cross Product | 外積を計算 | Set/Direction 1/Direction 2 |
| Distance | 2点間の距離を計算 | Set/Point 1/Point 2 |
| Dot Product | 内積を計算 | Set/Direction 1/Direction 2 |
| Normalize | 方向ベクトルを正規化 | Set/From |
| Project On Plane | 平面への射影 | Set/Direction/Plane Normal |
| Reflect On Plane | 平面での反射 | Set/Direction/Plane Normal |
| Remap Coordinates | Vector3の各成分を再マッピング | Value/X/Y/Z |
| Scale Product | 成分ごとの乗算 | Set/Direction 1/Direction 2 |
| Set Direction | 方向ベクトルを設定 | Set/From |
| Set Point | 位置ベクトルを設定 | Set/From |
| Set Vector X/Y/Z | 各成分を個別に設定 | Set/X or Y or Z |
| Subtract Directions | 方向ベクトルの減算 | Set/Direction 1/Direction 2 |
| Subtract Points | 位置ベクトルの減算 | Set/Point 1/Point 2 |
| Transform To Local/World Direction/Point | ローカル↔ワールド変換 | Set/Transform/Direction or Point |
| Uniform Scale | 各成分に同じ値を乗算 | Set/Vector/Value |
Math > Shading(4)
| 命令 | 説明 | 主なパラメータ |
|---|
| Lerp Color | 2色間を時間経過で補間 | Color 1/Color 2/Duration/Easing/Wait to Complete/Set |
| Lerp Lightness | 明度を時間経過で補間 | Lightness/Duration/Easing/Wait to Complete/Set |
| Lerp Saturation | 彩度を時間経過で補間 | Saturation/Duration/Easing/Wait to Complete/Set |
| Set Color | Color値を設定 | Color/Set |
Math > Text(4)
| 命令 | 説明 | 主なパラメータ |
|---|
| Join | 2つの文字列を結合 | Text 1/Text 2/Set |
| Replace | 文字列の置換 | Text/Old Text/New Text/Set |
| Set Text | 文字列の値を変更 | Text/Set |
| Substring | 部分文字列を抽出 | Text/Index/Length/Set |
Physics 2D(6)
| 命令 | 説明 | 主なパラメータ |
|---|
| Add Explosion Force 2D | 爆発シミュレーション力を適用 | Rigidbody/Origin/Radius/Force/Force Mode |
| Add Force 2D | Rigidbody2Dに力を加える | Rigidbody/Direction/Force/Force Mode |
| Change Mass 2D | Rigidbody2Dの質量を変更 | Rigidbody/Mass |
| Change Velocity 2D | Rigidbody2Dの速度を変更 | Rigidbody/Velocity |
| Gravity Scale 2D | 重力スケールを変更 | Rigidbody/Gravity Scale |
| Is Kinematic 2D | Kinematic状態を変更 | Rigidbody/Is Kinematic |
Physics 3D(11)
| 命令 | 説明 | 主なパラメータ |
|---|
| Add Explosion Force 3D | 爆発シミュレーション力を適用 | Rigidbody/Origin/Radius/Force/Force Mode |
| Add Force 3D | Rigidbodyに力を加える | Rigidbody/Direction/Force/Force Mode/Space Mode |
| Change Mass 3D | Rigidbodyの質量を変更 | Rigidbody/Mass |
| Change Velocity 3D | Rigidbodyの速度を変更 | Rigidbody/Velocity |
| Is Kinematic 3D | Kinematic状態を変更 | Rigidbody/Is Kinematic |
| Overlap Box/Circle/Sphere | 指定形状内のコライダーを取得 | Center/Size or Radius/Store In/Layer Mask |
| Trace Line 3D | 線分上のコライダーを取得 | Point A/Point B/Store In/Layer Mask |
| Use Gravity 3D | 重力の有効/無効を変更 | Rigidbody/Use Gravity |
Renderer(5)
| 命令 | 説明 | 主なパラメータ |
|---|
| Change Material Color | マテリアルのColorプロパティを時間経過で変更 | Property/Color/Duration/Easing/Wait to Complete/Renderer |
| Change Material Float | マテリアルのFloatプロパティを時間経過で変更 | Property/Float/Duration/Easing/Wait to Complete/Renderer |
| Change Material Texture | マテリアルのメインテクスチャを変更 | Texture/Renderer |
| Change Material | マテリアル自体を変更 | Material/Renderer |
| Change Sprite | Spriteの値を設定 | To/Sprite |
Scenes(2)
| 命令 | 説明 | 主なパラメータ |
|---|
| Load Scene | 新しいシーンを読み込み | Scene/Mode/Async/Scene Entries |
| Unload Scene | アクティブなシーンをアンロード | Scene |
Storage(5)
| 命令 | 説明 | 主なパラメータ |
|---|
| Delete Game | 保存済みゲームデータを削除 | Save Slot |
| Load Game | 保存済みゲーム状態を読み込み | Save Slot |
| Load Latest Game | 最新のセーブデータを読み込み | — |
| Reset Game | ゲームをデフォルト値にリセット | Scene |
| Save Game | 現在のゲーム状態を保存 | Save Slot |
Time(3)
| 命令 | 説明 | 主なパラメータ |
|---|
| Time Scale | ゲームのTimeScaleを変更 | Time Scale/Blend Time/Layer |
| Wait Frames | 指定フレーム数待機 | Frames |
| Wait Seconds | 指定秒数待機 | Seconds/Mode |
| 命令 | 説明 | 主なパラメータ |
|---|
| Change Position | 位置を時間経過で変更 | Position/Space/Duration/Easing/Wait to Complete/Transform |
| Change Rotation | 回転を時間経過で変更 | Rotation/Space/Duration/Easing/Wait to Complete/Transform |
| Change Scale | ローカルスケールを時間経過で変更 | Scale/Duration/Easing/Wait to Complete/Transform |
| Clear Parent | 親オブジェクトを解除 | Transform |
| Look At | 指定ターゲットの方を向く | Target/Transform |
| Set Parent | 親オブジェクトを変更 | Parent/Transform |
UI(16)
| 命令 | 説明 | 主なパラメータ |
|---|
| Canvas Group Alpha | Canvas Groupの不透明度を変更 | Canvas Group/Alpha/Duration/Easing/Wait to Complete |
| Canvas Group Block Raycasts | Raycastブロックの切替 | Canvas Group/Block Raycasts |
| Canvas Group Interactable | インタラクタブル状態の切替 | Canvas Group/Interactable |
| Change Dropdown | Dropdownの値を変更 | Text/Index |
| Change Font Size | フォントサイズを変更 | Text/Size |
| Change Graphic Color | Graphic Colorを変更 | Graphic/Color |
| Change Height | RectTransformの高さを変更 | Rect Transform/Height |
| Change Image | ImageのSpriteを変更 | Override Sprite/Image/Sprite |
| Change Input Field | InputFieldの値を変更 | Input Field/Value |
| Change Slider | Sliderの値を変更 | Slider/Value |
| Change Text | Textの値を変更 | Text/Value |
| Change Toggle | Toggleの値を変更 | Toggle/Value |
| Change Width | RectTransformの幅を変更 | Rect Transform/Width |
| Focus On | 特定UI要素にフォーカス | Focus On |
| Submit | 送信 | — |
| Unfocus | フォーカス解除 | — |
Variables(16)
詳細は変数の記事を参照してください。
Visual Scripting(12)
| 命令 | 説明 | 主なパラメータ |
|---|
| Activate Hotspots | Hotspotの有効/無効をタイプ別に切替 | Type/Active |
| Broadcast Message | GameObjectのメソッドを呼び出し | Game Object/Message/Send Upwards |
| Check Conditions | 条件リストがfalseなら以降のInstructionsをスキップ | Conditions/Mode |
| Emit Signal | シグナルを発信 | Signal |
| Invoke Method | スクリプトのメソッドを呼び出し | Method |
| Restart Instructions | Instructionsを最初から再実行 | — |
| Run Actions | 別のActionsコンポーネントを実行 | Actions/Wait Until Complete |
| Run Conditions | 別のConditionsコンポーネントを実行 | Conditions/Wait Until Complete |
| Run Trigger | 別のTriggerコンポーネントを実行 | Trigger/Wait Until Complete |
| Stop Actions | 実行中のActionsを停止 | Actions |
| Stop Conditions | 実行中のConditionsを停止 | Conditions |
| Stop Trigger | 実行中のTriggerを停止 | Trigger |
モジュール別追加命令(参考):Inventory(36)/Dialogue(4)/Stats(12)/Quests(9)/Behavior(3)/Perception(13)/Shooter(17)/Melee(19)。詳細は各アセット記事を参照してください。
Conditions(条件)全一覧 ― コア80種
Audio(6)
| 条件 | 説明 | 主なパラメータ |
|---|
| Is Ambient/Music/Sound Effect/Speech/UI Playing | 指定Audio Clipが再生中ならtrue | Audio Clip |
| Is Speech Target Playing | 指定GameObjectが音声再生中ならtrue | Target |
Cameras(1)
| 条件 | 説明 | 主なパラメータ |
|---|
| Is Shot Active | Camera ShotがMain Cameraに割り当てられているならtrue | Shot |
Characters(29)
詳細はキャラクターシステムの記事を参照してください。
Game Objects(7)
| 条件 | 説明 | 主なパラメータ |
|---|
| Compare Game Objects | 同一GameObjectか比較 | Game Object/Compare To |
| Compare Layer | レイヤーマスクに属するか | Game Object/Layer Mask |
| Compare Tag | 指定タグが付いているか | Game Object/Tag |
| Does Component Exist | コンポーネントが存在するか | Game Object/Component |
| Does Game Object Exist | GameObjectがnullでないか | Game Object |
| Is Component Enabled | コンポーネントが有効か | Game Object/Component |
| Is Game Object Active | GameObjectがアクティブか | Game Object |
| 条件 | 説明 | 主なパラメータ |
|---|
| Is Input Held Down/Pressed/Released | Input Actionのボタン状態を判定 | Input |
| Is Key Held Down/Pressed/Released | キーボードキーの状態を判定 | Key |
| Is Mouse Held Down/Pressed/Released | マウスボタンの状態を判定 | Button |
Math > Arithmetic(2)
| 条件 | 説明 | 主なパラメータ |
|---|
| Compare Decimal | 小数値の比較 | Value/Comparison/Compare To |
| Compare Integer | 整数値の比較 | Value/Comparison/Compare To |
Math > Boolean(3)
| 条件 | 説明 | 主なパラメータ |
|---|
| Always False | 常にfalse | — |
| Always True | 常にtrue | — |
| Compare Boolean | Boolean値の比較 | Value/Comparison/Compare To |
Math > Geometry(5)
| 条件 | 説明 | 主なパラメータ |
|---|
| Compare Direction | 方向ベクトルの比較 | Value/Comparison/Compare To |
| Compare Distance Flat | XZ平面距離の比較 | Point A/Point B/Comparison/Distance |
| Compare Distance Vertical | 垂直距離の比較 | Point A/Point B/Comparison/Distance |
| Compare Distance | 2点間距離の比較 | Point A/Point B/Comparison/Distance |
| Compare Point | 位置ベクトルの比較 | Value/Comparison/Compare To |
Physics(9)
| 条件 | 説明 | 主なパラメータ |
|---|
| Check Box 2D/3D | ボックス形状の衝突判定 | Position/Size/Layer Mask |
| Check Capsule | カプセル形状の衝突判定 | Position/Height/Radius/Layer Mask |
| Check Character 3D Fits | キャラクターが新サイズに収まるか | Character/Height/Radius/Layer Mask |
| Check Circle/Sphere | 円/球形状の衝突判定 | Position/Radius/Layer Mask |
| Is Kinematic | Kinematic状態か | Game Object |
| Is Sleeping | Rigidbodyがスリープ中か | Game Object |
| Raycast 2D/3D | 2点間のレイキャスト判定 | Source/Target/Layer Mask |
| 条件 | 説明 |
|---|
| Check Platform | 現在のプラットフォームを判定 |
| Is Batch Mode | バッチモードで動作中か |
| Is Console | コンソールプラットフォームか |
| Is Editor | Unityエディタ内か |
| Is Mobile | モバイルプラットフォームか |
Scenes(1)
| 条件 | 説明 | 主なパラメータ |
|---|
| Is Scene Loaded | シーンが読み込まれているか | Scene |
Storage(2)
| 条件 | 説明 | 主なパラメータ |
|---|
| Has Save At Slot | 指定スロットにセーブが存在するか | Save Slot |
| Has Save | セーブデータが存在するか | — |
Text(2)
| 条件 | 説明 | 主なパラメータ |
|---|
| Text Contains | 文字列が含まれているか | Text/Substring |
| Text Equals | 文字列が一致するか | Text 1/Text 2 |
| 条件 | 説明 | 主なパラメータ |
|---|
| Child Count | 直接の子オブジェクト数を比較 | Target/Comparison/Compare To |
| Is Child Of | 子オブジェクトか | Child/Parent |
| Is Sibling Of | 兄弟オブジェクトか | Sibling A/Sibling B |
Variables(1)
| 条件 | 説明 | 主なパラメータ |
|---|
| List Is Empty | List Variableが空か | List Variables |
Visual Scripting(2)
| 条件 | 説明 | 主なパラメータ |
|---|
| Conditions As And | ネストされたConditionsをAND評価 | Conditions |
| Run Conditions As Or | ネストされたConditionsをOR評価 | Conditions |
Events(イベント)全一覧 ― コア50種
Audio(6)
| イベント | 発火タイミング |
|---|
| On Change Ambient/Master/Music/Sound Effects/Speech/UI Volume | 各チャンネル音量が変化したとき |
Cameras(3)
| イベント | 発火タイミング |
|---|
| On Camera Change | CameraのShotが切り替わった瞬間 |
| On Change From Shot | 自身のShotが非アクティブ化された瞬間 |
| On Change To Shot | 自身のShotがアクティブ化された瞬間 |
Characters(17)
詳細はキャラクターシステムの記事を参照してください。
| イベント | 発火タイミング | 主なパラメータ |
|---|
| On Cursor Click | マウスボタンがクリックされたとき | Button/Min Distance |
| On Input Button | KB/Gamepad/Mouseボタンが操作されたとき | Button/Min Distance |
| On Input Flick | Vector2入力がフリックされたとき | Value/Compare/Min Distance |
| On Touch | タッチスクリーン指タップ | Min Distance |
Interactive(3)
| イベント | 発火タイミング | 主なパラメータ |
|---|
| On Blur | フォーカスが外れたとき | — |
| On Focus | フォーカスされたとき | — |
| On Interact | 相互作用されたとき | Use Raycast |
Lifecycle(13)
| イベント | 発火タイミング | 主なパラメータ |
|---|
| On App Focus | アプリケーションがフォーカスされたとき | — |
| On App Pause | アプリケーションが一時停止されたとき | — |
| On App Quit | アプリケーションが終了されるとき | — |
| On Become Invisible | Rendererが非表示になったとき | — |
| On Become Visible | Rendererが表示されたとき | — |
| On Disable | GameObjectが非アクティブ化されたとき | — |
| On Enable | GameObjectがアクティブ化されたとき | — |
| On Fixed Update | FixedUpdateのたびに発火 | — |
| On Interval | 指定秒数ごとに定周期発火 | Time Mode/Interval |
| On Invoke | スクリプトからInvoke()が呼ばれたとき | — |
| On Late Update | LateUpdateのたびに発火 | — |
| On Start | シーン開始時に1回発火 | — |
| On Update | Updateのたびに発火 | — |
Logic(3)
| イベント | 発火タイミング | 主なパラメータ |
|---|
| On Hotspot Activate | Hotspotがアクティブ化されたとき | — |
| On Hotspot Deactivate | Hotspotが非アクティブ化されたとき | — |
| On Receive Signal | 指定IDのシグナルを受信したとき | Signal |
Physics(7)
| イベント | 発火タイミング | 主なパラメータ |
|---|
| On Collide Exit | 衝突が終了したとき | — |
| On Collide | 衝突が発生したとき | — |
| On Trigger Enter Tag | 特定タグのGameObjectがトリガーに入ったとき | Tag |
| On Trigger Enter | GameObjectがトリガーに入ったとき | — |
| On Trigger Exit Tag | 特定タグのGameObjectがトリガーから出たとき | Tag |
| On Trigger Exit | GameObjectがトリガーから出たとき | — |
| On Trigger Stay | GameObjectがトリガー内にいる間発火し続ける | — |
Storage(3)
| イベント | 発火タイミング |
|---|
| On Delete | セーブが削除されたとき |
| On Load | ゲームがロードされたとき |
| On Save | ゲームがセーブされたとき |
UI(4)
| イベント | 発火タイミング |
|---|
| On Deselect | UI要素の選択が外れたとき |
| On Hover Enter | UI要素にホバーしたとき |
| On Hover Exit | UI要素のホバーが外れたとき |
| On Select | UI要素が選択されたとき |
Variables(4)
| イベント | 発火タイミング |
|---|
| On Global List Variable Change | Global List変数が変更されたとき |
| On Global Name Variable Change | Global Name変数が変更されたとき |
| On Local List Variable Change | Local List変数が変更されたとき |
| On Local Name Variable Change | Local Name変数が変更されたとき |
Hotspot Spots全一覧
Hotspot有効化/無効化時に発動する演出単位です。Add Spot ボタンで追加します。上から下の順に評価され、同種のSpotが重なる場合は後のものが上書きします。
| サブカテゴリ | Spot | 有効化時の動作 | 無効化時の動作 |
|---|
| Audio | Play Sound | UIサウンドエフェクトを再生 | UIサウンドエフェクトを再生 |
| Characters | Look At | CharacterがHotspotの中心を注視 | 滑らかに視線を外す |
| Game Objects | Activate Object | シーン内のGameObjectインスタンスを有効化 | 無効化 |
| Game Objects | Instantiate Prefab | Prefabを生成または有効化 | 無効化 |
| Materials | Change Material | 指定マテリアルに切替 | 元のマテリアルに戻す |
| UI | Change Text | Textコンポーネントの値を書換 | ― |
| UI | Cursor | カーソル画像を変更 | 元のカーソルに戻す |
| UI | Show Floating Text | ワールド空間キャンバスにテキストを表示 | テキストを非表示 |
実践的な使い方 ― やりたいこと別の構成ガイド
キー押下 → メッセージ表示
- Trigger作成 → Eventを
On Input Button
- Buttonに「Space」相当のInputActionを指定
- Instructionsに
Log Text や Play UI Sound を追加
プレイヤー接近 → NPCが向く
- NPCにHotspot(Mode=Radius)を追加、Target=Player
- HotspotのSpotに
Characters > Look At
- 半径内に入るとキャラの頭がNPCを向く
所持金で分岐(RPG定番)
- Conditionsコンポーネントを設置
- Branch 1:
Compare Wealth >= 500 → Instruction: 購入処理
- Branch 2:空条件 →
Instruction: 買えない旨のメッセージ
周期イベントで敵のHPを減らす
- Trigger作成 → Event=
On Interval、Interval=1
- Instructionsに
Change Stat でHPを -1 するStatsモジュールの命令
Signalを使ったゆるい結合
- 送信側:
Emit Signal 命令で "boss-defeated" をブロードキャスト
- 受信側:別のTriggerでEvent=
On Receive Signal、ID="boss-defeated"
- 双方が互いの参照を持たないため、プレハブ化や再利用がしやすい設計です
Tipsと注意点
- Propertyを活用すること:固定値の代わりに「Playerの位置」「Local Variable」などを選んでおけば、プレハブ化や再利用が段違いに楽になります
- Empty Conditionsは常にtrue:Conditionsコンポーネントで「デフォルト分岐」を作りたい時は、末尾Branchを条件空にして置きます
- DisableとBreakpointはエディタ限定:ビルド版ではBreakpointは無視されます。ログは
Log Text/Log Number を使います
- Signal vs 直接参照:疎結合にしたい場合はSignal。ライフタイム中確実に紐付く2者間なら直接参照でよいです
- Run Actions / Run Conditions / Run Trigger:他のコンポーネントを呼び出せるので、共通ロジックをPrefab化して呼び出す設計が可能です
公式リンク
まとめ
本記事ではGame Creator 2のVisual Scripting(ビジュアルスクリプティング)について解説しました。如何だったでしょうか。
Visual ScriptingはActions・Triggers・Conditions・Hotspotsの4コンポーネントで、ノードグラフ型とは異なるタスクリスト方式でゲームロジックを構築できるシステムです。
コアだけで312種のInstruction、80種のCondition、50種のEventが用意されており、モジュールを追加すればさらに語彙が広がります。Fuzzy Search・組込みヘルプ・Breakpointなどのデバッグ支援も充実しているため、効率的な開発が可能です。
次回はVariables(変数)について解説していきます。
全記事一覧 ― Game Creator 2 完全ガイド シリーズ総合案内senkohome.com/gamecreator2-series-index/
それでは次の記事も閲覧いただけると幸いです。