Script Document

スクリプト

記述ルール

演算式、及び、関数は原則1行に1つづつ記述する
1行に複数の演算式(関数)を記述する場合はセミコロン(;)で区切る
演算式(関数)の途中で改行する場合は改行箇所に半角円記号(¥)を入れる
関数の( )は省略可能
デフォルト引数を持つ関数は引数の記述を省略できる

  1. : var = Func 1, 2, 3 // 関数の()は省略可能
  2. : var = Func( 1, Sum( 1, 2 ), 3) // 括弧を使うと引数に関数を設定できる
  3. : var = Func() // デフォルト引数を持つ関数は引数を省略できる
  4. : var = Func( , , 3 ) // 一部だけ引数を省略する場合はコンマのみを書く
  5. : x = 10; y = 20; z = 30 // 複数の命令を1行に記述する場合はセミコロンで区切る
  6. : long = 1 + 2 + 3 + 4 + \ // 命令の途中で改行する際は円記号を使う
  7. : 5 + 6 + 7 + 8 + 9

変数

スクリプト内で変数を使用する事が出来る(変数宣言は不要)
変数の型は自動的に設定される
変数の有効期間はスクリプトが終了するまでの間のみ
スクリプトが閉じられるとスクリプト内で使用した変数は全てクリアされる

変数型

変数型は自動で設定されるがシステム内部では区別して扱われる
変数型によって使用できない演算子がある
整数同士の割り算は小数点以下切り捨てになる点にも注意

説明
真偽値true, falsetrue 又は false を代入した変数は真偽値型となる。比較演算の結果も真偽値型となる
数値123, 14.5, 0xAB数値はシステム内部では全て double 型で保持する。16進数を使うときは先頭に 0x を付ける
文字列"abc", Nullダブルクォートで囲むと文字列型となる。Nullも文字列として扱う
UndefinedUndefined存在しない変数を使用した場合は Undefined となる。変数が存在するかを確認するときにのみ使用する
Void スクリプト内で使用することは無い。システム内部で引数未設定の状態を扱う時に使用されている

変数型

演算式に複数の変数型が混在している場合は以下の優先順位で変数型の変換が行われる

文字列 > 実数 > 整数 > 真偽値
例 ) 整数型+時数型 の解は整数型。 整数型 + 文字列型 の解は文字列型になる

文字列

文字列か加算記号(+)で繋ぐことで結合できる
文字列中の円記号(¥)はエスケープシーケンスと見なされる

  1. : a = "abc"
  2. : b = "def"
  3. : c = 123
  4. : var = a + b + c // var の値は"abcdef123"になる

<エスケープシーケンス>
\tタブ
\n改行文字
\\円記号
\"ダブルクォート

演算子

スクリプト内では以下の演算子が使用できる

演算子優先順真偽値数値文字列説明
+0××プラス符号
- ××マイナス符号
! ××真偽値反転
~ ××ビット反転
^1××累乗
*2××乗算
/ ××除算
% ××剰余残 (余り算)
+3×加算
- ××減算
<<4××左ビットシフト
>> ××右算術ビットシフト
>>> ××右論理ビットシフト
<5××小なり
<= ××以下
>= ××以上
> ××大なり
==6等価
!= 不等価
&7×ビット論理積
|8×ビット論理和
@9×ビットの排他的論理和
&&10××論理積
||11××論理和
=12代入

条件分岐

条件分岐は以下の構文で記述する
条件式を囲む丸括弧()は省略しても良い

  1. : if (条件式1)
  2. : // 条件式1が真のときの処理
  3. : elif (条件式2)
  4. : // 条件式1が偽で、条件式2が真のときの処理
  5. : else
  6. : // 条件式1、2共に偽のときの処理
  7. : endif

条件分岐はネストさせることが出来る

  1. : if 条件式1
  2. : if 条件式2
  3. : if 条件式3
  4. : // ~ 処理 ~
  5. : endif
  6. : endif
  7. : endif

1行に纏めて書くことも出来る

  1. : if 条件式 ~真のときの処理~ else ~偽のときの処理~ endif

スクリプトの終了と Exit 関数

スクリプトはファイルの終端に到達すると自動的に終了する
Exit 命令を使用するとその場で終了することが出来る
Exit 命令の引数(戻り値)は省略する事が出来きる
但し、スクリプトの呼び出し元の仕様により戻り値の指定が必須の場合もある

  1. : Exit // この行でスクリプトが終了する
  2.  
  3. : Exit 123 // 戻り値を指定するとスクリプトの呼び出し元に値を返すことが出来る
  4. : Exit( 123 ) // 丸括弧付きでも可

ジャンプ関数

Jump 関数を使うと任意の場所に実行位置をジャンプさせる事が出来る

  1. : Jump( "scripts/sample*LabelA" ) // scripts/sample スクリプトの LabelA にジャンプする
  2.  
  3. : Jump // 引数を省略した場合は現在のスクリプトファイルの先頭に移動する

ジャンプ先の指定方法

ジャンプ先の指定は [<アセットバンドル名>/<スクリプト名>] [*<ラベル>] の形の文字列で記述する

ラベル例説明
scripts/samplescripts/sample.txt スクリプトの先頭にジャンプする
*LablelA現在実行中のスクリプトファイル内のラベル LabelA にジャンプする
scripts/sample*LabelAscripts/sample.txt スクリプト内のラベル LabelA にジャンプする

サブルーチン

Call 関数と Return 関数を使うとサブルーチンを作る事が出来る
Call 関数は Jump 関数と違い呼び出し位置に処理が戻る
Return 関数は戻り値を設定でき、Call 関数で受け取る事ができる
サブルーチンのネストは8回まで可能 (必要に応じて変更可)

  1. // サブルーチンの呼び出し。12行目にジャンプし、サブルーチン処理後に戻ってくる
  2. : Call( "scripts/SubScript*Subroutine" )
  3.  
  4. // 戻り値を使って関数に似たものを作ることもできる
  5. // 以下の式では sum = 10 + 20 となる
  6. : sum = Call( "scripts/SubScript*GetX" ) + Call( "scripts/SubScript*GetY" )
  7. : Return
  8.  
  9. //----------------------
  10. // サブルーチン先
  11. //----------------------
  12. *Subroutine
  13. サブルーチンが呼ばれたよ
  14.  
  15. : Return // 呼び出し元に戻る
  16.  
  17. //----------------------
  18. *GetX
  19. : Return( 10 )
  20.  
  21. //----------------------
  22. *GetY
  23. : Return( 20 )
TOP