当サイトを閲覧いただきありがとうございます。
本記事では、Game Creator 2のモジュールのひとつである「Stats」(ステータス・能力値システム)について詳しく解説します。
StatsはRPG的な能力値システム全般をカバーするモジュールで、Stat(能力値)/Attribute(HP・MP等)/Class(職業テンプレ)/Formula(式評価)/Table(経験値テーブル)/Stat Modifier(装備補正)/Status Effect(状態異常)を包括的に扱います。
公式ドキュメント:Game Creator 2 Documentation
Statsとは
RPG・シミュ・格ゲーを問わず、数値でキャラを表現する場面の基盤です。
主要オブジェクト:
- Stat:伸びる/変わる数値(例:strength、wisdom、luck)
- Attribute:上限付きの数値(例:HP 0〜100)
- Class:StatとAttributeの組合せテンプレ(例:Warrior、Mage)
- Traits:Classをシーン上のGameObjectにアタッチするコンポーネント
- Formula:
source.stat[atk] - target.stat[def]のような式 - Table:経験値 → レベルなどの対応付け
- Stat Modifier:装備やバフによる加算・倍率補正
- Status Effect:毒/加速など時間経過で作用する状態
使い分けの原則
| パターン | 使う機能 |
|---|---|
| 上限はなく伸びる | Stat(strength、wisdom、level…) |
| 上限=別Statに依存 | Attribute(healthはmax_health Statにキャップ) |
| キャラごとの能力差 | ClassにStat/Attributeの初期値違いで差を吸収 |
| 装備中だけ+10 | Stat Modifier |
| 毎秒HPを1減らす | Status Effect |
導入
- Asset Storeから Statsモジュール を購入
Window > Package ManagerからインストールGame Creator > Install...のサンプル:- Examples:機能ごとのサンプルシーン
- Classes:Warrior/Mage等のClassテンプレ
- UI:HUD/キャラステータス画面のテンプレ
Stats(能力値)
作成
Project右クリック → Create > Game Creator > Stats > Stat
フィールド
- ID:プロジェクト全体で一意。Formulaの
source.stat[ID]で参照されるため、短く分かりやすい名前(str/strength)を推奨 - Base Value:初期値。最終値ではなく、Formulaの起点
- Formula:未指定なら最終値 = Base Value。指定すると実行時計算で最終値になる
- UI:Name/Acronym/Description/Color/Icon
BaseとFormulaの関係
Base 100、Formula = source.base[this] * source.stat[level] なら、Lv1で100、Lv2で200、Lv3で300…になります。Baseは「絶対量」、Formulaは「育成曲線」と考えると整理しやすいです。
Attributes(属性)
作成
Create > Game Creator > Stats > Attribute
フィールド
- ID:一意。
hp/healthなど - Min Value:下限(通常0)
- Max Value:別Stat参照。レベルアップでmax_health Statが増えれば自動的に上限も増える
- Start Percent:初期割合(ほとんどのAttributeは1.0で満タンスタート)
典型例
health:max =max_health(Stat)、start = 1.0stamina:max =max_stamina、start = 1.0mana:max =max_mana、start = 1.0
Classes(クラス/テンプレ)
作成
Create > Game Creator > Stats > Class
構成
- Attributes:含めるAttributeの一覧。各AttributeのStart Percentを Class内で上書き可
- Stats:含めるStatの一覧。Base ValueとFormulaをClass内で上書き可(Warriorはstr=10、Mageはstr=4のように差別化)
オーバーライドの哲学
「同じ仕組み・違う数値」でMageとKnightを作るなら、同じClassテンプレをコピーしてBase/Formulaだけ書き換えるのが保守性の面で優れています。
Traits(キャラに結びつけるコンポーネント)
アタッチ
任意のGameObjectに Traits コンポーネントを追加します。Characterでなくても使えます。
Classの割当
コンポーネントにClassアセットをドラッグ&ドロップ。内容が表示され、個別Attribute/Statの値をこのインスタンスだけで上書きできます。
Runtime表示
プレイモード中は現在値をインスペクタで確認できるため、デバッグしやすいです。
Formulas(計算式)
作成
Create > Game Creator > Stats > Formula
式の書き方
テキストフィールドにmath式を書きます。最終値を返すのが役目です。
source.stat[attack] - target.stat[defense]
対象の表記
source… 呼出し元(攻撃側など)target… 対象(被ダメ側など)
主要シンボル
| 種別 | 書式 | 例 |
|---|---|---|
| Stat(Base値) | source.base[id] | source.base[strength] |
| Stat(最終値) | source.stat[id] | source.stat[attack] |
| Attribute | source.attr[id] | source.attr[hp] |
| Local Variable | target.var[id] | target.var[hit-counter] |
Random系
random[min, max]:[min, max]の小数乱数dice[rolls, sides]:サイコロ振り(dice[2, 6]= 6面を2個振る)chance[p]:確率pで1、それ以外0
Arithmetic系
min[a, b]/max[a, b]round[v]/floor[v]/ceil[v]
Table系(Tableと連携)
table.level[value]:累積値からlevelを返すtable.value[level]:levelに達するための累積値table.increment[level]:次レベルまでの差分table.current[value]:現レベルで獲得済みの値table.next[value]:次レベルまでの残りtable.ratio[value]:現レベル内の進捗率(0〜1)
循環参照に注意
AのFormulaがBを参照、BのFormulaがAを参照、のような循環依存はチェックされず無限ループ化します。設計時に依存グラフを意識してください。
Tables(レベル曲線)
作成
Create > Game Creator > Stats > Table
概念
- Level:整数レベル
- Cumulative Value:そのlevelに達するまでの累計必要値(合計経験値など)
- Value:現レベル内で獲得済みの値
タイプ(Progression)
| タイプ | 概要 |
|---|---|
| Manual | レベルごとに手動で必要値を設定 |
| Constant | 全レベル同一値 |
| Linear | 必要値 = 定数 × level(一般的なRPG向け) |
| Geometric | 必要値 = level × 係数(短期で急伸する設計向き) |
Formulaとの連携
Formulaアセット側でTable参照フィールドを設定しておけば、table.* シンボルがそのTableを参照します。
Stat Modifiers(装備・バフ補正)
用途
装備・バフでStatを一時的に加算/倍率化する仕組みです。Traitsの Stat値を増減させる上乗せレイヤーとして機能します。
追加
Add Stat Modifier:Target/Stat/Type(Constant or Percentage)/Valueを指定。
削除
Remove Stat Modifier:同じStat/Type/Valueの組合せを持つModifierを1件削除。
計算順
Percentageを先に適用し、その後にConstantを加算します。順序が結果に影響するので注意してください。
Status Effects(状態異常)
作成
Create > Game Creator > Stats > Status Effect
フィールド
- ID:プロジェクト一意
- Type:Positive / Negative / Neutral。
Clear Status Effects Typeで一括解除するときの分類 - Max Stack:同じStatus Effectを何重まで重ねられるか
- Save:ロード後も残すか(残り時間も保存)
- Has Duration / Duration:制限時間。OFFなら手動解除まで継続
- On Start / On End / While Active:ライフサイクル毎のInstructionリスト
While Activeの使い所
- Poisonなら
While Active内で一定秒ごとにHPを減らす処理 - 発動/解除時にVFX/SFXをOn Start/On Endに仕込む
追加/削除
- Add Status Effect:対象(Traits)と種類を指定
- Remove Status Effect:対象と削除数、種別指定
- Clear Status Effects Type:Positive/Negative/Neutralで一括クリア
User Interface(UIコンポーネント)
Stat UI
- Target:Traitsを持つGameObject
- Stat:表示するStatアセット
- 任意フィールド:Name/Acronym/Value/Icon/Colorを Text/Imageにドラッグ
Attribute UI
- Stat UIと同じ基本構造
- Transitions(値変化アニメ):HPバーの「遅れて減るバー」など
- Stall Duration:値変化から遅延開始までの秒数
- Transition Duration:追従アニメ時間
Formula UI
任意の2キャラ間でFormulaを評価し、結果を表示します。
Status Effects UI
2コンポーネント構成:
- Status Effect List UI(親):対象のTraitsの全効果を集約。Typesで絞り込み。Prefabを指定すると各効果ごとにインスタンスを自動生成
- Status Effect UI(子プレハブ用):個別の効果アイコン/残時間等を表示
Visual Scripting リファレンス
Instructions(16)
Stats(11)
| 命令 | 機能 |
|---|---|
| Add Stat Modifier | StatにModifierを追加 |
| Remove Stat Modifier | 同値Modifierを削除 |
| Add Status Effect | Status Effectを付与 |
| Remove Status Effect | Status Effectを削除 |
| Clear Status Effects Type | タイプで一括削除 |
| Change Attribute | Attributeの現在値を変更 |
| Change Stat | StatのBase値を変更 |
| Set Attribute | Attributeアセットを変数へ保存 |
| Set Stat | Statアセットを変数へ保存 |
| Set Formula | Formulaアセットを変数へ保存 |
| Set Status Effect | Status Effectアセットを変数へ保存 |
Stats > UI(5)
| 命令 | 機能 |
|---|---|
| Change AttributeUI Attribute | Attribute UIの表示Attributeを変更 |
| Change AttributeUI Target | Attribute UIの対象Traitsを変更 |
| Change StatUI Stat | Stat UIの表示Statを変更 |
| Change StatUI Target | Stat UIの対象Traitsを変更 |
| Change Status Effects List UI Target | リストUIの対象Traitsを変更 |
Conditions(8)
| 条件 | 判定 |
|---|---|
| Check Formula | Formulaの結果を比較 |
| Compare Attribute | Attribute値を比較 |
| Compare Stat | Stat値を比較 |
| Has Stat Modifiers | 指定StatにModifierがあるか |
| Has Status Effect | 指定Status Effectを持つか |
| Is Traits of Class | TraitsのClassが一致するか |
| Traits Has Attribute | TraitsがAttributeを保有するか |
| Traits Has Stat | TraitsがStatを保有するか |
Events(3)
| イベント | 発火タイミング |
|---|---|
| On Attribute Change | Attribute値が変化したとき |
| On Stat Change | Stat値が変化したとき(Modifier含む) |
| On Status Effect Change | Status Effectが追加/削除されたとき |
Tipsと注意点
- ID命名規約を最初に決める:
hp/mp/str/dex/int/wis/luckのように統一。Formulaでタイポすると0扱いされて発見しにくいバグになります - 循環依存は自己責任:Statsは循環を警告しません
- Stat Modifierの順序:Percentageが先、Constantが後
- AttributeのMaxはStat参照:固定値でAttributeのMaxを決めると、レベルアップでMaxを伸ばせません。Max Statを挟むのが定石です
- Status EffectのMax Stack:既定1。重ね掛け前提の毒系を作るなら明示的に増やす
- Save機能:Status Effectは残り時間まで保存されます
- UIはTransitionsを使う:体力バーの「遅延バー」演出はAttribute UIのStall/Transition Durationだけで実装可能
- Formula内のrandomとchance:再現性が必要な処理(リプレイ等)では避ける
- Tableの選択指針:長編RPGはLinear、短編ARPG・MOBAはGeometric
実践的な使い方 ― やりたいこと別の構成ガイド
攻撃力−防御力のダメージ計算を作る
Formulaアセットに source.stat[attack] - target.stat[defense] と記述します。sourceとtargetは命令の呼び出し元と対象で自動的に決まります。
レベルアップで最大HPが伸びるようにする
Stat max-hp のFormulaでレベル連動させ(例:source.base[max-hp] * source.stat[level])、Attribute hp のMax ValueにStat max-hp を参照させます。
経験値テーブルでレベルを自動計算する
Tableアセットで進行タイプを選択し、Stat level のFormulaに table.level[source.stat[experience]] を記述してTableアセットを紐付けます。
装備による一時的なステータス上昇
装備時に Add Stat Modifier、解除時に Remove Stat Modifier を実行します。Inventoryモジュールと連携する場合はItemのOn Equip/On Unequipに設定します。
毒の状態異常(時間経過HPドレイン)
Status Effectアセットを作成し、Type=Negative、While Activeに Change Attribute(hp減少)を設定します。On Startに毒エフェクト生成、On Endにエフェクト除去を入れます。
バフ・デバフのタイプ別一括除去
Status Effect作成時にTypeを正しく分類し、Clear Status Effects Type(Type=Negative)で一括クリアします。
同じStat/Attributeを持つ複数キャラ種を作る
Classアセットを複製してStat Base ValueとFormulaだけ書き換え、各キャラクターのTraitsに該当Classを紐付けます。
ダメージ計算にランダム要素を加える
Formula例:(source.stat[attack] - target.stat[defense]) * random[0.8, 1.2] で±20%の揺らぎを付加できます。
HPバーや状態異常アイコンのHUDを作る
Attribute UIをAttributeごとに配置し、TransitionでStall Duration + Transition Durationを設定すれば「ダメージ後にじわじわ減るバー」が実装できます。Status Effect List UIを配置すればアイコンが自動整列します。
公式リンク
- Game Creator 2 公式ドキュメント
- Game Creator 2 — Unity Asset Store
- Stats 2 | Game Creator 2 — Unity Asset Store
まとめ
本記事では、Game Creator 2のStatsモジュールについて解説しました。如何だったでしょうか。
Statsモジュールは能力値の定義から計算式、経験値テーブル、装備補正、状態異常までRPG的な数値システムに必要な要素を一式備えています。
特にFormulaアセットによる宣言的なダメージ計算と、Stat Modifierによる装備補正の自動管理は、コアのみで手動実装する場合と比べて保守性が大幅に向上します。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:Game Creator 2 完全ガイド(10/16)



