ティラノビルダーで画像が表示されない原因と対処法|eval変数・imageタグ・レイヤー設定を確認する方法

プログラミング

ティラノビルダーでクイズゲームやノベルゲームを制作していると、変数によって画像をランダム表示したい場面があります。しかし、処理自体は正常に動いているのに画像だけが表示されないという問題はよく発生します。

特にJavaScriptの変数を利用して画像パスを管理している場合、画像ファイルの場所、imageタグへの変数渡し、レイヤー設定など複数の要素が関係します。この記事では、ティラノビルダーで画像が表示されない場合に確認すべきポイントと、正しい記述方法について解説します。

ティラノビルダーで画像だけ表示されない主な原因

クイズの選択肢や変数処理が正常に動作している場合、問題はゲームロジックではなく画像表示部分にある可能性が高くなります。

ティラノスクリプトのimageタグは、指定されたstorageの値を使って画像を読み込みます。そのため、変数に保存している画像パスが正しいか、imageタグが正しく変数を参照できているかを確認する必要があります。

例えば、変数内に「data/image/syashim/01.png」と保存している場合でも、実際のゲームフォルダ内の配置が異なっていると画像は表示されません。

imageタグで変数を利用するときの正しい書き方

ティラノスクリプトでは、タグの属性に変数を入れる場合、通常の文字列ではなく変数展開の記述が必要です。

画像表示部分では以下のような形式になります。

[image storage="&f.current_photo" layer="1" page="fore" x="400" y="100" width="480" height="270" name="photo_frame"]

この「&」は変数を展開するための記号です。これがない場合、ティラノビルダーは「f.current_photo」という名前の画像ファイルを探してしまい、画像が見つからなくなります。

ただし、変数の中身自体が空の場合も同じように画像は表示されません。そのため、imageタグを実行する直前に変数の内容を確認することが重要です。

画像パスが正しいか確認する方法

ランダム表示の場合、最初に疑うべきなのは画像ファイルのパスです。

例えば以下のような設定の場合です。

f.answer_map = {'data/image/syashim/01.png':'normal'}

この場合、プロジェクトフォルダ内に以下のような構造で画像が存在している必要があります。

指定パス 実際の場所
data/image/syashim/01.png プロジェクト/data/image/syashim/01.png

ファイル名の大文字小文字、全角文字、拡張子の違いでも読み込みに失敗します。特にWindowsでは気付きにくいですが、環境によっては「01.PNG」と「01.png」が別ファイルとして扱われる場合があります。

layoptやレイヤー設定を確認する

画像自体が読み込まれていても、表示するレイヤーが非表示になっている場合があります。

ティラノビルダーではfixレイヤーや通常レイヤーなど複数の表示領域があります。そのため、imageタグでlayer=”1″を指定している場合、そのレイヤーが表示状態になっている必要があります。

例えば以下のような記述は、画像レイヤーを表示状態に変更しています。

[layopt layer="1" visible="true"]

ただし、レイヤー番号や表示ページがimageタグ側と一致していない場合も表示されません。

確認するポイントは以下です。

  • imageタグのlayer番号とlayoptの番号が同じか
  • page指定がforeになっているか
  • 別のタグで画像を消去していないか

iscript内でタグを書く場合の注意点

提示されているコードでは、imageタグをiscript内に記述していますが、ここは注意が必要です。

iscriptはJavaScriptを実行する場所なので、通常のティラノタグをそのまま書いても実行されません。

JavaScript内からティラノタグを実行する場合は、必要に応じてkag.ftag.startTagなどの呼び出しを使います。

例えば単純に画像を表示したい場合は、iscriptを閉じた後に通常のティラノスクリプトとして記述する方がトラブルが少なくなります。

例。

[_tb_start_tyrano_code]
[image storage="&f.current_photo" layer="1" page="fore" x="400" y="100" width="480" height="270"]
[_tb_end_tyrano_code]

ティラノビルダーではGUI操作とティラノスクリプトが混在するため、JavaScript部分とタグ部分を分けて管理すると原因特定がしやすくなります。

デバッグするときは変数の中身を確認する

ランダム画像表示では、本当に正しい画像パスが変数に入っているかを確認することが重要です。

例えば一時的に以下のような表示処理を追加すると確認できます。

[eval exp="alert(f.current_photo)"]

ゲーム開始時に「data/image/syashim/01.png」のような正しい文字列が表示されれば変数処理は正常です。何も表示されない場合は、配列作成やランダム処理側に問題があります。

画像表示の問題は、コード全体を見るよりも「画像パスが存在するか」「変数に値が入っているか」「imageタグが実行されているか」の3点を順番に確認すると解決しやすくなります。

まとめ

ティラノビルダーでクイズ用画像が表示されない場合、原因はランダム処理ではなく画像読み込み部分や表示レイヤー設定にあることが多くあります。

特に確認したいポイントは、変数展開の「&」が正しく使われているか、画像パスが実際のファイル配置と一致しているか、imageタグをiscript内で誤って実行していないかという点です。

変数を使った画像ランダム表示はティラノビルダーでも実現できます。処理を小さく分けて確認しながら修正すると、複雑なクイズゲームでも安定した画像表示ができるようになります。

コメント

タイトルとURLをコピーしました