HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0810
Drip2017年8月現在、dishをAndroid上で動かした時に発生する現状直ってない不具合はありますか?23解決


Drip

リンク

2017/8/10(Thu) 04:14:51|NO.80882

みなさんこんにちは。
タイトルの通りなのですが、一覧みたいなものってないですよね?
個人のレベルで検証できる範囲はかなり限られてしまっているのですが、

・複数回celloadしているうちに画像が真っ白になってしまう
・音が鳴らない

等の、特に作品イメージや機能が著しく破壊されてしまう類の致命的不具合を
過去にこの掲示板で頻繁に目にしたことがあります。例えば現在も

repeat:celload "img.png",1:wait 10:loop
などとやっているうちにバッファID1の画像が真っ白になるようなことは有り得るのでしょうか。
有り得る場合はDish内でメモリリークが発生しているということ(?)なんでしょうか…
Dishの登場からかなりの年月が経過していますが解決の余地はないのかなど色々思う所ありますが、
他にも経験者の方や問題と回避策をご存知の方、色々書き込んでいただけると大変参考になります。
もしこれらの最新情報をまとめているようなサイトがあれば誘導いただけると大変助かります。

どうぞ宜しくお願いいたします。



この記事に返信する


エイカ

リンク

2017/8/10(Thu) 20:20:53|NO.80889

どうも、いつもお世話になっております

私が今、Android(恐らくkindle fire HD7)のみで遭遇してる現象が
「mp3の音が、途中で止まってしまう」という現象なので
こちらの方に書き込みさせて頂きます。
パソコンでそのソースを実行してるときはちゃんと再生されます

スプリクトを載せようかは迷ったのですが
#includeやgosubを多用してるので
そこだけ切り取って載せても多分意味不明だろうと思い
とりあえずは保留にしています

キャラクターが攻撃の際に、攻撃ボイスをwavで出すのですが
その前後辺りで、何故かmp3の戦闘BGMが止まってしまうのです
攻撃ボタンを押して、味方キャラクターの攻撃効果音wav
その次に、攻撃ボイスwavが流れるのでですが
その前後あたりです。
戦闘開始から、その攻撃ボイス辺りまでは
ちゃんと戦闘BGMのmp3は流れております

どうか、アドバイスできる方
アドバイスよろしくお願いします。



エイカ

リンク

2017/8/11(Fri) 09:20:59|NO.80894

エイカです
お世話になっております

先程の不都合は、どうしても私には解決できそうにないので
考えた結果、ソースやファイル一式全てを
アップローダーにアップすることにしました

https://ux.getuploader.com/gametai99/

アドバイスしてくださる方や
興味のある方は
ダウンロードをお願いします!

そして、是非アドバイスを心よりお待ちしております!



エイカ

リンク

2017/8/11(Fri) 12:17:16|NO.80895

追記:作成したデバックのapkも追加でアップしました
こちらも興味がある方やアドバイスされる方はどうぞよろしく



名無し

リンク

2017/8/11(Fri) 12:32:20|NO.80896

ざっと見しかしてないけど

ファイルの文字数が多いんじゃないかな?
確か12文字までだった気がする

wavの再生モードが終了まで待つがあるのがまずいかも?

mmloadで使うバッファ番号が、多分ゲームを進める度に増えてる様です
バッファに30個くらい読み込むと落ちるみたい?
なので、mp3はバッファ0、wavはバッファ1で統一してみるとか

#module
#deffunc snd str FILE, int mode
FILE_NAME=FILE
exist FILE_NAME : if strsize<1 : return

if strmid(FILE_NAME,-1,3)="mp3" {
nom=0
mmload FILE_NAME,nom,1
}
if strmid(FILE_NAME,-1,3)="wav" {
nom=1
mmload FILE_NAME,nom,mode
}

mmplay nom
return
#global


snd "omoide_loft.mp3"
snd "huku-attack04.wav"



