Nscripterとairnovelの違いとは?AIRNOVEL技術を高速習得ーその6
記事 第1回~5回
NscripterからAIRNOVELに移植する技術を高速で習得する - フワフワソ・ラウンジ(NEW!)
NscripterからAIRNOVELに移植する技術を高速で習得するーその2 - フワフワソ・ラウンジ(NEW!)
*勉強会の資料も紹介*NscripterからAIRNOVELに移植を高速習得ーその3 - フワフワソ・ラウンジ(NEW!)
クラウドファンディング御礼と、AIRNOVEL技術を高速習得ーその4 - フワフワソ・ラウンジ(NEW!)
AIRNOVEL技術を高速習得ーその5 - フワフワソ・ラウンジ(NEW!)
●自分用宿題
さてこれからアイテム用のボタンを作るぞーっと意気込んで、常駐ボタンを作るために読んでおきたい自分用の宿題をまとめました。
ボタンは選択に関わるので選択の基本
ボタンについて
選択には変数が必須なので、変数関連
だいたいこのへんを勉強すればボタンが作れるようになる気がしています。(まだ勉強してない)
さてその前に。
●オリジナルの素材を使ってみる
前回の記事でフォルダの構造とかが分かったので、
試しに自分の素材をAIRNOVELに放り込んで、サンプルゲームのスクリプトで動かしてみることにしました。
とりあえず何も考えずにタイトル画面の画像を入れ替えてみました。
位置が全然合ってないですが、ちゃんと表示されました。
その流れで、anbookesの表記も直しました。
サンプルゲームの「空を飛べたら」の右上の「編集」のところクリックして、タイトルとか著作者とか書き換えました。
まるで完成したみたいですね!でもこの時点では中身はまだ「空を飛べたら」です。
↓ちなみにアイコンの画像は、このicon.jpgを入れ替えてピヨちゃんにしました。
画像のサイズは適当でしたが、anbooksが勝手に縮小してくれました。
さて、BGMもオリジナルのファイルに入れ替えてみたのですが、問題発生。
音が鳴らないのです!
Nスクはoggファイルだったので、そのoggファイルをairnovelのフォルダに入れて、main.anの ; *** タイトル開始共通処理 *** という箇所のBGMのファイル名を書き換えてみたのですが・・。
鳴りません! 動作ログでエラーも出てます。
おかしい・・airnovelはoggに対応したはずなのに・・。
などと思いつつ公式サイトを見てると、こんなのを発見
電子演劇部 ANOggo:ogg/oggo再生とoggo生成ツール
ウインドウに放り込むだけのお手軽ツールなので、やってみました。
これでできたoggoファイルを使ってみると、ちゃんと音が出ました。
公式サイトにogg対応と書いてるのになぜなのか?
質問してみました。
フワフワソ
夕街さんたびたびすみません・・oggファイルが鳴らないのですが、type error:error #1034 というのが出ます。年初のブログを見ると、ひょっとしてoggo に変換しないとダメなんでしょうか? ANoggoで変換したら鳴りました。oggのままはまだ非対応だったのでしょうか?
フワフワソ
AIRNOVEL技術を高速習得ーその5
airnovelについてはものすごく情報の少ない分野の記事書いてる意識ある。ブログのアクセスあんまないけど、いつかどこかのニッチな情報を探してる誰かの役に立つと確信してる
— ふわふわ@3日目東ヨ19b (@fuwafuwa8) 2015, 11月 13
自分がはじめてNスクでゲームを作るときには、検索しまくって多くのサイトを参考にさせていただきました。そのときの経験を元に、こんなことをつぶやいたら、さっそく館山緑さんから「頼りにしてます」とのお言葉をいただいて、モチベが上がりましたフワフワソです。
自分で勉強しながらのメモ的な記事なので、正確さ等は 保証対象外ですが、何らかの参考になれましたら幸いです。
記事 第1回~4回
NscripterからAIRNOVELに移植する技術を高速で習得する - フワフワソ・ラウンジ(NEW!)
NscripterからAIRNOVELに移植する技術を高速で習得するーその2 - フワフワソ・ラウンジ(NEW!)
*勉強会の資料も紹介*NscripterからAIRNOVELに移植を高速習得ーその3 - フワフワソ・ラウンジ(NEW!)
クラウドファンディング御礼と、AIRNOVEL技術を高速習得ーその4 - フワフワソ・ラウンジ(NEW!)
●AIRNOVELを実際にいじくる手順
何をするにも、このanbooksのウインドウから行います。
「最初から読む」を左クリックでゲームのテストプレイができるのは前回記事で書きました。(右クリックだと詳細モードになってすごく重い)
そしてスクリプトや素材などが入った、ゲームの中身のフォルダをいじくるには、「桜の樹の下には」と書いてあるところをクリックします。(実際にはそれぞれのゲームタイトルになるでしょうが)
なんか右にアイコンっぽいのがありますが、それとは関係なく、「桜の樹の下には」の行を押せばフォルダが開きます。
↓開いたフォルダの中身がこれ。最終的には、これらを全部合体させて暗号化してゲームのファイルにするのかと思います。(その作業もanbooksがやってくれるはず?)
制作風景としては、
1)anbooksを起動して
2)「桜の樹の下には」のところをクリックしてゲームの中身のフォルダを開いて
3)フォルダの中にあるスクリプト(拡張子.anのファイル)をテキストエディタで開いていじくって
4)画像とか音楽の素材フォルダに、オリジナルの素材を追加して
5)「最初から読む」でテストプレイ
この繰り返しになるかと思います。
要するにanbooksのクリックすべき場所は、上記の2カ所。
押せるところいっぱいありますが、当分は2カ所を覚えてればいいのかなと思います。
*フォルダの中身を見て気付いた点
・workフォルダに夕街さんがサンプルゲームの画像を制作したときのpsdファイルが入ってる。コンフィグ画面のカスタマイズはフォトショップでこれをいじればOK! →configフォルダの_config.jpgを自作のものに差し替える
・scenarioフォルダにスクリプトのファイルが3つ入ってる
ss_000.an シナリオ。ここをもっぱらいじくる。(シナリオが増えたら ss_001.an、ss_002.anみたいにファイルを増やしていく)
sub.an マクロとかの定義(文字ウインドウの設定なども)
main.an 一番最初に参照するスタート地点。
・scenarioフォルダにテキストウインドウの背景画像が入ってる。
wafuu1.pngとwafuu1w.png(「空を飛べたら」の場合、hakkou1.png)
これを自作の画像と差し替えればよい。
・menuフォルダにタイトル画面のjpgとボタンのjpgが入ってる
(タイトル画面など、このjpgを自作に差し替えればOK)
その他入ってるもの
_submenu.an(右クリックのサブメニューのスクリプト)
_submenu.png(右クリックのサブメニューの背景)
・systemフォルダにシステム関係のいろいろな.anファイルが入ってる
改造のためのコメントがついてるが、とりあえず触らない方がよさげ?
・ruleフォルダにいわゆるrule画像が入ってる。
画面切り替えの時の効果を変えられるアレ。素材配布サイトなどからお借りして、効果を増やすと吉。
・縦サンプル「桜の樹の下には」と横サンプル「空を飛べたら」の違い
夕街さんのサンプル「桜の樹の下には」をベースに、黒柴亭さんが横バージョンにしたサンプルが「空を飛べたら」。
スクリプトの違いを見ることで、他者がサンプルを改造するときの手の付け所が分かるのでは? と思って双方を見比べる。
後で聞いたところ、「桜の樹の下には」も「空を飛べたら」も、スクリプトは夕街さんが書いたとのこと。(黒柴亭さんが担当したのは、シナリオのみ)
↓見比べた結果
*双方とも基本的な機能に絞ってるので、スクリプトにあまり違いはなかった。
フォルダの構造も一緒。
単純に、「桜の樹の下には」を横書きに直した基本フォーマットが「空を飛べたら」と考えていいかも。
*システムの見た目の違いである「コンフィグ画面やテキストウインドウの画像など」は、フォルダの中にある画像の差し替えで行ってる
*テキストの縦表示or横表示は、sub.anでマクロを定義し、ss_000.anで呼び出して実行.。
ss_000.anで
; *** テキストレイヤ縦書き中設定 ***
[txt_lay_v_center b_alpha=0 fcol=0x000000]
などとなってるところを
; *** テキストレイヤ横書きWide下設定 ***
[txt_lay_h_bottom_wide]
に差し替えで横にしてる。
[txt_lay_h_bottom_wide]については、「桜の樹の下には」のsub.anで最初から横書き用のマクロ定義がされてるので、「空を飛べたら」ではそれを使ってる。sub.anをいじれば自分で表示位置を調整できる。(のちほど詳しく触れます)
*テキストウインドウにくっついてる「設定」や「栞」などのボタン位置も、sub.anで設定する。
; マクロ システムメニュー描画処理
以降に書いてある部分で、ボタンの位置や向きを調整。
「桜の樹の下には」では、 rotation=-90という命令でボタンを90度回転させて表示させてる。 left=&sysmenu_left2というのも続けて書いてあるが、よくわからない。「空を飛べたら」には書いてない。
ボタン画像のファイル名共通の接頭語「Mnu」で検索するとボタン画像に関係する命令の箇所が分かる。
↓
【フワフワソの目標】
画面サイズをHD比率にしたかったり、テキストウインドウの大きさを変えたかったりするので、上記を理解する必要がある。
オリジナルゲームを作るとき、画面サイズもテキストウインドウの大きさも「空を飛べたら」と同じでいいよーっていう人はウインドウやボタンの画像差し替えくらいでよいかも?
「システムの見た目はオリジナルじゃなくていい!中身で勝負だ!」という人は、最低限、コンフィグの画像を差し替えればOK。「空を飛べたら」のままだと、天狗の画像になってしまう。(「桜の樹の下には」では水芭蕉の画像)
↓この画像を差し替える。色々重なってるように見えて、これが一枚のjpg。
(この画像を作るためのpsdファイルもworkフォルダに入ってる)
というわけで、画面サイズのカスタマイズをどうやればいいのかはだいだい理解出来ました。sub.anのマクロの、ボタンや文字表示に関連するところの、x座標y座標の数字を変更すればいいのです。
ここは問題なくできそうな予感がするので、実際の作業は後回しにすることにします。
↓うちの場合、一番重要なのがこれです
【フワフワソの目標2】
取り調べ用システム用に、アイテムアイコンを画面上に多数配置したい。
「画面上のアイテムアイコンを押す→アイテムの内容の拡大画像表示」をやりたい。
イメージとしては、アルバム画面の挙動が似てるかと思われるが、アルバム画面とは違い、同時にテキストの読み進めもできるようにしたい。
なので、アルバム画面よりは、テキストウインドウにくっついてる「栞や設定、セーブロードなどの常駐ボタン」に仕組みが似てる。
というわけで、そのあたりのスクリプトを参照して改造することにする。
具体的にはsub.anの
; マクロ システムメニュー描画処理
というところが常駐ボタンの設定なので、公式サイトのタグ辞典を見ながら、どのタグがどんなことやってるのか、読み解いていくことにする。
ここが喫緊の課題。
●; マクロ システムメニュー描画処理の読み解きを始めた結果
いきなりつまずきました。意味が分からない!
[let name=l text=%l|0]
let name=l text= ここまでは分かります。変数lにtext=以降に書いてあることを代入しろという意味です。
しかしその後の %l|0 は? 本家サイトや瀬戸様のサイトを必死で見てたらなんとなくは分かりましたが、なぜそうなるのかがわかりません。ひどくぼんやりしてます。
他のマクロを見ていると、似ているのを見つけました。
[let name=l text=%l|40]
これは変数lに40を入れろという命令です。
そしてその変数lの40が、テキスト表示のY座標として使用されています。
ここでフワフワソは理解を諦め、「そういうものなんだ」と把握することにしました。これはつまり、電気釜の仕組みは分からないが、どう操作すればご飯が炊けるかは分かる、という方向です。[let name=l text=%l|0]の細部の意味は分からないけど、lに0を代入してるタグである。[let name=l text=%l|40]と書けば、lに40を代入するタグになる。そういうことです。
その理解でホントにいいのか確認したかったのと、他にも疑問点があったので、夕街さんに質問してみました。
フワフワソ
桜の樹と空を飛べたらのsub.anを見比べています。
「空を飛べたら」の
; マクロ システムメニュー描画処理
[let name=l text=%l|0]
がよく分かりません。
これは単純に変数lに0を入れる書式と考えていいでしょうか?
夕街さん
答1)[let name=l text=%l|0] は「変数lに0を入れる書式」で正解です
フワフワソ
また、
; マクロ テキストレイヤ縦書き左設定
を見ると、
[let name="l" text=%l|40]という表記があります。
変数lが””で囲まれていますが、[let name=l text=%l|0]で””がないのは単なる省略でしょうか? それとも意味が違ってくるのでしょうか?
夕街さん
答2)【変数lが””で囲まれて】いることには意味がなく、ここでは同じですね。ややこしいのでない方がいい気がします。
フワフワソ
「桜の樹」の
; マクロ システムメニュー描画処理
では
[let name=l text=%l|40]
[let name=w text=%w|292]
という定義があります。
ここで定義した変数lとwを実際に使用しているのは、
; マクロ テキストレイヤ縦書き左設定
の箇所かと思いますが、そちらでももう一度
[let name="l" text=%l|40]
[let name="w" text=%w|292]
の定義がされています。(今度は””付き)
これは、念のためにもう一回定義した、あるいは本当は2回も必要なくて、
; マクロ システムメニュー描画処理
での
[let name=l text=%l|40]
[let name=w text=%w|292]
は不要だったと考えてもいいでしょうか?
夕街さん
答3)【[let name=l text=%l|40]】が二回出てくるのも重複だし、ムダと云えばムダですね。「あるマクロがあるマクロを呼ぶ、逆方向はない、そして呼ばれる方が単独で他から呼ばれない」というルールを徹底していれば問題ないです。【不要だったと考えてもいい】です
こういう感じでチョイチョイ美しくないコードがあり、お恥ずかしいです(_ _)
フワフワソ
「空を飛べたら」では
; マクロ テキストレイヤ縦書き左設定
のマクロは使っていないので、変数lとwの定義は不要ではないかとも思います。
すると、[let name=l text=%l|0]
は書く必要がなかったタグのようにも思えてきます。
「空を飛べたら」の[let name=l text=%l|0]も、なくてもよかったという理解でいいでしょうか?
夕街さん
まぁ、安全策で置いといてもイイかなと(´ω⊂
とてもよく分かりました、夕街さんお忙しいところありがとうございます!
*念のために補足ですが、変数に数値を代入する書式は、必ずしもこの [let name=l text=%l|0]という書式ではなく、通常はもっと分かりやすいので、解説サイトを参照してください。
%l| というややこしい部分は、「このマクロ内」ではこうなっているということで、なぜなのかはフワフワソの理解を超えているということです。
また、””(クオーテーション)の要不要についても、「このマクロ内」では、あってもなくても同じ扱いでしたが、””(クオーテーション)の有無で意味が変わってくる場合もあるので、そこも解説サイトを参照してください。
↓ ”” や | について
http://famibee.web.fc2.com/tag_dev/dev.htm#f_and_g4pro
↓ ”” について(.anprj の場合)
http://famibee.web.fc2.com/tag_dev/dev.htm#anprjFile
↓%についての解説。フワフワソの頭脳がギブアップした部分><;
%や | については、凝ったことをしなければ、通常は使わずにゲーム作れるのではないかと思います。
フワフワソには理解が無理なので、使わずにゲームを作ろうと思います。^q^
クラウドファンディング御礼と、AIRNOVEL技術を高速習得ーその4
「エクストリーム取り調べ!ソラとピヨちゃん」冬コミで完成を目指して制作をがんばっています。
3日目東ヨ19b フワフワソ
でお待ちしております。
フワフワソではc87,コミティア,c88と3回のイベントで、クラウドファンディング募金箱を設置しました。10円からの受け付けで、スタッフロールに載っていただく募金をしていただこうというものです。
フワフワソはいままで推理大会などの開催を通して、「プレイヤーの皆様と一緒に盛り上がりたい!その方が楽しい!」というのを実感しました。ところが、今回の新作のエクストリームソラとピヨちゃんは、「推理」の部分をシステムに内包してるため、推理大会をやるのはちょっと難しそう・・でも、せっかくだから何かやりたい・・という葛藤がありました。そこで思いついたのが、この参加型の募金です。
当初は「クラウドファンディング」という言葉さえおぼつかず、張り紙に「クラウドファインディング」や「クラウドファウンディング」などと書いている始末でしたが、どうにかやってくることができました。
おかげさまで、3回のイベントを通して、のべ79名の皆様から、およそ2万円ほどの募金を頂戴しました。
使途につきましては、無料配布する体験版CDの予算や、絵を描いてくださってる蜜樹きゅっきゅさんと、曲を作ってくださってるAIR田さんにお送りするお菓子の予算にさせていただきまして、モチベーションアップの栄養源とさせていただきました。
ありがとうございます!
順調にいけば冬コミで完成目標です、よろしくお願いします。
●AIRNOVEL引き続き勉強中です。
記事 第1回~3回
NscripterからAIRNOVELに移植する技術を高速で習得する - フワフワソ・ラウンジ(NEW!)
NscripterからAIRNOVELに移植する技術を高速で習得するーその2 - フワフワソ・ラウンジ(NEW!)
*勉強会の資料も紹介*NscripterからAIRNOVELに移植を高速習得ーその3 - フワフワソ・ラウンジ(NEW!)
「俺のAIRNOVELがそんなに難しいわけがない」を読みながら、気付いた点などを。
*気付いたメモ
・レイヤ全体を移動でき、レイヤに載せた画像や文字をまとめて移動できる
・クリック出来るボタンは文字レイヤを使う
・通常のボタンは、[button]と[s]でクリック待ち状態。文章をストップさせた選択肢などで使う。(文字送り[l]との衝突を避けるためにevent_at_downが必要)
・文章を読み進めながらも機能する常駐ボタンを作るには、グローバルイベントを使う。Nスクと違って常駐ボタンの作り方が簡単っぽい!
・エクストリームソラとピヨちゃんのアイテムボタンを作るにはアルバム画面の改造がよさそう
・自動アップデートについてがんばって覚える
パッチじゃ無くてゲームファイルを丸ごとアップデートする方式?
・たまに出てくるanbooksって何かというと、airnovelの開発環境のことらしい。ビルドのめんどくさいところをやってくれるとか
“AIRNovel”の開発環境「ANBooks」v2.2が公開、ビルド環境の構築がほぼ自動に - 窓の杜
・ANEditという統合環境もあるけど、まだ開発中らしい
ノベルゲーム開発環境「AIRNovel」、スクリプトのビジュアル開発が可能に - 窓の杜
●AIRNOVEL実際にいじり始めて気付いた点
・Nスクは同一フォルダの中に「Nスクのexeとスクリプトのtxtと画像などの素材」を置いて、exeをクリックすればすぐテストプレイもできたのですが、airnovelは若干ややこしい。フォルダの構造はだいたい一緒なものの、フォルダの中身を直接いじるのでは無く、開発環境である「anbooks」を通してGUI的にフォルダを参照するようになっています。
↓それがこれ。spfdextremeというのはぼくがつけたプロジェクト名で、開発者によってそれぞれ違う名前になります。デフォルトで入っている「桜の樹の下には」というサンプルゲームを改造してオリジナルゲームを作っていこうという流れです。
この画面からいろんな所をクリックすれば、フォルダが開いたり、スクリプトを手直し出来たり、素材を追加出来たりします。
そして、「最初から読む」をクリックするとゲームのテストプレイができるのですが・・!
ここがつまずきポイント!!赤丸のところ!
ここは右クリックをしてはいけません!
左クリックをしてください!
右クリックをすると「詳細モード」という、実行中の動作ログが出るモードになり、それがとても重いのです。環境にもよるとは思いますが、少なくともうちのwindows8(corei5)機ではゲームのプレイに支障を来すほどの重さで、これがairnovelなんだと思ってしまうと、「airnovelはうちの環境に合わないかも!これじゃ他のエンジンにせざるをえない!」と誤解してしまうので要注意です。
実際フワフワソは諦めかけました。
しかし、開発環境では無い「ビルド済みのairnovelのゲーム」をプレイしたことがあり、そちらはサクサク動いていたので、何かがおかしいと思い、調べているうちに気がつきました。
↓ anbooksのウインドウを横にサイズを大きくすると、「右クリックで詳細モード」と出てくるではありませんか。なぜか分かりませんが、デフォルトのウインドウサイズだと「右クリック…」までしか表示されていなかったので、盛大に勘違いをしたのです。
ここで左クリックをすれば、はい!サクサク動くテストプレイモードです!
いやー危ないところでした。本気で諦めかけました。
ちなみにこのウインドウサイズの件、どこの環境でもそうなるのかは分かりません。少なくともうちの環境ではそうでした。
ものすごい初歩ですが・・同じつまずきでairnovelを諦める人がいないよう、書いておく次第です。