特別編1:簡易コマンドの解説

実は簡易コマンドと呼ばれる短くて動作の遅い、機能の限定された物が用意されています。
ココまでで皆さんが学んできたのは通常のコマンドです。
先に簡易コマンドで作り始めると後になってからが大変なんです。
前作のツールでもあったのですが、いつまでも簡易コマンドを使うせいで技術は上がっても速度が遅くなってしまうという事が良くありました。
それに画像表示の順序とかが分からなくなってしまうので、今頃説明をさせていただきます。

簡易コマンドは説明にある通常コマンドが全部入っているのではなく、スクリプトの内容をこちら側で代入してから通常のコマンドと同じ処理を使用しています。
改めて言いますが、簡易コマンドの実行は極めて遅いのです。
テストする時などに使ってください。

コマンド 通常コマンド 使用例
!www !color 0,0,0 !www
test
!ww !color 155,155,155 !ww
test
!w !color 255,255,255 !w
test
!r !color 255,155,155 !r
test
!g !color 155,255,155 !g
test
!b !color 155,155,255 !b
test
!y !color 255,255,155 !y
test
!t !pause 1 test
!t
test
!tt !pause 2 test
!tt
test
!ttt !pause 3 test
!ttt
test
!v $v0=0
$v1=0
$v2=0
 ・
 ・
 ・
$v47=0
$v48=0
$v49=0

!v
$v10+11
!p ;↓レイヤー番号は適当です
!picset23 test.jpg
!picon23
!picpos23 0,0
!pical23 256
!picud23 0
!piclr23 0
!picarea23 0,0,画像xサイズ,画像yサイズ
!piczoom23 画像xサイズ,画像yサイズ
!picsqzoom23 0,0画像xサイズ,0,画像xサイズ,画像yサイズ,0,画像yサイズ
!p23 test.jpg
*
!cls color 0,0,0
!box 0,0,640,480,256
!obj_end
!color ユーザー設定r値,ユーザー設定g値,ユーザー設定b値
!pos ユーザー設定x値,ユーザー設定y値,
test
!cls
test
!@ !menuon 0
!mc
*
!pset test.jpg
*
test
!@
test2
!fg !font MS ゴシック
!fsize 30
!fstyle 16
!ftrans 0
!fmode 0
!text 0
!linespace 0
!letterspace 0
!fg
test
!fm !font MS 明朝
!fsize 30
!fstyle 16
!ftrans 0
!fmode 0
!text 0
!linespace 0
!letterspace 0
!fm
test
!s ↓チャンネルは適当
!sndset17 test.mp3
!sndoff17
!sndvol17 100
!sndpos7 0
!sndsp17 100
!snd17 1
!s7 test.mp3



特別編2:セーブとロード

ついでにセーブとロードの最も簡単な物を説明したと思います。
中級編が終わってから戻って来て読むのも良いかも知れません。

サンプル
!load test
!picset1 s1.jpg
!picset3 c1.gif
!picon1
!picon3
*
これからセーブを行います
データはsave_dataフォルダ内です
この文章はセーブを消さない限り
一度しか表示されません
!save test
2度目以降はここから表示されます
!stop


簡単ですがこの方法は全部記録する為(バージョンによって順番が異なる場合があります)に最も無駄が多い物です。
他にも数種類のセーブ、ロードコマンドを用意していますので、研究してみてください。



特別編3:スクリプトの視認性を上げる

少しTABの仕様を解説したいと思います。
基本的にメモを残す場合は「;」を使用しますが、ラベルと関係のないもの(ジャンプ全般、条件判断全般など)にはコマンド以降にTABを入れる事でメモを追加する事ができます。

またスクリプトを組む際、コマンドやラベルの前にTABを入れて視認性を高める事ができます。
ただTABを除外してスクリプトのコマンドを認識させる処理が必要となりますので若干実行速度が落ちます。(塵も積もれば……)
まあ公開前にTABと「;」のメモを取り除けば済む事ですね。
TAB形式のメモの場合は有無に関わらず速度に変化はありません。



特別編4:マルチステートメント

マルチステートメントと呼ばれるコードの記述法があります。
簡単に言えば、複数のコマンドを1行に書く事です。

サンプル
!pos 20,40::!color 255,200,200::!fsize 40::マルチステートメントのサンプルです。::
最後は必ず半角のコロンを2つ::入れるようにしてください::
!stop


マルチステートメントの区切りは「::」(半角のコロン2つ)です。
面倒なのは最後にも「::」を入れなければならない事です。

ラベル等には使用しないでください。
使用可能条件はTABによるメモと同じです。

余りやりすぎると見辛くなりますので用途に応じてご利用ください。
ただ余分な処理を入れていますので通常に比べて若干速度が低下します。

サンプル
20万回の処理比較

$vv=1234
$v=0
通常記述
!repeat
!wait 0
!ifor $second=0
!ifor $second=30
処理開始(秒)
$second
!break
!endif
!loop
!repeat 10000
!color 255,$v,$v
!color $v,255,$v
!color $v,$v,255
!color 255,255,255
!color 255,255,255
$v+2
$v*1
$v\3
$v+$vv
$v-$vv
!color 255,$v,$v
!color $v,255,$v
!color $v,$v,255
!color 255,255,255
!color 255,255,255
$v+2
$v*1
$v\3
$v+$vv
$v-$vv
!loop
処理終了(秒)
$second

!color 255,255,255
マルチステートメント記述
$v=0
!repeat
!wait 0
!ifor $second=0
!ifor $second=30
処理開始(秒)
$second
!break
!endif
!loop
!repeat 10000
!color 255,$v,$v::!color $v,255,$v::!color $v,$v,255::!color 255,255,255::!color 255,255,255::$v+2::$v*1::$v\1::$v+$vv::$v-$vv::
!color 255,$v,$v::!color $v,255,$v::!color $v,$v,255::!color 255,255,255::!color 255,255,255::$v+2::$v*1::$v\1::$v+$vv::$v-$vv::
!loop
処理終了(秒)
$second

テスト終了
!stop


これは通常表記とマルチステートメントでの記述による速度比較です。
最初に通常の実行を行います。
開始時に0か30の開始した秒が表示され、実行後に終了時の秒が表示されます。

本来ならこの様な処理には「!pause」か「!wait」が必須なのですが、処理速度の差を出す為にこの様にしました。
マルチステートメントは使わない方が若干速いです。



特別編5:特殊な変数

幾つか特定の名前で設定できない変数があります。
これらはシステムが使用する変数で、変数名の設定を行わなくても使用する事ができます。
比較的良く使いますので覚えておいてください。
ヘルプの仕様ガイド、辞書ルーツの変数についてに詳細がリスト化されています。

サンプル
;$cntは!repeatの回数が代入される変数です
上のキャプションに注目
!repeat
!title $cnt
!pause 10
!loop


若干ですが通常の変数に比べて動作が速くなります。
代用できる部分は無駄に設定せずに代用しましょう。