Linear ArchiveArchived issues viewer
← Back to list
INS-849

シナリオ再生で、voice発声のたびにAudioメモリが積み上がっていく問題

StatusDone
TeamInstansys
Assigneeasuki.uehata@instansys.co.jp
PriorityMedium
Created2026/06/15 03:58
Completed2026/06/15 04:29
Archived2026/06/22 04:59
Bug

Description

iOS WKWebView 音声メモリリーク対策(docs/audio-memory-leak-handoff.md)の続き。 ハンドオフ時点の リークA(シナリオ Luna 音声が endScenarioSession まで解放されない問題)は、SoundManager._scenarioOwnedAliases 集合 + endScenarioSession での _releaseAllScenarioOwnedAliases() 一括解放で セッション単位では解決済み(sound.ts:1853 / :1893 / :1917)。 ただし実機 Safari で Object.keys(window.__pixiSound._sounds) を監視したところ、シナリオ再生中(セッション継続中)はキャラが喋るたびに alias が積み増す ことが確認された。長尺のメインクエスト/イベントだと このリスクは顕著に出てくるため対策を検討する

Comments (1)

asuki.uehata@instansys.co.jp2026/06/15 04:07

(これまでの調査内容の共有) ・シナリオを抜けると解放されている。 ・シナリオを抜けるまでは、voice が メモリ蓄積してしまう問題。

ーーーー

3-1 ステージ 選択画面

ーーー

