Linear ArchiveArchived issues viewer
← 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があったので、使う時だけ読むようにした
  • 開くたびにやってた重いネイティブ通信を、不要だから止めた