Files
healer-man/docs/ROM_MEDIA_BATCH_PLAN.md
T
2026-09-25 18:46:09 -04:00

5.7 KiB

RuneWaker media batch plan

Generated by npm run effects:rom:plan from the current primary-five spell manifest and decoded ROS archive. It groups remaining controller and timing work. The manifest generator already attaches source direct audio events at supported phase boundaries.

The archive has 170 unique models: 74 ready, 1 partial original, 0 fully decoded but unverified, 95 blocked, and 0 failed. 125 of 129 source spell entries have at least one packaged audio cue.

Shared controller blockers

Counts overlap when a model has several controller families. A family should be ported and verified once against representative models before its other users are considered for promotion.

Controller family Models Source spell IDs using those models
CRuController_EventTrigger 148 124
CRuController_GlobalAlpha 47 49
CRuEntity_Particle_Visualizer_Entity 35 44
CRuController_Particle_Visualizer_Entity 34 43
CRuController_GlobalColor 26 26
RuneWaker browser emitter geometry mode 18 21
CRuController_Decal 17 17
CRuController_GhostTrail 11 15
CRuController_Hierarchy 11 12
CRuController_Entity 5 4
RuneWaker browser sprite mode 5 5
CRuController_UVFX 3 3
CRuController_MaterialTexture 1 1
CRuController_PolyLine 1 1

Fully decoded models awaiting visual review

Source model Spell-phase references Sprite layers Blockers

Event-only models still blocked

These models have sprite data but include an event callback outside the validated visual-only set. Effect-spawning and projectile-flight callbacks require browser behavior before their visuals can be promoted.

Source model Spell-phase references Sprite layers Blockers
model/fx/skill/ice/act_cone01_c_hand.ros 3 12 CRuController_EventTrigger
model/fx/skill/fire/act_fireball02_t_hit_point.ros 1 5 CRuController_EventTrigger
model/fx/skill/holy/act_armorup_c_top.ros 1 8 CRuController_EventTrigger
model/fx/skill/physical/act_concentration_t_top.ros 1 3 CRuController_EventTrigger
model/fx/skill/physical/act_focus_c_top.ros 1 4 CRuController_EventTrigger
model/fx/skill/physical/act_fracture01_t_freeze_hit.ros 1 6 CRuController_EventTrigger

There are 6 event-only models. The archive also exposes 3 model/phase audio-event candidates missing from the current packaged manifest. They need delayed timing or a later lifecycle phase; an ROS motion name alone is insufficient. Full per-model evidence is in docs/ROM_MEDIA_BATCH_PLAN.json.

Largest blocker combinations

Controller signature Models Source spell IDs Example model
CRuController_EventTrigger + CRuController_Particle_Visualizer_Entity + CRuEntity_Particle_Visualizer_Entity 13 20 model/fx/skill/earth/act_casting_c_hand.ros
CRuController_EventTrigger 9 11 model/fx/skill/fire/act_fireball02_t_hit_point.ros
CRuController_Decal + CRuController_EventTrigger + CRuController_GlobalAlpha + CRuController_GlobalColor 8 8 model/fx/skill/earth/act_vriusinfection_t_freeze_down_e.ros
CRuController_EventTrigger + CRuController_GlobalAlpha 6 7 model/fx/skill/fire/act_fireball01_c_hand_i.ros
CRuController_EventTrigger + CRuController_GlobalAlpha + CRuController_Particle_Visualizer_Entity + CRuEntity_Particle_Visualizer_Entity 5 6 model/fx/skill/holy/act_chain_t_down.ros
CRuController_EventTrigger + CRuController_Particle_Visualizer_Entity + CRuEntity_Particle_Visualizer_Entity + RuneWaker browser emitter geometry mode 5 5 model/fx/skill/holy/act_moist_t_down.ros
CRuController_EventTrigger + RuneWaker browser emitter geometry mode 5 8 model/fx/skill/physical/act_deep_thought_c_down_e.ros
CRuController_Particle_Visualizer_Entity + CRuEntity_Particle_Visualizer_Entity 4 10 model/fx/skill/dark/act_dark_hand_wave_c_hand_e.ros
CRuController_Decal + CRuController_Entity + CRuController_EventTrigger + CRuController_GlobalAlpha + CRuController_GlobalColor 2 1 model/fx/skill/holy/act_scrifice_healing_c_freeze_down_e.ros
CRuController_Entity + CRuController_EventTrigger 2 2 model/fx/skill/holy/act_judgement_t_hit_point.ros
CRuController_EventTrigger + CRuController_GhostTrail + CRuController_GlobalAlpha 2 4 model/fx/skill/fire/act_fireball02_f.ros
CRuController_EventTrigger + CRuController_GhostTrail + CRuController_GlobalAlpha + CRuController_GlobalColor + CRuController_Hierarchy 2 2 model/fx/skill/physical/act_deflecting_shot_f.ros
CRuController_EventTrigger + CRuController_GhostTrail + CRuController_Particle_Visualizer_Entity + CRuEntity_Particle_Visualizer_Entity 2 2 model/fx/skill/ice/act_icearrow_f.ros
CRuController_EventTrigger + RuneWaker browser emitter geometry mode + RuneWaker browser sprite mode 2 2 model/fx/skill/physical/act_attackspeedup_c_down.ros
CRuController_Decal + CRuController_Entity + CRuController_GlobalAlpha + CRuController_GlobalColor + RuneWaker browser emitter geometry mode + RuneWaker browser sprite mode 1 1 model/fx/skill/physical/act_beckon_holy_c_freeze_down_e.ros

Batch workflow

  1. Run npm run effects:rom:batch to refresh source links, package audio and ROS graphs, attach verified phases, and rebuild this plan.
  2. Review the remaining event timing candidates and largest shared blocker families above.
  3. Port one controller family in the exporter/WebGL runtime and add a parser check that every promoted graph is renderable.
  4. Regenerate the manifest and media audit, replay representative graphs in the RuneWaker preview, then spot-check distinct motion and attachment patterns in live combat.