このページの解説では、以下のファイルを使用します。あらかじめダウンロードし、CatSystem2 の scene フォルダ内にしておいてください。
スクリプトを実行するには、CatSystem2 の「シーンリスト」ダイアログウインドウを使用します。ダイアログ下部にある「シーンスクリプトをコンパイル」ボタンを押してコンパイルし、シーンリストからスクリプトと同名のシーンをダブルクリックすることで実行できますので、以下の解説と照らし合わせながら動作を確認して下さい。
マクロファイル | ¯o.txt |
Download
|
|
スクリプトファイル | 0213_02b.txt |
Download
|
|
※ダウンロードは、Downloadボタンを右クリックして、リンク先のファイルを保存して下さい。
※マクロファイルは、すでにあるファイルにそのまま上書きしてコピーしてください。
では、今回から少しずつ実際のスクリプトの解説をしていきたいと思います。
かといって、さすがに端から端まで全部を解説していったのでは、あまりに大変だしとても書ききれないので、所々要点をピックアップしていきながら解説していきたいと思います。
よくわからないのに解説されなかった箇所に関しては、マニュアルでコマンドの意味を調べながら、どうしてそうなるのか自分で考えてみてください。解説してもらって習うことよりも、そうやって自分で調べた方が上達への近道になります。だから頑張ってみてくださいね。
さて、ではそろそろいくつかピックアップしながら解説を進めていきます。
最初のうちはゆっくりと命令の解説くらいに留めて、テクニカルな内容はある程度慣れてきてからにしますので、のんびりとついてきてくださいね。
cg 1 bd01,2,0,0,9 draw
まずは上のスクリプトを見てください。
最初の行はcg命令になっています。この命令をマニュアルのリファレンスで確認すると、イメージロード(画像をファイルから読み込む)命令であることがわかります。
上記の例では、パラメータが2つ、[1]と[bd01,2,0,0,9]とがありますので、バンク[1]にファイル名[bd01,2,0,0,9]の画像データを読み込むという意味になります。
ここで、「バンク」とは読み込む場所を表しますが、cgのバンクは、0~5 までの6カ所があります。
このシーンでは、キャラクターが「すもも」一人だけしか出てこないので、バンクは何番でも問題ないのですが、あえて 1 を指定してある理由が若干あります。
通常、画面には立ちキャラが1人か2人、多いときでも大概はせいぜい3人くらいです。ということは、同時に表示される人数分のバンクが必要なので、0~2 の3つのバンクを使用すれば事足ります。
そして、このときバンクにはプライオリティというものがあり、バンクの数値が大きい方が画面の手前側に表示されます。
もしこのシーンのスクリプトを組んでいる途中で、もう一人別のキャラが登場してきたとしたら、そのキャラは、元々いるキャラの手前側に表示するかもしれませんし、奥側に表示するかもしれません。最初のキャラのバンクを 1 にしておけば、新しいキャラを手前側に表示したければ2人目のキャラをバンク 2 にすれば良いですし、奥側に表示したければバンク 0 にすれば良いことになります。
何も考えずに最初のキャラをバンク 0 にしてしまうと後で面倒なことになるかもしれないため、基本的には最初のキャラはバンク 1 辺りにしておくようにすると良いのです。数字が増えて煩雑になってもかまわないのであれば、バンク 2 にしておいて、手前にも奥にも最低2人置けるようにしても良いかと思います。
もちろん、スクリプトの途中でどのバンクにどのキャラを割り当てるのか変更(読み込み直し)しても問題ありません。
次に、画像のファイル名で[bd01,2,0,0,9]と指定していますが、これはどう見てもファイル名っぽくありませんよね? これは付属のStViewというツールで確認することが出来る、差分データ込みの画像の指定方法なのです。
説明するよりも実際に見てもらった方が早いと思います。StViewを実行してみてください。
起動すると、背景やキャラは状態によって異なるかもしれませんが、だいたい上のような画面が出てくると思います。
背景を変えたい場合には、青で囲ってある部分を操作して好きな背景を選択してください。上と同じ背景にしたいときは、bg51a を選択すればOKです。
もし違うキャラクターが表示されている場合は、「ベース」と書かれている部分で bd01 を選択してください。
そんなものはない、という場合は準備が出来てない可能性が高いですので、実践スクリプトの準備の箇所を読み直して、最初の準備を頑張ってみてください。
さて、ここまで問題なければさっそくキャラクターの表情を作ってみましょう。
上記の画像の赤で囲ってある部分を操作し、「服装」を 2 に、「目(顔)」を 9 に変更してみてください。そうすると、下のような画面になるはずです。
ちゃんと同じ状態になっているでしょうか?
なっているのであれば、赤で囲ってある部分に、bd01,2,0,0,9 と表示されているはずです。この部分がスクリプトで指定するファイル名に当たります。
この状態で赤い囲みの左側にある、「C」のボタンを押してみてください。押しても画面に変化はありませんが、クリップボードに bd01,2,0,0,9 という文字がコピーされます。そのままテキストエディタにクリップボードの中身をペーストすれば、このややこしいファイル名をすぐにスクリプトに入力することができます。複雑な差分がどんなにあったって、これでもう何も怖くありません。ガンガンいろんな差分を用意することが出来ますね。
もしクリップボードの中身をペースト(貼り付け)する方法がわからないという方は、とりあえずテキストエディタで貼り付けたい位置に移動した後、「Ctrl」キーを押しながら「V」キーを押してください。それでダメな場合はテキストエディタの「編集」メニューなどから「貼り付け」というコマンドを探して選択してください。そんなメニューはないという場合はテキストエディタのヘルプから「クリップボード」「貼り付け」などで検索するか、検索エンジンで同様に検索して調べてください。
さて、ここまででcg命令を使って画像を読み込むことが出来るようになりました。次は表示をしなくてはいけませんが、CatSystem2 では、この命令だけでは画面に表示してくれません。
この後に続く命令やメッセージによっては、瞬間的に表示されたり、すぐには表示されなかったりしますが、そんなでは困りますね。ちゃんと表示のさせ方を指定してあげましょう。
そんなときにはまず draw命令です。何も凝ったことをしないのであれば、とりあえず draw命令が基本だと覚えておきましょう。マニュアルで確認すると、draw命令は画面をクロスフェードで書き替える命令だとわかります。特別ゆっくりとクロスフェードさせたいわけでもなければ、パラメータもつけなくてOKです。無駄に毎回ゆっくりとフェードアウトさせても、遊んでくれるユーザーさんに鬱陶しがられるだけです、基本はただ単にパラメータもつけずに draw と覚えておけば心配いりませんね。
さあ、これで画面の基本的な書き換えはバッチリです!
立ちキャラでなく背景を変えたい場合は、cg命令の代わりに bg命令を使いましょう。別に cg命令で背景を表示したり、bg命令で立ちキャラを表示したりすることも出来ますが、普通にやれば表示位置がちょっとおかしくなると思います。eg命令と fg命令も同様です。
これらの各コマンドは座標の基準位置が違うので表示位置が変わりますが、それ以外はどの命令も全く同じものです。立ちキャラが同時に6人では足りない場合、cg命令以外を使って立ちキャラを表示したりするテクニカルなことも出来ますが、そういったことに関する詳しい説明はまた別の機会にすることにしましょう。
cg 1 bd01,2,0,0,9 draw pcm D0213_02_012 すもも 「あ、兄さん! ポケットに手を入れて歩くと危ないんですよ」
上のスクリプトを見てください。さっきのスクリプトの後ろに2行追加されただけですが、pcm命令は音声を再生する命令なのでここでは無視しましょう。
要は、メッセージの前にさっきの立ちキャラ切り替えが入っている状態ですね。この場合、キャラをクロスフェードで切り替えながらメッセージが表示されます。(メッセージが瞬間表示されてしまう場合はわかりづらいので、CS2の環境設定「メッセージ」で表示速度を少し遅くして、「既読メッセージは瞬間表示」のチェックボックスもOFFにしておいてください)
pcm D0213_02_013 すもも 「きゃ~っ!! 兄さん、不吉言葉禁止~~!」¥@ cg 1 scale 80% 80% cg 1 bd03,2,3,0,6 300 220 draw 10 wait cg 1 arc 40 90 450 20 0 ¥n
次に、上のスクリプトを見てください。メッセージの後に、なにやら ¥@ なるものがついていて、さらにその後ろにキャラの切り替え処理が書かれています。キャラの切り替え処理はちょっと複雑になっているのでここでは解説を控えておきます。
この¥@ が絡んでいる部分は、スクリプトのブロック化というもので、メッセージの途中に演出処理を挟みたい場合に使用します。この¥@ は、『ここはメッセージの終わりではない』ことを意味しています。上のスクリプトの場合、メッセージの終端は最後の行の、¥n の部分に当たります。
ちなみに、¥@ に繋がるのは必ずしも¥n である必要はなく、普通のメッセージでもOKです。
すもも 「きゃ~っ!! ¥@ cg 1 scale 80% 80% cg 1 bd03,2,3,0,6 300 220 draw 10 wait cg 1 arc 40 90 450 20 0 兄さん、不吉言葉禁止~~!」
もし上のように書きたければ、それでもOKです。
ただ、こう書いた場合は、「きゃ~っ!!」と表示されるのと同時に、続く演出処理を実行し、演出の後に「兄さん、不吉言葉禁止~~!」と表示されるので、そのタイミングの違いに注意してください。
さて、上の24行目からのスクリプトと、32行目からのスクリプトですが、どちらもメッセージ表示と同時に処理されるので、いまいち違いがわからない方もいるかと思います。
ですが、もしスクリプトを下のように書いたらどうなるでしょう?
cg 1 scale 80% 80% cg 1 bd03,2,3,0,6 300 220 draw 10 wait cg 1 arc 40 90 450 20 0 すもも 「きゃ~っ!! 兄さん、不吉言葉禁止~~!」
上の場合、演出処理を終えてから、正確に言うと wait命令が終わってから、5行目の cg arc 命令と同時にメッセージが表示されます。
実際に実行してみても処理が速すぎてわからない場合は、それぞれのスクリプトで、draw の待ち時間を長めにとって、例えば「draw 120」などと指定して差を確かめてみてください。
要するに、draw命令だけの単純なクロスフェードならメッセージ表示と同時に処理することは出来ても、いくつもの動きが組み合わさった演出をメッセージ表示と同時に行うためには、¥@ を使わないとスクリプトを書くことが出来ない場合があるのです。理解していただけたでしょうか?
ちなみに、もしメッセージ表示を演出と同時に行いたくない場合、つまり演出処理を完全に終了させてからメッセージ表示を開始したい場合は下のように書くことができます。
cg 1 bd01,2,0,0,9 draw wait すもも 「あ、兄さん! ポケットに手を入れて歩くと危ないんですよ」
これは、最初のスクリプトの draw命令のあとに、パラメータのつかない wait命令が入っただけですね。つまり、メッセージ文の直前に wait命令を置けば、演出処理を完了してからメッセージを表示することができるようになります。
こういった、メッセージ表示に対するスクリプト演出のタイミングは、ここで説明したような方法で使い分けることが出来ます。今後新しい命令を覚えてどんな演出を行う際でも、基本は一緒ですのでこれらの違いはちゃんと覚えておいてくださいね。
あ、ただし mc系のコマンドは wait命令で待つことが出来ないので、いずれそういった命令を使うようになった際には注意が必要です。でも今はまだそんな命令を使うこともないので大丈夫ですね。
……えーっと、まだスクリプトのホントに頭の方しか触れていないのですが、今回はここまでとさせていただきますね。他の命令の解説は、また別のシーンのスクリプトで行っていきたいと思います。
それではまた次回をお楽しみに~。