もってけ材料!!

ドンドンパフパフ〜♪

てなわけで頼まれてもいない初級編がスタートしました。

パチパチパチパチ(数名)

今回からはゲームの華である画像やら使って行きますので、まずは材料の調達をと言いたいところですが、こちらで用意させて頂きました。
偉そうな態度で(ココ重要)持って行ってください。

これが材料です

DL(ダウンロード)されたら解凍して、中にある画像をArco.exeと同じフォルダにコピペ(コピー&ペースト)して下さい。全部できたら準備は完了です。



まずは画像を表示

待望の画像表示なのですが、これだけは最初に断らせて頂きます。
全部は説明しきれません(笑)
組み合わせて行くと仮想画面とか仮想画面とか仮想画面とか……
切りがないので、本当に基本的な事だけですよ?


サンプル
!picset1 s1.jpg
!picon1
*
こんな感じです。
!stop


先は長いのでのんびり行きましょう。



文字と共に画像が表示されましたか?

0行目(スクリプトの行数は必ず0からスタート)にある「!picset1 s1.jpg」では、まずs1.jpgの画像をレイヤー1に読み込んでスタンバイ状態でツール内部に読み込めというコマンドです。
目に見えない形で読み込み作業は完了していますが、このコマンドを使っただけでは何も画面に表示されません。

理屈では読み込む為のコマンドは理解できたのですが、その前にレイヤーって何でしょうか?
透明な下敷きに絵を描いたと想像してください。
それをノートの上に持っていくとノートに画像が重なった状態で見えます。
透明な下敷き=レイヤーです。
透明なレイヤーに絵を描いて重ねて行けばそれが1枚に見ます。
その1枚に見えるのが画面です。

次の1行目にあるのが「!picon1」です。これは画面への描画前に大切なことを設定しています。通常、起動時点ですべてのレイヤーはオフ設定(描画命令を使っても画面に反映されない設定)となっている為、読み込んだレイヤーの表示前には必ずオン設定にしてやる必要があります。これがそのコマンドです。逆に言えば読み込んだ画像をオフ設定のまま必要になるまで保持する事もできます。

最後に「*」コマンドを使って画面の再描画を行っています。その後に文字を表示させたため、画像の上に文字が乗っている様に見えるわけです。



もう一つ表示

画像は1枚以上表示できます。
初期設定では30枚までしか表示できませんが、「!picmax」コマンドで変更出来ます。
実質上の表示可能画像数には上限がありません。
ただしレイヤーの無駄遣いは、速度が落ちる元となりますので気を付けてください。
では画像をもう一枚表示してみましょう。

サンプル
!picset3 c1.gif
!picon3
!picset1 s1.jpg
!picon1
*
こんな感じです。
!stop


ではいつも通り実行です。



ゲームっぽくなってきましたか?
きっと気のせいです(笑)

ここで使用している「c1.gif」を普通にクリックして開いてみてください。
キャラクタの周りは真っ黒に塗りつぶされていますね?
初期設定で画像の色が黒(!colorコマンドでいう0,0,0の設定)の場所は表示しないと設定されているから、透過処理が行われるのです。
この透過色は「!piccolor」コマンドにて変更が可能です。
講座ではこのままの設定で続けていきます。


少しスクリプトの説明をさせてもらいます。
今回使用したのはレイヤー1番とレイヤー3番です。

順番的には3番の画像を最初に設定し、次に1番の画像を設定しています。
スクリプトの説明を考えると順番に1行ずつ実行するはずだから、3番は1番の下に表示されないとおかしい事になります。
本来ならキャラクタの画像は1番に隠れて見えない筈なのです。

しかし実際には1番の上に3番が表示されていますね?
実際に描画を行うのは「*」であって、その前に設定したコマンドでは無いのです。
つまり実行を行うコマンドの前に必要な要素が設定されていれば、順番は余り関係ないのです。
そしてレイヤーの規則として、大きい番号の物ほど手前に表示されるというものがあります。
1番より3番の番号の方が大きく、実際に描画をする「*」以前に設定が行われていたという理由から、上の画像の様な結果となったのです。

例えば下のサンプルの様にしても同じ結果が得られます。

サンプル
!picon3
!picon1
!picset1 s1.jpg
!picset3 c1.gif
!picpos3 160,0
*
こんな感じです。
!stop


ついでに画像の表示位置も変更しました。
コマンドは「!picpos」です。
この場合は3番の表示位置を設定しています。

