ホーム › フォーラム › Android,iOS › フレーム間の移動について
-
投稿者投稿
-
2017-07-24 3:41 pm #14138mugimiso参加者
お世話になっております。
androidにて、フレーム間の移動に時間がかかります。
ios(iphone6plus)では1秒程度のところ
android(F-03H SC-04E)では7~8秒程度かかってしまいます。サウンドの読み込みに時間がかかっているのかと思い、
データエレメンツではプリロードになっていたので
すべて呼び出し時にロードにかえましたが、効果はありません。サウンドの鳴らし方としては
特定の変数に1が入っていたら、その変数に対応したサウンドを鳴らすようにしています。
例えば、変数名を「サウンド1」とした場合、サウンド1=1の場合、bgm001.oggを再生 サウンド1は0にする。
という感じです。
弾を発射するときは、発射時に変数に値を入れるという形です。
ですので、フレーム開始時にすべての音を鳴らしているということはありません。「特定の変数に1が入っていたら、その変数に対応したサウンドを鳴らすようにする」
という処理のところをフレーム開始時は非アクティブにし、必要に応じて
アクティブ化する、ということも考えましたが、こちらも効果はありませんでした。ただ、この処理を無効化したところ、3秒ほど縮まりました。
非アクティブではなく無効にしてしまうと、処理の中で有効化させる方法は
ないのではと思います。androidの場合、最初に特定のサウンドファイルを読み込まない、といったことは
できないのでしょうか?2017-07-31 2:38 pm #14150ASDキーマスター>>mugimisoさん
iOSとAndroidのOSの違いやiPhone6plusとF-03H、SC-04Eでは端末自体のスペックの差もありますので複合的な要因があると思います。ちなみにiOSではOGGは再生できませんので、ビルド時にWAVヘ変換されます。一方AndroidではOGGが再生できますのでOGGのままです。AndroidでもWAVに変えてみてロード時間に変化があるかどうかも確認してみてください。
2017-08-01 7:09 pm #14167mugimiso参加者ご返信ありがとうございます。
WAVに変更してみましたが、特に変化はありませんでした。フレーム間の移動についてはwikiの「テクニック集/フレームのロード時間を短縮する」を
参考にしており、その流れで、データエレメンツのサウンドの「呼び出し時にロード」を
使用したのですが、フレームのロード時間が短縮されたように思えませんでした。
androidでは機能しない、ということはありませんでしょうか?ちなみに、グラフィックについても、なるべく呼び出し時にロードを活用しています。
2017-08-06 6:15 pm #14191ASDキーマスターサウンドを『呼び出し時にロード』に設定した場合に、そのファイルがメモリへロードされるかどうかの基準は『そのサウンドの再生イベントが存在するか否か』で決まると思われます。ですので、フレーム開始時に(イベントグループを)非アクティブにする方法では変化がなかったのに、無効化では縮まったのだと考えられます。ちなみに、サウンドの再生方法には他に『ディスクから再生』がありますが、こちらはファイル全体をメモリヘロードせず、順次読みだして再生します。通常BGMのような巨大なファイルはこの方式で再生することが推奨されています。こちらに変更して変化があるかも確認してみてください。
iOSではデータエレメンツではなく、イベントでのサウンドファイル選択時に出てくる『AudioPlayerで再生』の設定に寄ります。詳しくはヘルプの『作成したアプリケーションの配布』→『iOS』→『相違点』をご覧ください。
アクティブオブジェクトの『呼び出し時にロード』は、『開始時に作成』がOFFになっていなければ効果がありません。こちらがOFFになっているかもご確認ください。
更にフレーム開始時のメモリ使用量を減らしたいなら、イベントで『オブジェクトを作成』や、『オブジェクトを発射』で指定すると、フレーム上から削除しても左のリストに残り続けるので、フレーム上に配置されていなくても使用することができ、且つフレーム上にオブジェクトが置かれている場合よりメモリ使用量が削減されます。。ただし、下記のトピックでも説明いたしましたが、この操作をすると後でオブジェクトを完全にmfaファイル内から消したいという場合に、削除できず残ってしまうことがあります。
2017-08-07 5:17 pm #14199mugimiso参加者●ディスクから再生
すいません、こちら設定に見落としがありました。
アンドロイドでは、オプションに
「サウンドが次より大きい場合に「ディスクから再生」を
強制的に使用する:(秒)」
という項目がありますが、こちらが5秒に設定されていました。つまり、そもそもBGMは推奨設定である「ディスクから再生」に
なっていたようです。
(ややこしくなってすいません・・・)一応、この項目の値を600と設定したうえで
(600秒を越えるBGMはないので)
データエレメンツで「ディスクから再生」としてみましたが
当然ながらロード時間に変化はありません。また検証としてSEやジングル等すべてのサウンドを、
「ディスクから再生」も試してみましたが
こちらも変化はありませんでした。●思わぬ不具合と改善
またさらに、検証がてらに上記の設定のうえ、
BGMを「呼び出し時にロード」と設定してみました。
すると、ループ再生で再生したBGM(ogg)が
6秒を過ぎたあたりでまた最初から再生されるという
現象が発生してしまいました。
SC-04E、F-03H、NEXUS 5Xすべて起こったので、
アンドロイド共通の現象かと思います。ただし、別トピックでご報告していた
SC-04E特有のノイズ現象ですが、
この設定ですと消えてしまいました(汗)
上記不具合があるので、むろん使えはしないのですが・・・●アクティブオブジェクトの設定
こちらはご教示いただいた通りの設定となっています。
こちらについてはある程度体感的にも効果が確認できているので
問題ないのでは、と思います。
(その分、幽霊オブジェクトも発生してしまっていますが、
こちらはどうしても消えない場合、
フレームの内容がある程度固まった段階で
新規フレームに必要なオブジェとイベントを全移植、という
形で対応しています)●ios
ご教示ありがとうございます。
BGMはヘルプ推奨の「AudioPlayerで再生」に設定しました。
特に動作のもたつきなどもないようです。フレーム間の読み込みについては、できる限りのことを行った後
それでもロード時間がある程度かかる場合は
「Now Loading画面」を挟むことで対処しようかとは思いますが
なにか考えられる点はございますでしょうか?2017-08-13 4:37 am #14209ASDキーマスターこちらのトピックでアップされていたファイルで、『サウンドが次より大きい場合に「ディスクから再生」を強制的に使用する:(秒)』をサウンドの長さより長く設定すると6秒しか再生されないことを確認いたしました。
開発元へバグとして報告いたしましたので続報をお待ちください。
– Bug/Issue Reports #4446: Pre-loaded long sounds only play 6 seconds – Android Export Module – Clickteam Bug Tracker System
http://bugbox.clickteam.com/issues/44462017-10-06 5:00 pm #14433mugimiso参加者すみません、本件のバグですが現状いかがでしょうか?
現状では、BGMは実質「ディスクから再生」しか使えないように思われます。「呼び出し時にロード」のほうがノイズの心配が少ないこと、
またループ時の途切れも、「ディスクから再生」よりもよくなるのでは?
という気もします。
ぜひ対応してほしい案件(バグ対応、あるいはこの機能自体チェックボックスなどで切れるようにするなど)ですが、可能でしょうか? -
投稿者投稿
- このトピックに返信するにはログインが必要です。