材料!!

ドンドンパフパフ〜♪


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


今回からはゲームの華である画像やら使って行きますので
まずは材料の調達をと言いたいところですが
こちらで用意させて頂きました。


偉そうな態度で(←ココ重要)持って行ってください。


これが材料です


DL(ダウンロード)されたら解凍して
中にある画像をArco.exeと同じフォルダに
コピペ(コピー&ペースト)して下さい。


全部できたら準備は完了です。



まずは画像を表示

待望の画像表示なのですが、これだけは最初に断らせて頂きます。
全部は説明しません(笑)


組み合わせて行くと仮想画面とか仮想画面とか仮想画面とか……
切りがないので、本当に基本的な事だけですよ?


サンプル
!picset 1,s1.jpg
!picon 1
*
こんな感じです。
!stop



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





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


0行目(スクリプトの行数は必ず0からスタート)にある「!picset 1,s1.jpg」では
まずs1.jpgの画像をレイヤー1に読み込んでスタンバイ状態で
ツール内部のデータとしてキープというコマンドです。


目に見えない形で読み込み作業は完了していますが
このコマンドを使っただけでは何も画面に表示されません。


0行目で行った読み込む為のコマンドは理解できたと思いますが
その前にレイヤーって何でしょうか?

レイヤーとは?
透明な下敷きに絵を描いたと想像してください。
それを白紙の上に持っていくと下敷きに描いた絵が白紙と重なります。


原理としては下敷きもレイヤーも全く同じです。
レイヤーに読み込んだ画像が重ねられて1枚に見えるのが画面です。

次の1行目にあるのが「!picon 1」です。
これは画面への描画前に大切なことを設定しています。


通常、起動時点ですべてのレイヤーはオフ設定
(描画命令を使っても画面に反映されないキープ状態)
となっている為、読み込んだレイヤーの表示前には
必ずオン設定にしてやる必要があります。
これがそのコマンドです。


逆に言えば読み込んだ画像をオフ設定のまま必要になるまで
保持する事もできます。


最後に「*」コマンドを使って画面の再描画
(オン設定の画像レイヤーを画面に表示)
を行っています。


その後に文字を表示させたため
画像の上に文字が乗っている様に見えるわけです。


使用できる画像形式はjpg/jpeg、bmp、gif、ico、png、tga、psd(合成レイヤーのみ)です。
基本的に透過処理を行いたい画像はBMPかGIF、PNGを使用してください。



もう一つ画像を表示

画像は当然1枚以上表示できます。
初期設定では30枚までしか表示できませんが
「!picmax」コマンドで変更出来ます。


実際の表示可能画像数には上限がありません。
ただしレイヤーの無駄遣いは、速度が落ちる元となりますので
気を付けてください。


では画像をもう一枚表示してみましょう。


サンプル
!picset 2,c1.gif
!picon 2
!picset 1,s1.jpg
!picon 1
*
こんな感じです。
!stop


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





ゲームっぽくなってきましたか?
間違いなく気のせいですよ?
紙芝居にも劣ります!!


ここで使用している「c1.gif」を普通にクリックして開いてみてください。
キャラクタの周りは真っ黒に塗りつぶされていますね?


初期設定で画像の色が黒(!colorコマンドでいう0,0,0の設定)の場所は
表示しないと設定されているから、透過処理が行われるのです。


この透過色は「!piccolor」コマンドにて変更が可能です。
講座ではこのままの設定で続けていきます。


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


順番的には2番の画像を最初に設定し
次に1番の画像を設定しています。


スクリプトの特徴を考えると順番に1行ずつ実行するはずだから
2番は1番の絵の下に表示されないとおかしい事になります。
本来ならキャラクタの画像は隠れて見えない筈なのです。


しかし実際にはレイヤー1番の上にレイヤー2番が表示されていますね?
実際に描画(オン設定の画像を画面上に表示させる作業)を行うのは「*」であって
その前に設定したコマンドでは無いのです。


つまり実行を行うコマンドの前に必要な要素が設定されていれば
設定の順番は余り関係ないのです。


そしてレイヤーの規則として、大きい番号の物ほど
手前に表示されるというものがあります。


1番より2番の番号の方が大きく、実際に描画をする「*」以前に
設定が行われていたという理由から、上の画像の様な結果となったのです。


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


サンプル
!picon 2
!picon 1
!picset 1,s1.jpg
!picset 2,c1.gif
!picpos 2,160,0
*
こんな感じです。
!stop



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


いかがでしょうか?



待ってみる

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


今回は一時停止(一定時間、操作を受け付けない状態)の実行です。
辞書をしっかり読んでらっしゃる方には今更でしょうが、中級編に関係する内容なので我慢して下さい。


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



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


今回使われているのは「!pause」のコマンドです。
2秒待つ場合は200を設定します。


ウエイト中(一時停止中)は動作が停止しますので
PCに対する負担は無い物だと思っていただいて結構です。
(細かい話をすれば常識的に無いわけ無いのですが……)
後ほどこの負担がない事が関連してきます。


まあ実行して頂くとわかりますが
文章が時間差をもって表示されます。
それだけのサンプルです。


実際には「!text」コマンドを使用した方がいいでしょうね。



選択肢で選ばせる?

