← Back to list
INS-891
バグ:仲間の強化モーダルを開いたときにノイズ音が入る
StatusDone
TeamInstansys
Assigneeyasuhisa.hiraga@instansys.co.jp
PriorityMedium
Created2026/06/25 23:10
Completed2026/06/29 01:29
Archived2026/07/07 00:53
Bug
Description
- 仲間 > ルーク > 強化モーダル を実機でアプリ起動直後に開くと必ずノイズ音が入る。1度ひらくと2回目は入らない。アプリ落としてもう一度試すとやっぱりノイズ音が入る
調査結果
- BaseModalの背景blurを消してみたが関係なかった
- 仲間ページの背景blurも合わせて消してみたが関係なかった
- なるのは初回だけ(あるいは2回目)
- 一度ノイズが鳴ると、その後は発生しない。
- 祈願ページで、1回祈願の確認モーダルを開いてみたが、ノイズ音はしなかった
- outlinedtext全部のblurを切ってみたけど効果なし(ついでにBaseModalのblurも切ってみた)
- 仲間ページで、所持品一覧モーダルを開いても発生
- 仲間ページで、オプションモーダルを開いても発生しないが、
- 仲間 > キャラクター詳細 でオプションモーダル を開くと発生
- 要素の多いものを重ねると発生しやすいかも。画像の枚数や画像の解像度に関係ありそう。
- ModalBaseではdrop-shadowを2重にかけてる(モーダル本体) > 解除しても変わらず
ModalBaseでプリロードしてる画像がでかいのが多い
┌──────────────┬───────────────┬────────────────────────────────┐
│ 実寸 │ 展開メモリ │ ファイル │
├──────────────┼───────────────┼────────────────────────────────┤
│ 3840×1760 │ 25.7 MB │ confetti.webp │
├──────────────┼───────────────┼────────────────────────────────┤
│ 2670×1215 │ 12.3 MB │ cm-modal-base-1800 │
├──────────────┼───────────────┼────────────────────────────────┤
│ 2520×1125 │ 10.8 MB │ cm-modal-base-1700 │
├──────────────┼───────────────┼────────────────────────────────┤
│ 2220×915 │ 7.7 MB │ cm-modal-base-1500 │
├──────────────┼───────────────┼────────────────────────────────┤
│ 1755×675 │ 4.5 MB │ cm-modal-base-1200-3 │
├──────────────┼───────────────┼────────────────────────────────┤
│ 1770×450 │ 3.0 MB │ cm-modal-base-1200 │
├──────────────┼───────────────┼────────────────────────────────┤
│ 1180×610 │ 2.7 MB │ cm-modal-base-1200-2 │
├──────────────┼───────────────┼────────────────────────────────┤
│ ヘッダー類×4 │ 各1.0〜1.5 MB │ cm-modal-header-base-* │
├──────────────┼───────────────┼────────────────────────────────┤
│ その他 │ 各〜1.3 MB │ modal-base / header-bg / close │
└──────────────┴───────────────┴────────────────────────────────┘
が、使用するものだけをpreloadするようにしてもノイズは変わらず。
大きい画像が問題かという位ことで、1700 の 画像をそもそも使わなくてもノイズ音が出た。
Comments (4)
yasuhisa.hiraga@instansys.co.jp2026/06/26 01:10
<CmDialogBase
onClose={onCancel}
preset="1700"
headerTitle="キャラクター強化"
>
<div className="w-[96.47%] h-[93.51%] absolute custom-center flex flex-col items-center justify-between">
{/* 上部 */}
{/* 下部 */}
<div className="w-full h-[25%] flex items-center justify-center">
かぶ。
</div>
</div>
</CmDialogBase>
描画要素をこれだけしかない状態にしてもノイズなった。
yasuhisa.hiraga@instansys.co.jp2026/06/26 02:31
CharacterEnhanceDialogで、モダールじゃないものを return (<div>てきとう</div>) みたいなものを返した場合、とくにノイズなど発生せず。
yasuhisa.hiraga@instansys.co.jp2026/06/29 00:26
根本的な解決は難しそう。
予想としてBGMやSEなどの再生中に画像の展開(デコード)が行われると、その瞬間に音割れが発生すると予想される。(そのため、すでに展開してキャッシュされている場合、ノイズは走らない)
解決方法(予想)
- 使用されてる素材全般の一枚の大きさを小さくする。特に2048pxを超えるものなど。
- 画像を1枚ずつ順次展開していく
問題点
- ModalBaseのchildrenの内容は千差万別なので1枚ずつ順次展開するなど、ModalBase側で制御できる問題じゃない。
ただノイズを消すだけなら
- 音声ハードニングをする(音割れないように頑丈にする)
- たとえば
- 先読みバッファを増やす
- BGMの再生方式をHTMLAudioのストリーミングじゃなくWebAudioに変える(メモリリークになるからどうだろうか)
- 画像のデコードを音声スレッドから隔離(といってもスレッド操作はできないので、先に画像を読み込んで展開しておくとか、結局は1枚ずつの画像の順次展開など)
yasuhisa.hiraga@instansys.co.jp2026/06/29 00:40
結論としてキャッシュされればノイズはでないので、ここに時間を割くのも微妙そう。
- でかい画像(2048pxを超える)はやめよう
- できるだけ順次展開した方がいいよ
というのが成果。
残す修正として
- ModalBaseで使わない時でも読み込んでたpresetがあったので、使う時だけ読むようにした
- 開くたびにやってた重いネイティブ通信を、不要だから止めた