エイカ

リンク

2017/8/11(Fri) 13:15:21|NO.80897

>名無しさま

早速のアドバイス、ありがとうございます

ファイルの文字数については自分も少し不安だったので
12文字制限などを調べてみて
いずれ守るようにしていきます

wavの再生モードが待つのがあるのは
直ぐに直して実験できるので
時間取れ次第、させて頂きます

mmloadのバッファ番号がたしかに一番怪しいのですが
一応、各種BGMは1番、キャラの音声は2番から4番
あとは各種効果音と主題歌辺りしか使ってないので
30個オーバーはしてないはずなのですが
何回もmmloadの設定をループ処理させているので
そこがまずいかもしれません

mmloadに関しては半分お手上げです
名無しさんが提示されたスプリクトも
さっぱりわからないので
困っております

まだまだ、アドバイスは受け付けておりますので
何かありましたらよろしくお願いします



エイカ

リンク

2017/8/11(Fri) 13:30:21|NO.80898

どうも、お世話になっております

wavの再生モードを0にして試しましたが
結果は変わらずでした

どうも、一度戦闘BGMが止まっても
音のオンオフスイッチで再度mmplay 1を実行すると
再度、戦闘BGMはちゃんと mmplay 1の再生が始まるので
そこがよくわかりません…

wavを再生した時一旦戦闘BGMが止まって
再度 mmplay 1実行でちゃんとまた戦闘BGMは鳴る
しかも、スマホ版のみでの不都合

原因不明状態です…



名無し

リンク

2017/8/11(Fri) 13:42:02|NO.80899

*攻撃開始
clrobj
if (musicon=1)and(攻撃キャラ!99):mmplay 30+攻撃キャラ
if (musicon=1)and(攻撃キャラ=99):mmplay 34

ここのclrobjを削除してみて



エイカ

リンク

2017/8/11(Fri) 13:53:38|NO.80900

>名無しさん

コメント、ありがとうございます

念のため、言われたとおりにやったのですが
そこを削除しちゃうと、バグが直らない上
攻撃中にも各種ボタン入力を受け付けてしまうので
それは出来ないです

申し訳ありませんが。



名無し

リンク

2017/8/11(Fri) 14:13:31|NO.80901

間違えました。
最初に点滅した後にBGMが止まってるので

*攻撃巡回b
gmode 2
redraw 0
gosub *攻撃画面処理
redraw 1
セリフパターン=セリフパターン+1
if セリフパターン=4:セリフパターン=1
音声番号=17+(攻撃キャラ*3)+セリフパターン
gosub *音声呼び出し

ここまでの中に原因があるんじゃないかな
怪しいのは *音声呼び出し の所

あと、gosub *点滅処理 の中で goto があるけど
repeat 5 : gosub *点滅処理 : loop
こうしないとまずいかも

暇だから自分でapkにして試してもいいんだけど
フォルダが2つあってどれをdpmにすればいいのかな?



名無し

リンク

2017/8/11(Fri) 14:16:45|NO.80902

*攻撃巡回b
gmode 2
redraw 0
gosub *攻撃画面処理
redraw 1
セリフパターン=セリフパターン+1
if セリフパターン=4:セリフパターン=1
音声番号=17+(攻撃キャラ*3)+セリフパターン
gosub *音声呼び出し

ここの辺りの行間にdialogを入れて
どのタイミングで止まるのか確認してみて下さい



mirage17

リンク

2017/8/11(Fri) 14:29:21|NO.80903

