「コマンドの解説」の編集履歴(バックアップ)一覧に戻る

コマンドの解説 - (2013/03/31 (日) 15:27:53) の編集履歴(バックアップ)



はじめに

スクリプトで用いる基本的なコマンドの解説。いい加減な部分もあるのであしからず。

一部のコマンドは特定の条件でのみ機能する。
コマンドの種類 説明
Interaction Command Persona gearのみで使われるコマンド Greeting, NewChat, Say, etc.
RPG Mode Command チーム1に1人のPC(@)がいる場合のコマンド CashPrize, PCRep, SkRoll, etc.

スクリプトでは対象のGearの識別にいろいろなID番号を使う。UIDとCIDは混同しやすいので注意。これらを使用するコマンドは異なる(TDとUTDなど)。
IDの種類 略称 説明
Unique ID UID マップに入るたびに個々のモデルに割り当てられるID
Character ID CID Personaに割り当てられるID
Faction ID FID Factionに割り当てられるID
Narrative ID NID SetKeyItemコマンドなどでアイテムに割り当てられるID
モデル = NPC, Item, Propなどの物理Gear

ユーザー定義のマクロコマンドを追加することも可能。
例) NPCの性別を返すマクロを追加する

	GameData\asvmacro.txtに以下の行を追加する。

	NPCGENDER <GrabNPC ? GNAtt 3 0> 


トリガー

ある条件を満たすと<>内に記述した処理を実行する。Gearによって使えるものが決まっている。同じトリガーを複数同時に使っても最初の1つだけが有効。

Story/Plot/Scene/Faction gearなどで用いるトリガー

Start 別のマップに入ったとき、そのマップが開始された直後に実行される。
Get[NID] アイテム[NID]を入手したときに実行される。
Key[NID] アイテム[NID]をTriggerコマンドで作動させたときに実行される。
TD[UID] ターゲット[UID]が破壊されたときに実行される。
UTD[CID] ターゲット[CID]が破壊されたときに実行される。
NU[Team Number] チーム[Team Number]の生存しているメンバーの数が変更されたときに実行される。NUは"Number of Units Changed"の略。マップを出る際やRetreatコマンドを実行した際にも実行される。なぜか一定の時刻でも実行される(1時間ごと)。部位破壊などで複数回実行されることがある?
5Minなど ゲームの時計で一定の時刻になるたびに実行される。
Init_Start I18N版で追加されたコマンド。プロットがロードされたときに実行される。
Restore_Start I18N版で追加されたコマンド。ゲームを再開したときに実行される。再開したときのダイアログメッセージなどに使う。

Persona gearで用いるトリガー

Greeting 対象のNPCと会話したときに実行される。
Result[Msg Number] AddChat [Msg Number]コマンドで表示される選択肢を選んだときに実行される。

モデルなどで用いるトリガー

Update マップが開始されたときにマップ上の各モデルに送られるトリガー。UpdatePropsコマンドで呼び出すことも可能。
Use 対象のモデルを使用したときに実行される。
Clue[Skill Number] スキル[Skill Number]を使用したときに実行される。

その他のトリガー

内部ジャンプ [Label] Else [Label]またはGoto [Label]でそのラベルにジャンプし、ジャンプ先の処理を実行する。ラベル名は.[名前]やGo[名前]の形が多いが、好きなものでかまわない。トリガーのほかにも敵のタイプやファイル名を指定するのに用いられる。


コマンド


計算用コマンド

V= [A] [B] V[A]に[B]を代入する。
V+ [A] [B] V[A]に[B]を加算する。
* [A] [B] [A]に[B]を乗算した結果を返す。
D[Die Size] 面数が[Die Size]のダイス。たとえばd6なら1-6のランダムな値を返す。

if文のコマンド

