シナリオの切り替え時、画像が多かったり重かったりで
読み込み待ちが発生します。フリーズと間違えられてしまうことも。
でもナウローディング、(now loading)を表示する方法がわからない。
できたらいいなー。調べてたら、イメージプリロードという言葉を使うことがわかりました。
(シナリオの読み込み直前に画像を全部読み込み終えておいて、
シナリオ中の表示をスムーズにする事です)
ティラノビルダーはシナリオファイルを作成すると『自動で』イメージプリロードを作ってくれている機能があります。(ビルダーからだと開いたり、見たりすることができません)
開くにはフォルダから直接
myproject/プロジェクト名/data/scenario/system
にある
_シナリオファイル名.ksをメモ帳で開きます。
こうなってます。(シナリオで使う画像が自動で書かれてますすげえ)
[preload storage=./data/bgimage/0siro.png" ]というのがプリロードの指示です。
ちなみに ファイル呼び出し場所の .←の意味がわかってないので知りたいです...
(シナリオファイルだと使ってないんで、ファイル場所を頭から記述するときにいるのかな???)
で末に[return]とあります
これでシナリオファイルに戻るという指示です。
※シナリオファイルをメモ帳で開けると
(ビルダーで作った、myproject/プロジェクト名/data/scenario/にあるやつ)
一番上に
[_tb_system_call storage=system/_ep_amane.ks]
と記述されています。
callでscenario/systemフォルダにある_同一ファイル名.ksのプリロードが
記述されたファイルを呼んでいるのです。
ということでロード中の画像表示は
としてみました。
プリロードの前に
[image layer=1 storage="default/lodomati.gif" x=0 y=0 visible=true]
で画像を表示して
プリロードが終わって、[return]の前に
[freeimage layer=1]で画像を消します。
(imageについてはタグリファレンスみてね レイヤー1の1も適当なので)
追記:
[freeimage layer=0]のあとプレビューでは大丈夫ですが
ウェブ上でLive2Dが表示されない現象に遭遇しました
ライブ2Dはlayer=0に表示されています気を付けて。
画像はgifアニメで作って(lodomati.gifのこと)
プロジェクト名/data/fgimage/default
の中に入れておきました。
ビルダーでは操作できないのでフォルダを開いて直接です。
そして、ビルダーでシナリオファイルを上書き保存すると
このシステムフォルダにある、_シナリオファイル名.ksも上書き保存されてしまいます。
つまり最初の画像の状態になります。(ビルダーで上書きしないよう注意!!)
ということでこれをやりたいときは
シナリオが完成したあと、メモ帳で編集保存して、
上書き保存せずにプロジェクト全体の再生ボタンを押して動作テスト
あるいは書き出ししたファイルで編集してウェブにアップして動作テストしてください。
ビルダーは初心者向けにシステム構造や大事なファイルが
見えない、さわれないようになっています。
でも、少し突っ込んで何か作ろうとかやりたい演出があると
ファイル構造がわかってないと難しいですね。
(スクリプトの枠を入れてタグを直接書きこむことも可能ですが)
ファイル構造がわかってきたら、制作スキルもステップアップ~
でも毎回わからなくて調べまくったり、スクリプトタグを読んで意味考えるのに
めっちゃ時間かかってやつれる(>´ཀ`<) 楽しいけどな!!!
そしてうまくいったら\(^o^)/雄叫ぶ。
以下余談:
超お世話になる&なってる
ティラノスクリプト 製作テクニックwikiさまと
公式タグリファレンスで
[preload](画像ファイルの事前読み込みタグ)
を調べると
[iscript]
f.preload_images = ["data/fgimage/ファイル名.jpg","data/fgimage/ファイル名2.png","data/fgimage/ファイル名3.png","data/fgimage/ファイル名4.png"];
[endscript]
[preload storage=&f.preload_images wait=true]
wait=trueで読み込みが終わるまでゲームを停止するっていうのがあるので
ナウローデングつける時は
一括読み込みしなきゃいけないのかな?????と
↑自分の?????を解消するのに時間がかかりました。
ちなみに
[iscript]
f.preload_images = ["data/fgimage/ファイル名.jpg","data/fgimage/ファイル名2.png","data/fgimage/ファイル名3.png","data/fgimage/ファイル名4.png"];
[endscript]
でf.preload_images という変数=画像ファイル名複数と定義していて
[preload storage=&f.preload_images wait=true]
で変数名を入れる事でプリロードタグ1つで画像ファイルを複数読み込んでいる
ということみたいです。
_ファイル名.ksのプリロードのファイルをこの書き方で書き換えて上下に
画像表示、消去を入れるというのも最初に試してみたのですが…
ビルダーで自動でできてるやつそのまま使えばよくね??ってなって
やめました。(あとなんかミスっててうまくできなかった…;w;)
あとwait=trueも入れてないです。(ブログ前半に載せた方法)
読み込み中画像が出てて、プリロードタグが終わってリターンの前に画像消すっていう
動作は同じ気がしたので…。
※この一気に読み込む書き方はシナリオファイルで行うとか
同じ素材を複数のシナリオで何度も読み込むときに便利だと思います。
まぁ…なるべくシナリオファイルを短くして
(1つのシナリオファイルに詰め過ぎない)
毎回の読み込みを軽くするのが一番いいですね。
つまずいてる時はだいたいこういう気持ち→(´ཀ`)