フワフワソ・ラウンジ(NEW!)

ラノベとテクノを愛するふわふわがノベルゲームを作っています。あと日常のことなども

airnovel久しぶりに触る日記5

個人的覚え書きです。

 

・時間制限の作り方

[event key=enter_frame label=*timebar frame=500 call=true global=true]

5秒ごとに*timebarというラベルに飛ぶ。

このとき、frame=(airnovelのフレームレート基準の数字。初期値100/秒なので500にすると5秒)

また、global=true (グローバルイベント。フラグがセーブされるイベント)にしておくのが重要

global=false で、フラグがセーブされないイベントにしておくと、時間制限イベントを発生させた後に、button定義をすると、時間制限イベントがクリアされてしまう。

原因は、button定義でcall=false(ジャンプの定義)をしているため。

call=false だと、「global=falseのイベント予約は全て削除」しますよ

つまり、global=falseでの時間制限イベントを定義すると、その後に call=false(ジャンプする)イベントを定義すると、時間制限イベントがクリアされてしまう。

これを回避するために、時間制限イベントはglobal=trueで定義しておく

 

・時間制限のイベント解除

[event key=enter_frame frame=500 global=true del=true]

時間制限イベントを開始したら、どこかで解除も必要なわけで、そのための命令。

 [clear_event]というタグもあるが、それを使うと、すべてのイベント予約が消されるので、ボタンの定義なども死んでしまう。なので特定のイベント予約のみを消すために、上記のタグを使う。event key=の後は、定義したときと正確に同じ物を書くこと。grobal=trueも含めて!ちゃんと書かないと別イベント扱いになる!

 

・ビルドについて

ビルドには何種類かあります

ゲームを配布するにはこれをやらないといけません

「OS個別・簡易アプリ生成(exe,app)」から

 winだとexeファイルのインストーラーが出来る。

 adobeAIRがPCにインストールされていない場合、ネット経由で自動でadobeAIRをインストールした後、ゲームがインストールされる。

「実行形式パッケージ(air,ipa,apkなど)生成」のサブカテゴリから

「【ant airadobe AIRパッケージ」

  .airファイルのインストーラが出来る。ユーザーによるadobeAIRの事前インストール後に、.airをクリックすることでインストールできる。win、maclinuxなど、共用のインストーラーなので、adobeAIRの事前インストールのめんどくささに目をつぶれば、取り回しが良いインストーラー。逆に言うとadobeAIRの事前インストールにユーザーを誘導するのが面倒

「【ant air_r】OS個別インストーラ(exe,dmg)」

  うちの環境では動かなかった。夕街さん曰く、 ここは最近メンテしていないとのこと

「【ant air_b】OS個別RTバンドルパッケージ(exe,dmg)」

 個人的には一番使いやすい。adobeAIRが丸ごと含まれるパッケージを作れる。

 adobeAIRの事前インストールなど面倒な作業がないので、ユーザーにとっても、一番楽と思われる。

ただしインストーラーではなく、展開されたゲームフォルダを丸ごと作るので、

素材のフォルダやらが多数むき出しになり、見た目があまり良くない。

Nscripterのパッケージに似てるかもですが、airnovelは素材のフォルダが多い仕様なので、こういう状況になる。

f:id:fuwafuwaso:20170816195825p:plain

インストーラーを使う形式だとこのフォルダがCドライブのprogramfilesの中にできて、デスクトップにはexeのショートカット一個だけができるので、見かけ上はすっきりしてる)

いずれにしても、素材のフォルダの中身はすぐ見れる仕様なので「素材暗号化」が必須です。(暗号化のオンオフはanbooksにデフォルトでついてる機能なので、簡単)

 

*注意点

「【ant air_b】OS個別RTバンドルパッケージ(exe,dmg)」については、