if= [A] [B] <else [Label]> [A]が[B]に等しければ
ifG [A] [B] <else [Label]> [A]が[B]より大きければ
if# [A] [B] <else [Label]> [A]が[B]に等しくなければ
ifYesNo [Desc Msg] [Yes Msg] [No Msg] <else [Label]> 警告画面を出し、二択を表示する。それぞれのメッセージの内容はMsgコマンドで記述する。
ifStoyrless <else [Label]> ソースのGearにリンクされたストーリーが無ければ
ifFaction [FID] <else [Label]> 派閥[FID]が存在していれば
ifPersona [CID] NPC [CID]が存在していれば

プロットに関するコマンド

GlobalStoryPattern [Scene Label] [Story Label] [Scene Label]に記述したタイプを持つマップに、[Story Label]で記述したファイル名に合致するストーリーのファイルを一括でロードする。
StartStory [Story Label] <else> ストーリーをロードする。ロードできなければelseの処理を行う。
StoryLine [Plot Label] <else> プロットをロードする。ロードできなければelseの処理を行う。
EndStory ストーリーを消去して子のプロットにクリーンアップの要求を渡す(1度だけ)。
AdvancePlot [n] プロットの処理をサブプロットのPlot [n]に切り替える。0を指定した場合はそのプロットが消去される。
Goto [Label] ラベル名[Label]の処理へジャンプする。
Compose [Trigger] [Parameter] [Command Line Identifier] KeyやGetなどIDを伴うトリガーに別名[Command Line Identifier]をつけて新しいトリガーを作成する。IDに変数を用いたい場合に使う。
例) Composeコマンドの使用例

	Element1が破壊されたときのトリガー(.E1died)を作成する

	Start <if= V1 0 Compose UTD E1 .E1died V= 1 1>
	.E1died <E1が破壊されたときの処理>

マップに関するコマンド

Exit [Scene ID] 現在のマップを脱出し、マップ[Scene ID]に入る。
Return 前のマップに戻る。
Retreat [Team Number] チーム[Team Number]をマップから取り除く。このときNUトリガーがセットされる。
Runaway [CID] キャラクター[CID]を検索してマップから取り除く。このときNUトリガーがセットされる。
SeekGate [Scene ID] マップに入ったときにマップ[Scene ID]への入り口を検索してPCをセットする。-1を指定すると直前のマップへの入り口(出口の階段など)になる。
SeekTerrain [Terrain Type] マップに入ったときに特定の地形を探してPCをセットする?

Dynamic Sceneに関するコマンド