["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (19)
["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (19)

ーーーー 3-1 ストーリー開始時点

["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (13)
["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (13)

不要なボイスは、 10 "voices/alta/call_instansys.m4a" 11 "voices/alta/call_title.m4a" ーーー キャラが喋る度に voice メモリ確保が積み上がる

["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (15) ーーー ["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (17) ーー ["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (20)

ーーー^ ["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (23) ーー ["se/blessing-levelup.mp3", "se/cancel.m4a", "se/chapter-unlock.m4a", "se/charin.mp3", "se/click.m4a", "se/confetti.m4a", "se/fanfare.mp3", "se/melt-weapon.mp3", "se/start.mp3", "se/upgrade-fail.mp3", …] (26)

Array (26) = $9
0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"voices/alta/call_instansys.m4a"
11
"voices/alta/call_title.m4a"
12
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/sounds/sounds/e105a489-0ab7-4dfa-bb93-db494318d6c2/6a9a2919-7a8e-43e8-b61f…"
13
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/84604a5b-a4d0-45…"
14
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/d845012b-cf71-48…"
15
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/eba5cb83-c398-4c62-aa47-28c6bc769cab/bcc99c18-d180-4c…"
16
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/73cd225a-3ed1-4f…"
17
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/eba5cb83-c398-4c62-aa47-28c6bc769cab/20c856c3-be75-47…"
18
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/830f918c-f14c-4d…"
19
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/8317912c-d38b-42…"
20
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/sounds/sounds/e105a489-0ab7-4dfa-bb93-db494318d6c2/6c10b55c-59fd-4b95-ad9f…"
21
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/2676834b-838c-41…"
22
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/57d19893-4df8-4a…"
23
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/c78b3cef-8e70-42…"
24
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/d540e95e-93c4-4f…"
25
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/b2d083e9-fb57-4e…"

Arrayプロトタイプ
Array (26) = $9
0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"voices/alta/call_instansys.m4a"
11
"voices/alta/call_title.m4a"
12
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/sounds/sounds/e105a489-0ab7-4dfa-bb93-db494318d6c2/6a9a2919-7a8e-43e8-b61f…"
13
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/84604a5b-a4d0-45…"
14
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/d845012b-cf71-48…"
15
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/eba5cb83-c398-4c62-aa47-28c6bc769cab/bcc99c18-d180-4c…"
16
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/73cd225a-3ed1-4f…"
17
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/eba5cb83-c398-4c62-aa47-28c6bc769cab/20c856c3-be75-47…"
18
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/3944ef8c-916a-47ae-ac44-7f81d0c77478/830f918c-f14c-4d…"
19
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/8317912c-d38b-42…"
20
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/sounds/sounds/e105a489-0ab7-4dfa-bb93-db494318d6c2/6c10b55c-59fd-4b95-ad9f…"
21
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/2676834b-838c-41…"
22
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/57d19893-4df8-4a…"
23
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/c78b3cef-8e70-42…"
24
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/303d592e-5ae5-49db-b468-60ab2e4abcb4/d540e95e-93c4-4f…"
25
"https://utsaqkhxqllqkazxzhow.supabase.co/storage/v1/object/public/entity-states/audios/b857bf9f-0dfc-4fe4-8338-1e3d1e560e76/b2d083e9-fb57-4e…"

Arrayプロトタイプ

ーー 積み上がるが、戦闘開始時には、一応 解放されていた。

Array (58) = $10
0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"sounds/se/battle/skill.mp3"
11
"sounds/se/battle/common/battle_start.m4a"
12
"sounds/se/battle/common/battle_clear.mp3"
13
"sounds/se/battle/common/battle_failed.mp3"
14
"sounds/se/battle/common/clear_impact.mp3"
15
"sounds/se/battle/common/nova_fire.m4a"
16
"sounds/se/battle/common/revival_shockwave.m4a"
17
"sounds/se/status_effects/freeze.ogg"
18
"sounds/se/status_effects/electric_shock.ogg"
19
"sounds/se/battle/barrier/barrier_crash_1.ogg"
20
"sounds/se/battle/barrier/barrier_crash_2.ogg"
21
"sounds/se/battle/barrier/barrier_crash_3.ogg"
22
"sounds/se/battle/buff.m4a"
23
"sounds/se/battle/debuff.m4a"
24
"sounds/se/battle/heal.m4a"
25
"sounds/se/battle/repair_shield.m4a"
26
"sounds/se/battle/skill_increase_charge.m4a"
27
"sounds/se/battle/decoy.m4a"
28
"sounds/se/battle/burst_charged.mp3"
29
"sounds/se/battle/enemies/enemy_slime_attack.m4a"
30
"sounds/se/battle/enemies/enemy_slime_skill_bite.m4a"
31
"sounds/se/battle/enemies/enemy_golem_attack.m4a"
32
"voices/alta/burst_1.m4a"
33
"voices/alta/burst_2.m4a"
34
"sounds/se/battle/normal_lanhua.m4a"
35
"voices/luke/standby_1.m4a"
36
"voices/luke/standby_2.m4a"
37
"voices/luke/burst_1.m4a"
38
"voices/luke/burst_2.m4a"
39
"voices/luke/damage_1.m4a"
40
"voices/luke/damage_2.m4a"
41
"voices/luke/down.m4a"
42
"voices/mayaya/standby_1.m4a"
43
"voices/mayaya/standby_2.m4a"
44
"voices/mayaya/burst_1.m4a"
45
"voices/mayaya/burst_2.m4a"
46
"voices/mayaya/damage_1.m4a"
47
"voices/mayaya/damage_2.m4a"
48
"voices/mayaya/down.m4a"
49
"sounds/se/battle/normal_luke.m4a"
50
"sounds/se/battle/skill1_luke.m4a"
51
"sounds/se/battle/skill2_luke.m4a"
52
"sounds/se/battle/burst_luke.m4a"
53
"sounds/se/battle/normal_mayaya.m4a"
54
"sounds/se/battle/skill1_mayaya.m4a"
55
"sounds/se/battle/skill2_mayaya.m4a"
56
"sounds/se/battle/burst_mayaya.m4a"
57
"sounds/bgm/battle01.m4a"

Arrayプロトタイプ
Array (58) = $10
0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"sounds/se/battle/skill.mp3"
11
"sounds/se/battle/common/battle_start.m4a"
12
"sounds/se/battle/common/battle_clear.mp3"
13
"sounds/se/battle/common/battle_failed.mp3"
14
"sounds/se/battle/common/clear_impact.mp3"
15
"sounds/se/battle/common/nova_fire.m4a"
16
"sounds/se/battle/common/revival_shockwave.m4a"
17
"sounds/se/status_effects/freeze.ogg"
18
"sounds/se/status_effects/electric_shock.ogg"
19
"sounds/se/battle/barrier/barrier_crash_1.ogg"
20
"sounds/se/battle/barrier/barrier_crash_2.ogg"
21
"sounds/se/battle/barrier/barrier_crash_3.ogg"
22
"sounds/se/battle/buff.m4a"
23
"sounds/se/battle/debuff.m4a"
24
"sounds/se/battle/heal.m4a"
25
"sounds/se/battle/repair_shield.m4a"
26
"sounds/se/battle/skill_increase_charge.m4a"
27
"sounds/se/battle/decoy.m4a"
28
"sounds/se/battle/burst_charged.mp3"
29
"sounds/se/battle/enemies/enemy_slime_attack.m4a"
30
"sounds/se/battle/enemies/enemy_slime_skill_bite.m4a"
31
"sounds/se/battle/enemies/enemy_golem_attack.m4a"
32
"voices/alta/burst_1.m4a"
33
"voices/alta/burst_2.m4a"
34
"sounds/se/battle/normal_lanhua.m4a"
35
"voices/luke/standby_1.m4a"
36
"voices/luke/standby_2.m4a"
37
"voices/luke/burst_1.m4a"
38
"voices/luke/burst_2.m4a"
39
"voices/luke/damage_1.m4a"
40
"voices/luke/damage_2.m4a"
41
"voices/luke/down.m4a"
42
"voices/mayaya/standby_1.m4a"
43
"voices/mayaya/standby_2.m4a"
44
"voices/mayaya/burst_1.m4a"
45
"voices/mayaya/burst_2.m4a"
46
"voices/mayaya/damage_1.m4a"
47
"voices/mayaya/damage_2.m4a"
48
"voices/mayaya/down.m4a"
49
"sounds/se/battle/normal_luke.m4a"
50
"sounds/se/battle/skill1_luke.m4a"
51
"sounds/se/battle/skill2_luke.m4a"
52
"sounds/se/battle/burst_luke.m4a"
53
"sounds/se/battle/normal_mayaya.m4a"
54
"sounds/se/battle/skill1_mayaya.m4a"
55
"sounds/se/battle/skill2_mayaya.m4a"
56
"sounds/se/battle/burst_mayaya.m4a"
57
"sounds/bgm/battle01.m4a"

Arrayプロトタイプ

^^^ 戦闘中断終了後 最小限のAudioメモリ確保になった。

0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"sounds/bgm/result_lose.m4a"
0
"se/blessing-levelup.mp3"
1
"se/cancel.m4a"
2
"se/chapter-unlock.m4a"
3
"se/charin.mp3"
4
"se/click.m4a"
5
"se/confetti.m4a"
6
"se/fanfare.mp3"
7
"se/melt-weapon.mp3"
8
"se/start.mp3"
9
"se/upgrade-fail.mp3"
10
"sounds/bgm/result_lose.m4a"

ーーー

ーー