TRP_Skitマニュアル〜『その他/上級コマンド』
内容
- name(名前)コマンド
- mob(モブ)コマンド
───以下、上級者向け─── - evalコマンド
- マクロの登録方法
- マクロの使い方
- sequence(シーケンス)コマンド
- 複数のコマンドをマクロとして登録
- マクロ作成例:一度沈みこんでから高くジャンプ
- マクロ作成例:上から降ってきながら出現
- loop(ループ)コマンド
name(名前):一時的にキャラクターの表示名を変更
例)キャラ「シズ」の表示名を一時的に「???」に変更skit name shizu t ???
スキット シズ t ???
パラメータ
『skit name charaName wait dispName』
『スキット 名前 キャラ名 ウェイト 表示名*』
- charaName/キャラ名:対象のキャラクター名
- wait/ウェイト:ダミーのウェイトパラメータ
- dispName/表示名:一時的にメッセージウィンドウに表示させる名前
補足
end/終了コマンドで名前の変更は解除されます。
永続的に表示名を変えたい場合はスキットの開始をコモンイベントに登録して、スイッチなどの条件分岐でnameコマンドを実行させることをおすすめします。
また、入力キャラクターと(表示)キャラクター名が「【シズ】」であるキャラクターの表示名を一時的に「【???】」と変更した場合も、文章表示のコマンドには従来どおりに「【シズ】」と記入してください。自動的に「【???】」という一時的な表示名に変換されます。
mob(モブ):一時的に指定したモブの名前を登録
例)「ハロルド」をモブ名に一時的に登録skit mob ハロルド
スキット モブ ハロルド
パラメータ
『skit mob mobName』
『スキット モブ モブ名』
- mobName/モブ名:モブとして登録する名前
補足
モブ名に登録された名前のキャラが発言した際にも、立ち絵キャラが自動でアンフォーカスされるようになります。ただし、end(終了)コマンドで登録はリセットされます。
ゲームを通してモブ名を登録したい場合はTRP_SkitConfigの「<<<モブキャラの登録>>>」よりモブ名を登録できます。
↓以下、上級者向け
eval:スクリプトを実行
例)$gameScreen.startShake(5,9,10)を実行。skit eval $gameScreen.startShake(5,9,10);
パラメータ
『skit eval script』
- script:実行するスクリプト
補足
スクリプトを実行するコマンドです。スクリプト内容をよく理解した上で各自の責任で用いてください。使いやすそうなスクリプトを少しだけ紹介↓
画面のシェイク:$gameScreen.startShake(強さ,速さ,所要時間);
画面のフラッシュ:$gameScreen.startFlash([255,255,255,128],所要時間);
SEの再生:AudioManager.playSe({name:SE名,volume:ボリューム,pitch:ピッチ,pan:パン});
マクロの登録方法
TRP_SkitConfigの「<<マクロの登録>>」よりマクロを登録できます。(マクロの登録および、マクロの登録2〜4に違いはありませんので、整理用に使い分けてください)
マクロには「マクロコマンド名」と「マクロ内容」を設定する必要があります。
マクロの使い方
TRP_Skitプラグインにおけるマクロとは、コマンドのパラメータ値の組み合わせを名付けたもの
です。
例えば、通常jump(ジャンプ)コマンドは角度パラメータを180に設定することで、下に沈むように動作させることができます。
そこで、いちいち角度パラメータを指定せずに、下に沈む動作をnod(うなずくという意味)というコマンド名で使いたいと思うかもしれません。
こんなときにマクロ登録で下のように登録すると…
- 名前:nod
- マクロ:jump charaName f 40 def 180
プラグインコマンドでnodをコマンドとして使えるようになります!skit nod charaName t
※charNameは任意のキャラ名に置き換え
(文章表示の制御文字で\SM[nod]のように使用することもできます。)
マクロコマンドがどのように解釈されてるのかというと、マクロに登録したコマンドを使って、かつ設定したパラメータをデフォルト値として使う
ことができます。
skit nod charaName t
の例では、指定していないパラメータやdef,dを指定したパラメータはマクロで登録したパラメータを参照して補完され、下のようなコマンドとして実行されます。
skit jump shizu t 40 def 180
- メインのコマンドはマクロで登録したjump
- charaNameは実際のプラグインコマンドで指定したshizu
- ウェイトパラメータもマクロではf(false)で登録されてるけど、プラグインコマンドでt(true)で上書き
- 高さパラメータはマクロ登録された40
- 重力パラメータはマクロ登録されたdef
- 角度パラメータはマクロ登録された180
の値がそれぞれ使用されます。
ここからさらに、jumpコマンドのデフォルト値が適用されて、
skit jump shizu t 40 1.5 180
のように重力パラメータがコンフィグのjumpコマンドのデフォルト値に指定されたパラメータに置き換えられて実行されます。
マクロはパラメータの組み合わせにコマンド名を名付けたもの
さて、実はマクロを使うとには複数の動作を組み合わせて1つのマクロコマンドで実行することも可能です。
それには、sequenceコマンドを使う必要があります。
sequence(シーケンス):対象キャラ、位置を指定してコマンドを順に実行する
使用例は次の項を参照
パラメータ
『skit sequence charaName wait position macroName1 macroName2 …』
『スキット シーケンス キャラ名 ウェイト 位置 マクロ名1 マクロ名2 …』
- charaName/キャラ名:対象のキャラクター名
- wait/ウェイト:完了まで待機するか(真偽値<true(t)/false(f)>,デフォ値はfalse)
- position/位置:画面位置(0~10)
- macroName/マクロ名:マクロコマンド名を実行順に入力(シーケンスを使ったマクロは正しく動かないので注意)
補足
各マクロコマンド内で設定しているコマンドのウェイト値は、動作が完了してから次のマクロを実行するか、同時に次のマクロも実行するかの指定に使われます。
そして、sequenceコマンド自体のウェイト値は、全体の動作が終了するまで待機するか、待たずに次のイベントコマンドを実行するかの指定に使われます。
※ただし、マクロのウェイトをfalseにして同時(並列)に実行する場合は、全体の終了まで正しく待機しないこともありますが、仕様としてご了承ください。(不透明度の変化量0のopacityコマンドをdurationを指定して入れるなどして調整することは可能かもしれません。)
複数のコマンドをマクロとして登録
さて、上のsequenceコマンドを使うことで複数コマンドを1つのマクロコマンドで実行できるようになります。
マクロ作成例:一度沈みこんでから高くジャンプ
例として、一度沈み込んでから高くジャンプするマクロコマンド「popJump」を作ってみます。
まずは沈み込む動作から作成します。
- 名前:popJump1
- マクロ:jump charaName t 50 def 180
名前はpopJumpマクロの1つ目のパーツとして分かりやすいようにpopJump1と命名しました。
マクロ内容は先程作ったnodコマンドとほぼ同じですが、wait(ウェイト)の値がt(true)
に設定されてることに注意してください。
次にpopJump2を登録して、sequenceコマンドで順々に実行することになりますが、waitをf,falseにしてしまうとpopJump1の完了を待たずにpopJump2が実行されてしまい、沈み込むモーションがキャンセルされてしまいます。
続いて、上に高くジャンプするpopJump2モーションを作成します。マクロとの作成で下のように登録します。
- 名前:popJump2
- マクロ:jump charaName t 100
高さ100でジャンプするシンプルなマクロです。
さて、いよいよsequenceコマンドで2つのマクロを組み合わせます。
新たにマクロを作って以下のように登録してください。
- 名前:popJump
- マクロ:sequence charaName f def popJump1 popJump2
sequence charaName f def popJump1 popJump2
を細かく解説します。
1つ目のsequenceはマクロのメインコマンドとしてsequenceコマンドを利用することを表してます。
2つ目のcharaNameは実際にマクロコマンドを使用する際にキャラ名で上書きされるので、マクロを登録する段階ではダミーパラメータとなります。
3つ目はこのマクロのウェイトパラメータのデフォルト値をf,falseに指定しています。
4つ目は位置を指定するパラメータです。このpopJumpマクロでは位置を使うコマンドを含んで無いので、意味がないダミーパラメータとなるので適当にdefと書いてます。このダミーパラメータを入れ忘れやすいので注意しましょう!
5つ目以降は実行するマクロを順に書いています。
このマクロをプラグインコマンドで下のように実行すると…
skit popJump charaName t
(※charaNameは任意のキャラ名に置き換え)
一度沈みこんでから高くジャンプする動作となりました!
(charaNameの後のtはウェイトパラメータ)
マクロ作成例:上から降ってきながら出現
次は、出現系のコマンドとして「上から降ってきながら出現」するマクロコマンド「fallIn」を作ってみます。
プラグインコマンドで仮組み
複雑なマクロを作るときは、まずプラグインコマンドで動作を仮組みするとスムーズです。
まずはキャラクターを不透明度0の完全透明状態で出現させます。
(キャラクター名は例としてshizuとしています。)
skit show shizu t left 0
画面位置左に不透明度0で出現させるコマンドですね。
続いて、画面上部までキャラを移動させる必要がありますが、残念ながら現状そのようなコマンドはありません。
透明のままジャンプさせましょう。
skit jump shizu f 150 2.5
高さ150、重力加速度を2.5(デフォの1.5よりも強め)でジャンプさせています。
ウェイト値をf(false)に指定していることに注意してください。
ちょうど頂点あたりからopacityコマンドでフェードさせたいのですが、頂点にジャンプするまで待機する必要があります。
意味のないダミーコマンドで適当な時間待機させましょう。
skit opacity shizu t 0 10
不透明度0まで10フレームかけて変化させる内容ですが、もともと不透明度が0なのでそのまま10フレーム待機しています。(ウェイト値はtで次のコマンドまでウェイトします!)
続いて、本命のopacityコマンドでフェードインさせます。
skit opacity shizu t 255 10
10フレームかけて完全不透明状態(255)に変化させます。
実行してみると、ちゃんと上から降ってくるように……見えたでしょうか?(キャラが現れ始めるまでに10フレーム待たなければならないという不便さもありますが、許容範囲としましょう。)
最終的には下のようになります。
(実際には、ジャンプの高さや重力パラメータ、ダミーコマンドの時間などの微調整をしてパラメータを決めることになるでしょう。)
skit show shizu t left 0
skit jump shizu f 150 2.5
skit opacity shizu t 0 10
skit opacity shizu t 255 10
マクロ化
それぞれの動作パーツをマクロに登録します。
(ここでは「マクロ名:マクロ内容」と記述します)
- jumpIn1:show charaName t left 0
- jumpIn2:jump charaName f 150 2.5
- jumpIn3:opacity charaName t 0 10
- jumpIn4:opacity charaName t 255 10
- jumpIn:sequence charaName f left jumpIn1 jumpIn2 jumpIn3 jumpIn4
ポイントは、
- jumpIn2のウェイト値をfにして次のopacityコマンドをすぐさま実行させる
- sequenceコマンドの位置パラメータにデフォルト値としてleftを指定しているが、この値をあとで上書きして使える
という点です。
実際にjumpInマクロを使う際は、
skit jumpIn shizu t right
と位置を設定すると、ちゃんと画面右側に指定したキャラ(ここではshizu)が上から降って表示されるはずです!
(このコマンドはskit sequence shizu t right jumpIn1 jumpIn2 jumpIn3 jumpIn4
と翻訳して実行されます。)
ということで、マクロの登録が少し面倒ですが、複雑な動作をマクロコマンド1つで呼び出せるようになりました!
loop(ループ):対象キャラ、位置を指定してコマンドを順にループ実行
待機時のループモーションなどに使用できます。コマンドの使い方はシーケンスコマンドと同じです。ループの中止方法に注意して下さい(補足参照)
パラメータ
『skit loop charaName wait position macroName1 macroName2 …』
『スキット ループ キャラ名 ウェイト 位置 マクロ名1 マクロ名2 …』
- charaName/キャラ名:対象のキャラクター名
- wait/ウェイト:完了まで待機するか(真偽値<true(t)/false(f)>,デフォ値はfalse)
- position/位置:画面位置(0~10)
- macroName/マクロ名:マクロコマンド名を実行順に入力(シーケンスを使ったマクロは正しく動かないので注意)
補足)ループの止め方
使用例)skit loop shizu t clear
『skit loop charaName wait clear quitFlag』
『スキット ループ キャラ名 ウェイト クリアー 中断フラグ』
- charaName/キャラ名:対象のキャラクター名
- wait/ウェイト:quitFlagがfalseのときにwaitをtrueに指定すると、ループが1順終わるまで待機します。(デフォ値はtrue)
*quitFlag/中断フラグ:trueにするとループの終わりを待たずに即座に中断(非推奨。デフォ値はfalse)
ループを止めて直後に移動コマンドを使う場合はquitFlagをtrueで中断したり、waitをfalseにすると直後の移動コマンドが正しく動かない場合があるので、waitをtrue、quitFlagをfalseのデフォ値で使用してください。