NewD [Scale] スケール[Scale]のDynamic Sceneを自動生成する。脱出条件を記述する箇所がないので、撤退時に前のマップに戻る処理をプロットに書いておかないとフリーズする。
LoadD [Label] [Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。
Dynamic [Scale] [PV] [NU1 Label] [NU2 Label] スケール[Scale]のDynamic Sceneを自動生成する。合計PV = [PV]の敵メックが初期配置される。[NU Label]で指定したラベルにPC/敵チームが全滅したときの脱出条件などを記述する。
MDynamic [Scale] [PV] [MDesc Label] [NU1 Label] [NU2 Label] Dynamicのモンスター版。合計Size = [PV]の敵モンスターが初期配置される。[MDesc Label]で指定したラベルにモンスターのタイプを記述する。
Staged [Label] [PV] [Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。合計PV = [PV]の敵メックが初期配置される。
MStaged [Label] [PV] [MDesc Label] Stagedのモンスター版。[MDesc Label]で指定したラベルにモンスターのタイプを記述する。
SetMapType [RandamMap ID] Dynamic Sceneの基本地形となるランダムマップを指定する。
Encounter [Enemy%] [Ally%] [Desc Label] Dynamic SceneにグローバルNPC(某王女さまとか)を加えるコマンド。[Enemy%]と[Ally%]はそれぞれ敵対/友好NPCが参加する確率。[Desc Label]で指定したラベルに敵のNPCのタイプを記述する。

Factionに関するコマンド

FacXP= [FID] [Value] 派閥[FID]の経験値をセットする。
FacXP+ [FID] [Value] 派閥[FID]の経験値に加算する。
PCFac PCの派閥のFIDを返す。
PCFacXP= [Value] PCの派閥の経験値をセットする。
FXPNeeded [n] 派閥のレベル[n]に必要な経験値を返す。
FacXPNeeded PCが次の派閥のレベルアップに必要な経験値を返す(FXPNeeded PCFacLevelに等しい)
PCFacLevel PCの派閥レベルを返す。
PCFacLevel+ [Value] PCの派閥レベルに加算。
FacVar [FID] [n] 派閥[FID]の変数V[n]を参照する。

チームに関するコマンド

SetAlly [Team Number1] [Team Number2]... チームの友好関係をセットする。
SetEnemy [Team Number1] [Team Number2]... チームの敵対関係をセットする。
?M[Team Number] チーム[Team Number]のランダムなメックのUIDを返す。
?P[Team Number] チーム[Team Number]のランダムなパイロットのUIDを返す。
Tord [Team Number] [Order <Parameters>] チーム[Team Number]に命令を与える。命令の種類は下記を参照。

Tordコマンドで用いる命令とパラメータ
ASS [Target ID] 指定したターゲットを攻撃する(Assasinate)
GO [X] [Y] 指定した座標へ移動する(Goto Spot)
SD 敵を探して攻撃?(Seek & Destroy)
PASS 建物から出ない?(Passive)
FOL [Target ID] 指定したターゲットについていく(Follow)

モデルに関するコマンド

UpdateProps モデルに記述されたUpdateトリガーを呼び出す。
SetKeyItem [NID] アイテムなどに固有のNIDを割り当てる。プロットで生成したものについてはNID = E[n]で代用できるため不要。

お金や経験値などに関するコマンド

XPV [Value] PCの経験値に加算する。ダイアログに表示が出る。
CashPrize [Value] PCのお金に加算する。ダイアログに表示が出る。
Cash+ [Value] PCのお金に加算する。店での購入の処理に使われる([Value] < 0)。
MechaPrize [Mecha Label] [Mecha Label]で指定されたDesignファイルのメックをPCに与える。
Reputation [Reputation Number] [Value] PCの性格の数値に加算する。

会話に関するコマンド

Rumor <Message> そのGearにまつわる噂で使うメッセージを記述する。
Msg[Msg Number] <Message> PrintやSayコマンドなどで使うメッセージを記述する。
Prompt[Msg Number] <Message> AddChatコマンドで使うメッセージを記述する。
NewChat 会話画面をクリアする。最初のメッセージの表示、選択後のメッセージの更新に使う。
EndChat NewChatと同じだが、こちらは「雑談」と「離れる」がでない。
ForceChat [CID] NPC[CID]と強制的に会話する。
AddChat [Msg Number] Promptコマンドに記述した選択肢を会話画面に表示する。選んだ後の処理はResultトリガーに記述する。
Say [Msg Number] Msgコマンドに記述したメッセージを会話画面に表示する。
School [Skill Identifier] スキルを習得する会話を表示する。ラベル[Skill Identifier]にはスキルの番号のリストを記述する。
Shop [Wares Identifier] 買い物の会話を表示する。ラベル[Wares Identifier]には売りたいGearのGeneral Descriptive(G)のリストを記述する。

メッセージで用いる置換コマンド

コマンドの前後は半角スペースが必要。
\ELEMENT [ID] E[n]に対応した文字列を表示する。
\NARRATIVE [ID] N[n]に対応した文字列を表示する。
\PC PCの名前を表示する。
\PERSONA [CID] NPC [CID]の名前を表示する。
\RANK PCの階級を表示する。
\SCENE [Scene ID] Sceneの名前を表示する。
\VAL [Variable] 変数の値を表示する。

以下はI18N版で追加された置換コマンド。前後の半角スペースは不要。
%JF 一人称を表示する。
%JS 二人称を表示する。
%JG 語尾を表示する。

その他のコマンド

SkRoll [Skill Number] スキル[Skill Number]のスキルロールを行う。
Trigger [Trigger] [ID] KeyなどのIDを持つトリガー[Trigger]を呼び出す。
SetNPC [CID] Email [Message Number] NPC [CID]にEメールを送信させる。