シーンスクリプトの応用
ここでは、今までのカテゴリーで説明できなかったコマンドを含めた、総合的な応用スクリプトを説明します。
モーションの合成動作
「move」や「arc」などのモーション系の命令は、「wait」などを挟まない限り同時に実行されます。
その場合、それぞれの命令が合成された動きとなります。例えば、
pl 1 pos 200 200 cg 1 BQ01,1,1 wait pl 1 move 80 600 200 pl 1 arc 80 0 180 0 100
という命令を実行した場合、「move」と「arc」が合成されて、放物線を描くような動きをします。
ただし、「draw」や「wipe」などの描画とモーションを同時に実行すると、表示がおかしくなってしまうので、
cg 1 ba01,1,1,1,1,1 rdraw wait pl 1 amove3 60 600 300
のように、「wait」を入れて処理を待ってから動かすようにしてください。
その他の応用動作
1.m2系による非同期動作
ここまでで説明した動作はクリック等で次のメッセージを表示させてしまうと、モーションがスキップされてしまいます。
クリック等に関係なく、動作を継続させたい場合はm2系の命令文を使ってください。
pl 1 pos 100 200 cg 1 BQ01,1,1 wait pl 1 m2move 150 700 200
150フレームが経過するまで、クリックしても画像「BQ01,1,1」の動作は止まりません。
これによって、クリックと非同期でモーションを動作させることができます。
m2系のモーションも他のモーションと組み合わせて使うことができます。
メッセージや他のモーションコマンドと組み合わせると、通常のコマンドでは表現できなかった動きをさせることもできます。
例えば次の命令ではメッセージをクリックすると同時に、その位置から「move」と「fade」の動きが加わります。
pl 1 pos 100 200 cg 1 BQ01,1,1 wait pl 1 m2move 150 @+1200 @ クリックすると飛び立ちます。 pl 1 move 80 @ @-200 pl 1 fade 80 255 0
この時、クリックのタイミングによっては想定外の動きが出てしまうことがあるので注意してください。
→非同期動作:モーション系コマンドについて「特殊モーション」参照
2.mc系による永続動作
同じ動作を永続的に繰り返す場合、mc系の命令を使います。
cg 1 mcarc 30 90 450 30 0 0
継続モーションをストップさせるには「stop」命令を使ってください。
cg 1 stop
→継続動作:モーション系コマンドについて「特殊モーション」参照
3.delay
タイミングのずれた動作をさせたい場合など、「wait」でなく「delay」を使う方法もあります。
「delay」を使うと、クリックに影響されることなく動作を遅らせることができます。
cg 1 pos -100 200
cg 1 BQ01,1,1
wait
cg 1 m2move 120 @+1000 @
クリックしてください
cg 1 delay 30
cg 1 m2move 60 @ @-200
cg 1 fade 60 255 0
//cg 1が画面内にあるうちにクリックすれば、30フレーム後に飛び立ちます
「delay」の効果は、再度「delay」を指定するか、対象バンクの初期化が行われるまで効果が継続されます。
cg 1 delay
パーティクル
1.パーティクルの起動
パーティクルスクリプトに従って画像を動かします。
パーティクルスクリプトはgame¥ptcl内に格納されています。
[script]には、そのファイル名を入れてください。
またパーティクルスクリプトで動かしたい画像は、game¥imageに格納してください。
パーティクルスクリプトに渡すパラメータについては、各パーティクルスクリプト内に記述されています。
画像「fg_snow」をパーティクルスクリプト「snow.wss」で降らせます。
particle 0 snow fg_snow 100 5000 -2500 500 5 10 1 5 20 40 5 2 300 300
256×256以上の大きさの画像を使うことはできません。
また「BQ01,1,1」の様に、差分形式で画像を使うこともできません。
2.パーティクルの停止
パーティクルを停止するには「stop」命令を使用してください。
particle 0 stop
特殊命令文
1.keyskip
モーション中、キー入力による演出スキップをON/OFFする命令です。
keyskip off wait 1 pl 1 pos 100 200 cg 1 BQ01,1,1 wait pl 1 move 150 @+1200 @ wait 50 pl 1 move 100 @ @-200 pl 1 fade 100 255 0 keyskip on wait 1
2.auto
強制オートモードへの移行、解除を行います。
auto on 強制オートモードに移行しました。 オートモードが解除されるまで、キー入力を受け付けなくなります。 auto off 強制オートモードを解除しました。
3.str
文字列変数に任意の文字列を設定します。
例えば以下の指定を行うと、以降「$str1」を「昨日」という文字列として扱うことができます。
str 1 昨日 wait 男A 「$str1話したじゃないか!」 男B 「$str1? 何か言ってたっけ?」