エイカさんのファイルやソースを見たので、私のわかる範囲でお答えします。
まずはWindows上ではちゃんと動くのに、スマホだと動かないのはよくある話です。
MP3ファイルのファイルサイズも大きいし、WAVファイルも多いので、
スマホにデータ転送したら、スマホで動作確認時に落ちるようでしたら、
音楽・効果音のファイルサイズに問題がありそうです。
私の場合、1分以内のサイズの小さいMP3をフリーBGM・音楽素材MusMus様
http://musmus.main.jp/ )から使用しました。それか、MP3のファイル
サイズを小さくするソフトなどがあれば、使うと良さそうです。
私の過去作では、MP3が6曲、WAVが1音以上だと、スマホのメモリがたらない
みたいで落ちました。
画像ファイルについても、data.dpmファイルにするのですが、画像の縦横が、
2の累乗で、2048×2048の画像サイズ3枚以上だと落ちるスマホがあるようです。
私のホームページのゲーム制作ツール紹介でも、HSPのスマホゲーム開発時の画像を
連結するのに便利な画像連結 addpic などを紹介していて、最近このページを更新したので、
開発補助として、参考になるかもしれません。HSPのスマホアプリ上級者なら、
もっといい案があると思いますので、私は、私のわかる範囲で答えておきます。
ソースを拝見して、壮大なゲームを作ろうとしている事は伝わってきます。
ぜひ、このゲームを完成させて、皆様をあっと言わせるような感動を
体験したいですね。
過去ログを読む限りMP3とWAVの再生の問題は、途中で止まるとの事で、
そのような経験のない、私の想定以上の話なので、
この文章は参考程度にしておいてくださると助かります。
それではよろしくお願いします。



エイカ

リンク

2017/8/11(Fri) 15:27:27|NO.80904

お世話になっております

>名無しさん
音声呼び出しのサブルーチンはたしかに問題ありありなのですが
簡単にここを変えることが出来ないのと
戦闘BGM以外は全て正常に再生されているので
とりあえずはここは放置させて頂きます
申し訳ありません
明らかにこのサブルーチンのどこがよくないのか
あと、どう変えたらいいのかわかった際には
そこを変えることは行います

点滅処理はとりあえずは保留の方向で

apkの仕方は、私はdpmにまとめず
assetsフォルダに全部入れているので
詳しくは省きます
(自力でやってくだされば助かります
スプリクト全公開してるので
見てくださればわかると思います)

>名無しさん
dialogを入れてみるのはいい考えですね
早速やってみます!

>mirage17さん
アドバイス、ありがとうございます!
確かにファイルサイズに問題は少々あるのですが
一応、「戦闘BGMが途中で止まるが
もう一回mmplay 1の実行でちゃんと再生される」事から
そこの問題の可能性はやや低めに感じられます

私の力ではなんとも断言できないのが心苦しいですが



名無し

リンク

2017/8/11(Fri) 15:44:00|NO.80905

分かりました。
やはり、点滅した後にBGMを読み込み直してるのが原因でした

*画面巡回d1 の下に 音楽番号=0 を追加して下さい

あとsubrevのネストが深くなっています
その内にエラーが出るのでサブルーチン内のgotoはやめた方がいいです



エイカ

リンク

2017/8/11(Fri) 15:48:45|NO.80906

皆様、お世話になっております

名無しさまと皆様のご協力により
「どこで落ちてるのか」は
大体の目処を立てることが出来ました


*攻撃開始 clrobj if (musicon=1)and(攻撃キャラ!99):mmplay 30+攻撃キャラ if (musicon=1)and(攻撃キャラ=99):mmplay 34 *攻撃巡回a gosub *点滅処理 goto *攻撃巡回a *攻撃巡回b gmode 2 redraw 0 gosub *攻撃画面処理 redraw 1 dialog "表示後",0 セリフパターン=セリフパターン+1 if セリフパターン=4:セリフパターン=1 音声番号=17+(攻撃キャラ*3)+セリフパターン dialog "音声呼び出し直前",0 gosub *音声呼び出し dialog "音声呼び出し後",0 if (攻撃キャラ!99)and(musicon=1):mmplay 1+攻撃キャラ;女の子セリフ dialog "音声発声後",0 await 3000 *攻撃巡回c

こうdialogを入れたところ