今回は選択肢を作って選ばせましょう。
選択肢とは幾つかの候補から一つの物を選ぶ事のできる機能です。

選択肢を使うには目印が必要です。

この目印にはラベルという物を使います。
ラベルは「#」で始まるものです。
では早速サンプルを実行してください。


サンプル
!picset 1, s1.jpg
!picon 1
!text 10
!pos 20,20
性別を教えて下さい。
!selpos 20,60
!sel 2
選択肢@:男性です。,#a
選択肢A:女性です。,#あ
#a
男性ですね。
!mc
*
終わり
!stop
#あ
女性ですね。
!mc
*
おわり
!stop



新しいコマンドは「!text」と「!sel」と「!selpos」ですね?
まず「!text」は非常に簡単で
文字の表示速度を変えるってだけです。


辞書をみれば今更説明するまでもないでしょうが
一応講座なので面倒でも書いておきます。


新しいコマンドではないですが「!mc」と「*」の
組み合わせも目新しいかも知れません。


クリック待ちした後で、画面の画像を描画させています。
設定されている画像は、背景とキャラクタなので
文字を表示したあとに描画すると
文字の上に画像2つが表示されて
文字が消えたように見えます。


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

「!selpos」命令は想像がつくかと思いますが、選択肢の表示開始位置を設定しています。



音を鳴らしてみる

音を鳴らすために2種類の命令が用意されています。
ひとつは動画、音の様々な形式に対応したマルチメディアを再生する!mlm系命令
もう一つはwavファイル専用の!wav系命令です。


!wav系命令は個別のボリューム設定が出来て細かい操作も可能なのですが
DirectX(8.0以降)を使用する為に使用には色々な条件があります。

DirectXがインストールされている事
その他のDirectXを使用するプログラムが作動していない事
十分なメモリとCPUの性能

以上の条件を確実にクリアしない限り、競合等の問題が発生する事もあります。


その点!mlm系命令ではそれらの面倒な条件を一切気にせずに
自由に使う事が出来ます。


メインは!mlm系命令、必要に応じて!wav命令を使用すれば便利でしょう。

まずは音を鳴らしてみましょう。


サンプル
!mlmset 1,12.mid
!mlm 1
!stop



仕様は画像表示に似ています。
まずは「!mlmset」命令で使用するデータを読み込みます。
次の行で「!mlm」命令を使用して再生します。


サンプルではチャンネル1を使用していますが
!mlm系命令のチャンネルは0-63(64個)まで使用できます。
(!wav系命令のチャンネルも64個あるので合計で128チャンネル使用可)


言い方を変えれば!mlm系命令だけで64音同時再生もできます。


次はリピート再生をさせましょう。


サンプル
!mlmset 1,12.mid,1
!mlm 1
!stop



赤く表示されている部分が変更箇所です。
0に設定すると1度だけの再生となります。



更に見た目をグレードアップ

画像、音楽、クリックの制御は大丈夫ですね?
次はトランジションを使ってみましょう。

トランジションとは画像と画像の移り変わりの時に
使用するエフェクト(効果)のことです。
これを使用するだけで完成度が高く見える事があります。

基本的にトランジションは2種類あります。
内蔵型とルール画像使用型(ユニバーサルトランジション)です。
なんの事か分からないでしょうから、実際に使ってみましょう。

まずは内蔵型トランジションです。

サンプル
!trans 3,5,1
!picset 1,s1.jpg
!picon 1
*
!picon 2
!picset 2,c1.gif
*
!stop


「!trans」に設定されている3は3番目のトランジションを使用。
次の5が5ドットずつ効果を適用。
最後の1は5ドットずつ効果を適用する時に0.01秒ウエイトをかけて速度を調整。
という意味です。

一度設定したら再び設定を変更しない限り「!trans」命令は持続します。
当然何種類もあるので色々と試してください。
設定を元に戻すには0番目のトランジションを指定してください。


もう一つの方法も説明します。
ルール画像を使ったトランジションは実質的には種類は無限です。
皆さんのアイディア次第だと思ってください。

解凍したフォルダの中にrule_picというフォルダがあるはずです。
その中に入っている画像を規則にして、トランジションを行います。
ルール画像の色の順番でトランジションが適用されます。

ではArco.exeと同じ場所に好きな画像をコピー&ペーストしてください。

サンプル
!utrans 1,1-1.jpg,2,10
!picset 1,s1.jpg
!picon 1
*
!picon 2
!picset 2,c1.gif
*
!stop


p1でユニバーサルトランジション設定をon
p2でルール画像設定
p3でウエイト指定
p4で同時に行われる透過率を設定しています。

ルール画像のサイズは自動的に画面サイズに合わすので
大きさが違っても心おきなく使えます。

正直、内蔵トランジションよりこちらの方が自由度も高く
使い勝手が良いかと思います。
ルール画像はある程度、準備されていますが
自由に変更、追加をご自分で行ってください。

ちなみにルール画像の形式はPNGでもJPGでもGIFでも
Arcoが対応している画像形式であれば作動します。



初級編のまとめ

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


!stop
#
*
!color
!fsize
!pos
!fstyle
!mc
!picset
!picon
!picpos
!pause
!text
!sel
!mlmset
!mlm
!mastervol
!trans
!utrans


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


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