その他あれこれ |
それではぁ、システム関係のその他あれこれをまとめておきますねー。
■ファイルの置き場所について
システム本体のファイル「DMas.exe」を実行する際に、なにも指示を与えない(DMas.exeを単にダブルクリック)で起動した場合、「DMas.exe」を置いたフォルダと同じフォルダに次のファイルがなければならないンです。dm.map (もしくはdm_map.txt)このスクリプトファイルやクリッカブルマップファイルがある場所を、基本フォルダって呼んでます。この基本フォルダを「DMas.exe」を置いたフォルダと違うフォルダにしたい場合は、「DMas.exe」を起動するう際に指示を与えてやるンです。
dm.srt (もしくはdm_srt.txt)
dm.ini (あっても無くてもいいです)
DMas.exe mascot2こうすれば、基本フォルダが「DMas.exe」を置いたフォルダ以降の「mascot2」というフォルダになります。
ででで、「指示を与えるってどうやってぇ!?」という感じですが、Windowsのスタートメニューの「ファイル名を指定して実行」なんかで「DMas.exe mascot2」みたいに指定したり、ショートカットでも指定できたりしますー。
これは、1つのDMas.exeで多数のマスコットを実行する時などに使えると思います。
その他の画像や音声などのデータファイルは好きなフォルダに置く事が出来ます。ただし、システム本体と同じフォルダに置かなかった場合はぁ、スクリプトでのファイル指定にそのフォルダ名も書く必要がありますー。
基本フォルダを基準にして指定するンですがー、まぁいわゆる相対パス指定ってやつですー。
例えば、
DMas.exe上のようにデータファイルをDataフォルダに置いた構成の場合に「Image02.gdt」を指定する場合は、Data\Image02.gdtという感じで指定しますー。
dm.map
dm.srt
dm.ini
[Data]
+---Image01.gdt
|
+---Image02.gdt
|
+---Ohayou01.wav
ちなみにぃ、システムを置いたフォルダより前のフォルダを指定する場合は、フォルダ名を指定しないで「..\」を使います。これで前のフォルダを指定した事と同じになるンです。まぁ、配布したりする場合はこんな指定はしないほうがいいです(^^;)。どうしてもって時に使ってくださいねー。
■ランダムジャンプについて
えと、リファレンスマニュアルを見て頂くと見つかると思うンですがぁ、ランダムジャンプって命令群があるンですね。 まずこれが何なのかというとー、今スクリプト内で実行している場所から適当なラベルに実行を移す(ジャンプする)命令なンです。適当なラベルといっても、あらかじめ適当に選ばれるラベルを登録しておく必要があります。で、その登録されたラベル群の中から適当にラベルを選んで、そのラベルに実行を移すといった事が出来るンですねー。
実際には「RJP」命令でジャンプするわけですが、このときに適当に選ばれるラベルが登録されたランダムラベルグループを指定してあげます。このランダムラベルグループは「RJS」命令で登録します。同じグループに適当に選ばれるラベルいくつか登録してから、「RJP」命令でジャンプするといった感じです。
この命令で出来る事・・例えばぁ、同じ場所をクリックしているんだけど、いろんなアクションを返してくれるような動作、なんてのが考えられますねー。
ちなみに、ランダムラベルグループに登録するラベルは1つだけでも構いません。違った使い方もできそうですねー。
■コールついて
これもリファレンス見て頂いてると出てきますがぁ、CLLとRCLというコール命令があります。
コール命令は前述のジャンプ命令とは違って、コール(呼び出)したあと、再び処理が戻ってきます。ジャンプ命令は戻ってきません。
コールすると指定のラベルに処理を移し、その移した先にあるAE命令で呼び出し元に戻るンです。ただ、コールした先にまたコール命令があった場合気を付けなければなりません。この場合、システムでは8回までコールが重なっても良いという事になってましてぇ、それを越えるとエラーになっちゃいます。これは、スクリプトの無限ループを回避する為の対策なのでご勘弁ください。あ、そうそう、コールで指定したラベルが、今実行しているラベルと同じ場合だと、必ず無限ループに陥ってしまうので(^^;)、即エラーを出して次の命令に移りますので、ご注意くださいね。
■データの登録と削除
「IDP」命令をはじめ、各ジャンルの命令群には登録命令と削除命令があるものがあります。登録した後使わなくなったら削除するが基本なンですがぁ、これはメモリの消費を抑えるためなンですね。でも、登録する際は登録作業やデータをハードディスクなどから読み込む作業を行うため時間がかかっちゃうって事も事実なンですぅ。まぁ、実際のところ時間がかかっちゃうって言っても今の標準スペックのマシンなら気になりませんがぁ(^^;)。ま、そんなこんなで登録して使い終わったら削除するかどうかは場合によります。大きなデータサイズの画像などを大量に登録しちゃうとそれなりにメモリを消費しますからー、こういう場合は削除するとか(^^;)。
あ、そうそう、システム終了時には、登録されていたデータなどは全て自動的に削除されちゃいますので安心してくださいね(^^)。
■クリッカブルマップの範囲の重複
クリッカブルマップは、ファイルの先頭もしくは新しく登録した順にクリックされた範囲の評価が行われるンです。ですのでぇ、クリックの範囲が重なっているものがあって、その重なった部分がクリックされた場合、最初に一致したものが処理され、後のものはチェックされません。応用するとこれも一つのテクニックとして使える日がくるかもしれませんねー(笑)。
■AE命令を書かないと...
「AE」命令は実行終了の役目をしますが、実は一つのラベルに必ず必要ってわけでもないンです(^^)。例えば...
ラベル1:
(命令1)
ラベル2:
(命令2)
>AE;
のように、ラベル1にAE命令が無い場合。
ラベル1を実行した場合に、ラベル1にはAE命令がありませんのでぇ、(命令1)を実行した後続けて(命令2)を実行し、ラベル2のAE命令で実行を終了します。複数のラベルで命令を共有したい場合に活用してくださいねー。
■パラメータの文字数制限
命令には、名前など文字列をパラメータに指定するものがありますよねー。この文字列には文字数の制限があって、リファレンスに特に指示されていないものについては半角4095文字までとなっております。中には、識別名は31文字までとかラベルは127文字までとかありますンでー、注意してリファレンスを見てくださいねー。まぁ、あまりこれを越えるパラメータを指定することはないと思いますがぁ、見つかりにくいバグになっちゃいますのであまり長い名前などは付けないようにしましょう(^^)。
■ # はコメントです
スクリプトファイルやクリッカブルマップファイル内でコメントを書いておきたい事があると思います。システムは「#」から始まる文字列は無効文字列とみなしますので、コメントとして利用してください。
ただし、コメントはラベルが書いてある行と同じ行には書いてはいけないことになってますンでぇ、気を付けてくださいね。
■システムは複数起動できます
システムは、メモリやマシンスペックが許す限りいくつでも起動する事が出来ます。ですのでー、いろんな方が作ったマスコットを混在して起動させておくことも可能ですのでぇ、ご安心くださいー(^^)。