「音声呼び出し直前」のダイアログではまだ戦闘BGMは鳴っており
「音声呼び出し後」のダイアログで、戦闘BGMが止まったので
原因はほぼ、*音声呼び出しのサブルーチンにあります

とりあえず、至急で別解決方法をやってみますので
また、よろしくお願いします



エイカ

リンク

2017/8/11(Fri) 15:57:58|NO.80907

名無しさま、ありがとうございます!
言われたとおりに音楽番号=0を入れたところ
見事に、戦闘BGMが流れるようになりました!
感謝です!

皆ままから今回ご指摘いただいた点は
直せるものから順に直していきますし
名無しさまからのアドバイスのネストについても
調べられる範疇で調べさせていただきますので
引き続き、皆様よろしくお願いします!

…mmloadで同一ファイルを二回連続で呼び出すのがよくなかったのかな?



エイカ

リンク

2017/8/11(Fri) 16:08:24|NO.80908

なお、残して置ける限りは
今回のバグあり版も、アップローダーに残しておくので
必要な方はどうぞ、です。



名無し

リンク

2017/8/11(Fri) 16:09:29|NO.80909

win版とandroidで挙動が少し違うようで、
winだと同一ファイルは読み込み回避してくれるけど
androidでは読み込み直してしまい、そこで止まってしまうみたいですね

あとげーむで気になったのがawait 4000 とかwav再生まで待つとかで
ゲームのテンポが悪いです。
タップしたら飛ばせるようにして欲しいかな
こんな感じで

repeat 4000
mtinfo tap
if tap>0 : break
await 1
loop



エイカ

リンク

2017/8/11(Fri) 16:13:08|NO.80910

>名無しさん
ゲームのテンポに関しては後日にでも少し考えてみます
ありがとうございます



エイカ

リンク

2017/8/11(Fri) 16:19:56|NO.80911

>名無しさん
テンポに関しては、今少しだけ考えてみたら
たしかに長時間やると長くなるので、だれてきそうですね

そのアイデア、ありがたく頂きます
スプリクト教えていただき、ありがとうございます
直せる時に直します!



エイカ

リンク

2017/8/11(Fri) 16:25:32|NO.80912

>名無しさん

とりあえずはawaitをそのスプリクトに変えれるところは変えました
ありがとうございます!



Drip

リンク

2017/8/11(Fri) 16:32:04|NO.80913

Dripです。エイカさん、名無しさん、申し訳ありませんがこのスレッドは
「2017年8月現在、dishをAndroid上で動かした時に発生する現状直ってない不具合」
に関して情報を募るためのスレッドです。問題の原因が判明した以上、
無関係な話題でスレッドを伸ばす行為はご遠慮ください。
ここまでの内容をまとめますと、

■mmloadの動作は同曲を再生中にmmloadした場合、標準版では再生が続くがDishでは止まってしまう

ということだけですが、再生中の曲と同じバッファに曲を読み込む行為自体
トリッキーな記述方法かと思いますので、これはHSP側で仕様を統一してほしいと
思う反面ソースコード側の改善で回避できる問題かと思います。

エイカさん
これ以上自身のゲームの改善に関して話題を継続したい場合は別スレッドにてお願いいたします。



エイカ

リンク

2017/8/11(Fri) 16:34:32|NO.80914

>Dripさん
了解しました。



おぼ

リンク

2017/8/12(Sat) 17:41:31|NO.80925

お世話になっております。おぼです。

Android 7で実施しました。Dishが対応していないのでAndrid 5 の設定でビルドしました。

ここの趣旨に合っているのかはわかりませんが、Dishで作ったApkをインストールし開こうとすると、次のような画面が出ます。

http://fast-uploader.com/file/7058082233456/


Detected probrems with app native libraries (please consult log for detail): libshoot.so:text relocations

です。

一様投稿いたします。よろしくお願いいたします。



ONION software Copyright 1997-2023(c) All rights reserved.