「プロジェクトを作ったタイミング」が2016-10-14以前だと、「ant air_b」未対応なんです(電子演劇部 【追記】AIRNovel更新:Steamでエラーになる対策、AIRNovel作品をSteamで公開

電子演劇部 【追記】AIRNovel更新:Steamでエラーになる対策、AIRNovel作品をSteamで公開

なので、昔のANBOOKsで製作開始をしたゲームは、「【ant air_b】OS個別RTバンドルパッケージ(exe,dmg)」形式でのビルドが働きません。

プロジェクトの作り直しをする必要があります。

要は新しいANBooksで新規プロジェクトを作って、シナリオとか画像などのファイルを丸ごとコピペすればいいわけです。

 

 

 

airnovel久しぶりに触る日記4

昔書いてupしてなかった記事を発掘しました。

変数についてです。

 

 条件分岐をする上では変数を使わないといけません

変数の勉強

http://famibee.web.fc2.com/tag_dev/dev.htm#value_and_type

 

●条件分岐の書き方。Nスクとの大きな違い

これは・・やられました。Nスクとだいぶ違うところがあります。似たような命令だから使い方も似てるだろと思ってたら、思うように動かず、原因の究明に時間を取られてしまいました。

「とある変数が1なら~」というのを書く場合

Nスクのif文

  if 変数=1

・airnovelのif文

  [if exp="変数==1"]

「exp=」というのが入るのが違うところですが、もっとも大きな違いは、比較演算子が=ではなく==であるということ。

  [if exp="変数=1"]とやってしまうとうまく動きません。

   =と==は同じではないのです。

http://famibee.web.fc2.com/tag_dev/dev.htm#calc

 

  では、「exp=のところもexp==じゃないのか?」と思うかもしれませんが、そっちはexp=です。

  変数の中身を比較するときには==なのです。

  condのときも==です。

  例 [jump fn="ss_000" label=*ラベル cond="変数==1"]

   (変数の中身が1ならss_000.anの*ラベルにジャンプしろ)

 タグ内で属性について何かを書くときには=ですが、変数の比較をやるときは==なのです。

 Nスクから入った人は混乱するところかと思います。 

 動かない!なぜだー!となったときには、サンプルゲームのスクリプトを見るのが吉です。それと同じように書けばだいたい何とかなるかと思います。

 

 

 

 

 

 

 

 

 

久しぶりにairnovelを触る3

コミケ間近!

個人的な覚え書きです。

 

・ジャンプ先のラベル名を変数にする

[jump label='&"*"+ aaa']

ラベル*aaaに飛ぶ。

aaaは変数なので、

[let name=aaa text="hensuu" cast=str]

[jump label='&"*"+ aaa']

みたいな感じでaaaにhensuuを入れておけば、*hensuu にジャンプになるはず(テストしてないので未確認)

 

・変数に数字を加算する

[let name=save:loop text="&save:loop+1"]

いくら調べてもなかなか分からなくて、何とか解決できたのがこれ

このタグにさしかかるたびに、変数「loop」に1が加算されていく

ループ回数を判定するようなところで使う。変数は別にloopじゃなくても何でもいい

セーブ変数属性のsave:をタグ左let name=でつけてるので、タグ右のtext=でもsave:をつけないと、

左右のloopが別な変数と判断されて上手く働かない。ここ注意。

 

・文字レイヤを増やす

サンプルゲームのmain.an冒頭

[add_lay layer=mes class=txt]

の後に

[add_lay layer=mes2 class=txt]

を置くと、文字レイヤが階層手前に1つ増える。

問題は、逆に奥に文字レイヤを増やしたとき。

[add_lay layer=mes2 class=txt]

[add_lay layer=mes class=txt]

このような順番で記述すると、デフォルトの文字レイヤの階層奥に文字レイヤを追加できるが、 サンプルゲームの改造だと上手く働かない。

タイトル画面の、スタートなどのボタンが消えてしまう。

解決法は、main.anのラベル*title_menuの箇所のボタン設定にある。

[button]に layer=mes を追加して下さい。「デフォルトの文字レイヤの初期値は、最初に追加された文字レイヤ」にするため、先にmes2文字レイヤを[add_lay]すると、[button]がmes2に追加されちゃって「見えない」、わけです。

 [current] デフォルト文字レイヤ設定http://famibee.web.fc2.com/tag_dev/tags.htm#current、というタグもありますので、これによるデフォルト文字レイヤ指定を[button]群の前に追加してもよいです。

夕街さんありがとうございます!

 

文字レイヤを奥に増やすのは何のためかというと、

 ボタン(文字レイヤ)

 画像(画像レイヤ)

 テキストウインドウ(文字レイヤ)

このような順番でレイヤーを重ねておくと、ボタンを一時的に消したいなと言うとき、画像レイヤで覆うことによって見えなくする=働かなくすることができるためです。

ボタンを消したりもう一度出したりという作業に伴う面倒なフラグ管理の手間がなくなります。