いかがでしょうか?



待って待って待たされて

タイトルと実際の内容は全くと言って良いほど関係ありません

今回は一時停止の実行です。
辞書をバリバリ食べて?らっしゃる方には今更でしょうが、中級編に関係する内容なので我慢して下さい。

サンプル
!picset1 s1.jpg
!picset3 c1.gif
!picon1
!picon3
*
こんな感じです。
!pause 100
1秒待ってみました
!pause 100
!pause 100
2秒待ってみました
!stop


まずは見辛かったので画像設定の順番を変えました。

今回使われているのは「!pause」のコマンドです。
これは最高値が100までなので2秒待つ場合は2回設定しています。
ウエイト中は動作が停止しますので、PCに対する負担は無い物だと思っていただいて結構です。(細かい話をすれば無いわけ無いのですが……)
後ほどこの負担がない事が関連してきます。

まあ実行して頂くとわかりますが、文章が時間差をもって表示されます。
それだけのサンプルです。
実際には「!text」コマンドを使用した方がいいでしょうね。



選択肢とラベル氏

昔々あるところにあるお家の片隅に選択肢さんとラベル氏がおりました。
選択肢さんは、働き者。
朝から晩まで文句も言わずに働いたそうな。
ラベル氏は怠け者。
ごろごろ何もせずに暮らしておったとさ。
実はこの二人、住人にバレない様に間借していたのですが、ある日のこと……

つづく
って続くのか?!

てなわけで今回は怠け者のラベルのお話です。
ラベルというのは「#」で始まるもので、特に何もしません(笑)
コマンドは「!」で始まって、しっかり働くのですが、「#」で始まるラベルは本当に何もしません。

では何の役に立つのかと言えば、目印になるのです。
幾つかのコマンドは、この目印を頼りに命令された内容を行います。
その代表例が選択肢でしょう。


サンプル
!picset3 c1.gif
!picon3
!picset1 s1.jpg
!picon1
*
!text 10
!color 0,0,0
昔々あるところにあるお家の片隅に
選択肢さんとラベル氏がおりました。
!mc
*
選択肢さんは、働き者。
朝から晩まで文句も言わずに働いたそうな。
!mc
*
ラベル氏は怠け者。
ごろごろ何もせずに暮らしておったとさ。
!mc
*
実はこの二人住人にバレない様に
間借していたのですが
!pause 100
!text 50
ある日のこと……
!mc
*
!text 20
!sel 3
選択肢さんが引っ越しちゃいました,#選択肢
住人にバレました,#sel
住人と仲良くなりました,#sentakusi
#選択肢
*
伝え聞いた話では残されたラベル氏は
ゴミ屋敷の主となったということです。
!stop
#sel
追い出されました!
!stop
#sentakusi
ハッピーエンド
!stop


はい、長かったですね。
私が調子に乗って物語を作ったりしたので長くなっちゃいました(笑)

新しいコマンドは「!text」と「!sel」だけですね?
まず「!text」は非常に簡単で、文字の表示速度を変えるってだけです。
辞書をみれば今更説明するまでもないでしょうが、一応講座なので面倒でも書いておきます。

新しいコマンドではないですが「!mc」と「*」の組み合わせも目新しいかも知れません。
クリック待ちした後で、画面の画像を描画させています。
設定されている画像は、背景とキャラクタなので文字を表示したあとに描画すると、文字の上に画像が表示され、文字が消えたように見えます。

肝心の「!sel」コマンドは、p1で「下の3行が選択肢に関連する行」と設定しています。
その次の行から「表示する内容,押された場合の行き先の#ラベル」と設定しているわけです。
ラベル名は何でも良いです。

ラベル氏……少しは仕事しろよと思うのは私だけでしょうか?



初級編のまとめ

これまでのサンプル等で紹介したコマンドは以下の物です。

!stop
#
*
!color
!fsize
!pos
!ftype
!mc
!picset
!picon
picpos
pause
!text
!sel

全てわかりますか?
使い方が全く分からない方はもう一度講座を、何となくわかる人は辞書で調べてみてください。


「#」と「*」は正確には「!」で始まるコマンドでは無いのですが、無いと非常に困りますので長く付き合ってやって下さい。


課題

メッセージボックス(←画像は自前で用意して下さい)を利用した選択肢分岐の紙芝居を作ってみよう。(スクリプト30行以上)