過去記事 > タグ: その他

複数の*.anファイルを使う

※この記事はAns利用の場合に対応しています。ブラウザ実行時はもうひと手間必要です。

一つの*.anファイルに全てを書き込めればそれはそれでいいのですが、量が増えてきた場合はいくつかに分けた方がよかったりもします。

新しく*.anファイルを作るだけなら簡単です。
テキストエディタでスクリプトを書き込んで、文字コードUTF-8、改行コードLFで好きな名前.anとして保存するだけです。
ただし、同じ名前は使えません。試しに、main.anをコピーしてsozaiフォルダに入れて実行してみてください。同じ名前、同じ拡張子のファイルがあると実行されません。

続きを読む→

ブラウザ実行時の素材追加

基本的には、Ans利用時と同じです。
が、新しい素材を増やす、スクリプトファイルを増やす、config.anprjファイルで使用できるフォルダを増やす、ということだけしても増やした素材等を使用することができません。

そこで、もうひと手間加えます。
まずは、「電子演劇部 / 手軽にpath.txtを生成するソフトMkPath」より、MkPathをダウンロード&インストールしておいてください。このソフトはAIRアプリですので、どうしてもAdobeAIRをインストールしたくない方は後述する方法で。

続きを読む→

自作プラグインを作ってみる

自作プラグインを作って機能を追加します。
とは言っても、そこはもうその人のアイデア次第ですので、今回は例として三角関数の値を取得するプラグインを作ってみようと思います。
[let_cos name=rei angle=45]でreiにcos45°の値が、
[let_sin name=rei angle=30]でreiにsin30°の値が、
[let_tan name=rei angle=180]でreiにtan180°の値が入るようなプラグインにしたいと思います。

続きを読む→

global=trueとfalseの違い 基礎

[button][link][event]で指定できる属性global。これがtrueの時とfalse(初期値)の時の違いを軽く。

一番の違いは有効期限です。
trueにしていると削除するまで有効ですが、falseでは他のイベントが発生した時点で無効になります。

例えば、

  1. [event key=right global=true label=*right]
  2. [event key=rightclick label=*right]
  3. [p]

であれば、[p]で待っている時点では、右クリックも→(矢印キーの右)も有効です。
[p]待ちのクリックをした時点で、右クリックはglobal=falseの為、削除され無効になります。ですが、→はglobal=trueですので、有効のままです。
これは、[p]待ちの所で、右クリックや→で*rightに飛んだ場合でも同様です。

ですので、その場限りの選択肢などはglobal=falseを利用しますが、右クリックでメニューを呼び出したい場合や、メニュー系のボタンを用意する場合はglobal=trueにしておきます。

 
もう少し違いがありまして、global=falseの場合は、イベントが登録されている時に[call]された場合は、[return]で戻ってきた時にイベントが復活します。
これは、選択肢を表示中にセーブ画面を呼び出して戻ってきたら、選択肢の有効期限が切れていて進めなくなる、といった事態を防ぐ為の仕様です。
ただし、global=trueのものを[call]先で削除や変更した場合は、[return]で戻ってきても復活しません。

  1. [event key=right global=true label=*label call=true]
  2. [event key=rightclick label=*label call=true]
  3. [s]
  4. *label
  5. [event key=right global=true del=true]
  6. [p]
  7. [return]

最初に3行目にたどり着いた時点では、右クリックも→も有効です。
ここで、右クリックをして*labelに飛んだ時点でglobal=falseの右クリックは削除されます。
6行目で→のイベントを削除していますので、7行目では右クリックも→も効きません。
クリックして、8行目の[return]で3行目に戻ると、global=falseの右クリックは復活します。
ですが、→は削除されたままです。
右クリックしたら*labelに移動するけれども、→を押下しても反応無しという状態です。

call=trueで呼び出したメニュー画面等ではglobal=falseの分は何ら気にすることなく作業を行えて、戻ってきた時にはちゃんと復活するから気にしなくても大丈夫と言うことですね。
むしろ、呼び出しを考慮してglobal=trueで登録して、呼び出し先で消去して、戻る前に復活させて、なんて考えていたら大変です。何を復活させるのか、消去するのかも呼び出し時毎に変わってくるわけですし。

 
ただし、あくまでこれは[button][link]を表示したレイヤが消去されていなくて、表示したレイヤのイベントが有効な場合の話です。
[call]先でレイヤを削除した分までは復活しませんし、表示しているレイヤのイベントが無効であるならば復活したところで無効ですから。

global=trueとfalseの違い 発展

発展と言うよりは、優先順位のお話です。

  1. [event key=rightclick global=true label=*global]
  2. [event key=rightclick global=false label=*1time]

このように、両方のイベント予約がある場合に右クリックをしたらどうなるのか、と。

global=truefalseがある場合、global=falseが優先されます。
なので、この場合は、*1timeの方へ飛んで、飛んだ先ではglobal=falseは削除されていますので、そこで右クリックをすると*globalへ移動する、と。

通常時の右クリックは右クリックメニューを表示したいけれど、履歴表示時は右クリックしたら本編へ戻りたい、というような場合に、global=trueで右クリックメニューを表示するようにして、履歴画面へ行った時にglobal=falseで戻る用の機能を付ける、という事が出来ます。

 
次に、ボタンのクリックと[event]で予約されたクリックの優先順位を。
基本的には、ボタンよりもクリックが優先されます。
ただ、ボタンを優先するようにする方法がありまして、event_at_down=true[button]タグに明記します。
こうすることで、ボタンの方が優先されるようになります。
常時表示するメニュー用ボタンを用意する場合には、ボタンを優先させることが必要になります。

 
ついでに、[waitclick][p][l]というクリックを待つタグのことを。
[p][l][waitclick]に画像表示ですとか、オートの時の挙動ですとかが追加されているだけですので。
これらのクリック待ちは、AIRNovelの方でclick、↓、downwheel、enter、spaceに対して、global=false、移動先はタグの次というイベントを登録し、[s]待ちを勝手にしてくれています。
そんなに気にする必要はないのですが、そういう挙動になりますよというだけ。

 
どうすればどう返ってくるのかをきちんと掴んで、上手くスクリプトを書いてください。

1/1 [1]