{"version":1,"kind":"hwanse-battle-bakuten-effect-review","status":"static-exe-proof-for-bakuten-blade-helper-motion","source":["out/battle_skill_complete_pattern_review.json","out/battle_helper_child_script_review.json","out/cns_rect_review_data.json"],"summary":{"levels":4,"levelsWithHelper":3,"effectFrame":"btl_efc#179","effectRect":{"x":192,"y":224,"w":48,"h":64,"index":179,"asset":"btl_efc","frame":179}},"interpretationNotes":["btl_efc#179는 helper child script의 display.spriteFrame +0x28 = 0x001a00b3에서 직접 나온다.","0x8c는 helper 루프 카운터/수명으로 쓰이며, 3/4단계는 8 gate, 2단계는 12 gate로 초기화된다.","3단계 helper #116은 motion.dx +0x74 = 4px를 가진다. 사용자가 관찰한 옆 이동과 일치한다.","4단계 helper #117은 motion.dx +0x74 = 8px와 motion.targetY +0x84 = -2000px를 가진다. 사용자가 관찰한 상승 이동과 일치한다.","previewMotionX/Y는 EXE motion 파라미터를 타임라인 리뷰용으로 투영한 값이다. 원본 init write는 motionInitWrites에 그대로 남긴다."],"rows":[{"level":1,"skillIdHex":"0x12","skillName":"폭전축","mpCost":15,"actorFrames":["t0:#3@2","t2:#4@3","t5:#4@1","t6:#5@2","t8:#6@2","t10:#6@2","t12:#3@2","t14:#4@4","t18:#0@2"],"helperId":null,"helperScriptVaHex":null,"helperCallTicks":[],"effectFrame":null,"effectRect":null,"motionInitWrites":[],"resultWlkNos":[5],"hitTicks":[8],"motionClass":"actor-only","previewGate":0,"previewMotionX":0,"previewMotionY":0,"interpretation":"1단계는 helper가 없고 actor 프레임만 재생된다."},{"level":2,"skillIdHex":"0x13","skillName":"폭전축","mpCost":15,"actorFrames":["t0:#3@2","t2:#4@3","t5:#4@1","t6:#5@2","t8:#6@2","t10:#6@2","t12:#3@2","t14:#4@4","t18:#0@2"],"helperId":115,"helperScriptVaHex":"0x004baffc","helperCallTicks":[5],"effectFrame":{"sprite":26,"spriteHex":"0x1a","frame":179,"selectorHex":"0x001a00b3"},"effectRect":{"x":192,"y":224,"w":48,"h":64,"index":179,"asset":"btl_efc","frame":179},"motionInitWrites":[{"vaHex":"0x004baffc","subop":"0x02","offset":4,"length":4,"category":"word-write","dest":140,"destHex":"0x8c","destLabel":"motion.paramX +0x8c","value":12,"valueHex":"0x000c","summary":"word motion.paramX +0x8c = 0x000c"},{"vaHex":"0x004baffc","subop":"0x02","offset":8,"length":4,"category":"word-write","dest":142,"destHex":"0x8e","destLabel":"field +0x8e","value":0,"valueHex":"0x0000","summary":"word field +0x8e = 0x0000"},{"vaHex":"0x004baffc","subop":"0x02","offset":12,"length":4,"category":"word-write","dest":144,"destHex":"0x90","destLabel":"motion.paramY +0x90","value":0,"valueHex":"0x0000","summary":"word motion.paramY +0x90 = 0x0000"}],"resultWlkNos":[5],"hitTicks":[8],"motionClass":"single-position-blade-helper","previewGate":12,"previewMotionX":0,"previewMotionY":0,"interpretation":"helper 115는 btl_efc#179를 표시하지만 dx/targetY가 없다. 같은 위치에 머무는 칼날 이펙트로 해석한다."},{"level":3,"skillIdHex":"0x14","skillName":"퍽전축","mpCost":14,"actorFrames":["t0:#3@2","t2:#4@3","t5:#4@1","t6:#5@2","t8:#6@2","t10:#6@2","t12:#3@2","t14:#4@4","t18:#0@2"],"helperId":116,"helperScriptVaHex":"0x004bb0f8","helperCallTicks":[5],"effectFrame":{"sprite":26,"spriteHex":"0x1a","frame":179,"selectorHex":"0x001a00b3"},"effectRect":{"x":192,"y":224,"w":48,"h":64,"index":179,"asset":"btl_efc","frame":179},"motionInitWrites":[{"vaHex":"0x004bb0f8","subop":"0x02","offset":4,"length":4,"category":"word-write","dest":140,"destHex":"0x8c","destLabel":"motion.paramX +0x8c","value":8,"valueHex":"0x0008","summary":"word motion.paramX +0x8c = 0x0008"},{"vaHex":"0x004bb0f8","subop":"0x02","offset":8,"length":4,"category":"word-write","dest":142,"destHex":"0x8e","destLabel":"field +0x8e","value":8,"valueHex":"0x0008","summary":"word field +0x8e = 0x0008"},{"vaHex":"0x004bb0f8","subop":"0x02","offset":12,"length":4,"category":"word-write","dest":144,"destHex":"0x90","destLabel":"motion.paramY +0x90","value":8,"valueHex":"0x0008","summary":"word motion.paramY +0x90 = 0x0008"},{"vaHex":"0x004bb0f8","subop":"0x03","offset":16,"length":8,"category":"dword-write","dest":116,"destHex":"0x74","destLabel":"motion.dx +0x74","value":262144,"valueHex":"0x00040000","valueFixed":4.0,"summary":"dword motion.dx +0x74 = 0x00040000"}],"resultWlkNos":[5,4],"hitTicks":[8,10],"motionClass":"side-blade-helper","previewGate":8,"previewMotionX":32,"previewMotionY":0,"interpretation":"helper 116는 btl_efc#179에 dx=4px, paramX=8, 0x8e=8, paramY=8를 붙인다. 옆으로 흐르는 칼날 이펙트로 해석한다."},{"level":4,"skillIdHex":"0x15","skillName":"폭전축","mpCost":12,"actorFrames":["t0:#3@2","t2:#4@3","t5:#4@1","t6:#5@2","t8:#6@2","t10:#6@2","t12:#3@2","t14:#4@4","t18:#0@2"],"helperId":117,"helperScriptVaHex":"0x004bb11c","helperCallTicks":[5],"effectFrame":{"sprite":26,"spriteHex":"0x1a","frame":179,"selectorHex":"0x001a00b3"},"effectRect":{"x":192,"y":224,"w":48,"h":64,"index":179,"asset":"btl_efc","frame":179},"motionInitWrites":[{"vaHex":"0x004bb11c","subop":"0x02","offset":4,"length":4,"category":"word-write","dest":140,"destHex":"0x8c","destLabel":"motion.paramX +0x8c","value":8,"valueHex":"0x0008","summary":"word motion.paramX +0x8c = 0x0008"},{"vaHex":"0x004bb11c","subop":"0x02","offset":8,"length":4,"category":"word-write","dest":142,"destHex":"0x8e","destLabel":"field +0x8e","value":12,"valueHex":"0x000c","summary":"word field +0x8e = 0x000c"},{"vaHex":"0x004bb11c","subop":"0x02","offset":12,"length":4,"category":"word-write","dest":144,"destHex":"0x90","destLabel":"motion.paramY +0x90","value":4,"valueHex":"0x0004","summary":"word motion.paramY +0x90 = 0x0004"},{"vaHex":"0x004bb11c","subop":"0x03","offset":16,"length":8,"category":"dword-write","dest":116,"destHex":"0x74","destLabel":"motion.dx +0x74","value":524288,"valueHex":"0x00080000","valueFixed":8.0,"summary":"dword motion.dx +0x74 = 0x00080000"},{"vaHex":"0x004bb11c","subop":"0x03","offset":24,"length":8,"category":"dword-write","dest":108,"destHex":"0x6c","destLabel":"field +0x6c","value":65536,"valueHex":"0x00010000","valueFixed":1.0,"summary":"dword field +0x6c = 0x00010000"},{"vaHex":"0x004bb11c","subop":"0x03","offset":32,"length":8,"category":"dword-write","dest":132,"destHex":"0x84","destLabel":"motion.targetY +0x84","value":4163895296,"valueHex":"0xf8300000","valueFixed":-2000.0,"summary":"dword motion.targetY +0x84 = 0xf8300000"}],"resultWlkNos":[5,4,3],"hitTicks":[8,10,12],"motionClass":"rising-blade-helper","previewGate":8,"previewMotionX":64,"previewMotionY":-64,"interpretation":"helper 117는 btl_efc#179에 dx=8px, paramX=8, targetY=-2000px를 붙인다. 상승형 칼날 이펙트로 해석한다."}]}