Phan Melee cua tai lieu nay da duoc doi chieu voi Assets/Invector-3rdPersonController/Melee Combat/Documentation_MeleeCombat.pdf. Tai lieu chinh thuc xac nhan cac quy tac sau:
vMeleeAttackBehaviour.Start Damage va End Damage la normalized time mo/dong damage window.Reset Trigger.vAnimatorTagAdvanced voi LockMovement va LockRotation la co che chinh thuc de khoa dieu khien trong attack state.ATK_ID cua weapon phai tuong ung state machine/moveset dang duoc dung.Phan root motion va phoi hop voi Fantacode Parkour la quy uoc integration cua du an nay; PDF Melee Combat khong dua ra pipeline root-motion rieng cho truong hop Invector + Fantacode.
Tai lieu nay huong dan dua bo animation Twin Kunai vao nhan vat su dung Invector Melee Combat. Ket qua mong muon la:
Tai lieu ap dung cho Kunai_Invector_Parkour, nhung co the dung cho prefab Invector Melee khac co cung skeleton Avatar.
Nguoi thiet ke chi can cung cap mot bang cho moi don:
| Truong | Vi du |
|---|---|
| Clip | Kunai_Combo_01 |
| Loai | Combo 1-4 hoac single skill |
| ATK_ID / moveset | 0, Kunai |
| Start Damage / End Damage | 0.23 / 0.48 |
| Combo window | 0.58 den 0.78 |
| Root motion | Tai cho, lao toi, hoac finisher |
| Body parts gay damage | Tay phai, tay trai, kunai |
| Recoil/Reaction ID va damage | Gia tri gameplay |
Codex thuc hien cac phan con lai bang MCP Unity, sau khi nguoi thiet ke xac nhan bang nay:
get_animator_controller de kiem tra parameter, layer va state machine dang ton tai; khong doan ten trigger/ATK_ID.ensure_animator_state, ensure_animator_transition, ensure_animator_parameter va save_animator_controller de tao state va transition lap lai duoc.scene_hierarchy, get_component_properties, add_component va set_component_property de kiem tra/gia gan Melee Manager, weapon, hitbox va component tren nhan vat.MCP hien co chua co tool gan StateMachineBehaviour vao Animator state hoac set serialized field cua vMeleeAttackBehaviour/vAnimatorTagAdvanced. Day la phan Codex can bo sung editor automation vao MCP truoc khi tu dong hoa hoan toan; khong day viec nay sang nguoi thiet ke. Trong luc chua co tool, Codex phai dung script Editor co kiem tra idempotent thay vi yeu cau thao tac thu cong tren Animator.
Dat ten ro rang truoc khi tao Animator state:
| Loai | Vi du ten clip | Hanh vi |
|---|---|---|
| Combo | Kunai_Combo_01 |
Mo dau combo tu idle/move |
| Combo | Kunai_Combo_02 |
Noi tiep tu vi tri ket thuc cua don 1 |
| Combo | Kunai_Combo_03 |
Noi tiep tu don 2 |
| Combo | Kunai_Combo_04 |
Finisher, co the co root motion manh hon |
| Skill | Kunai_Skill_Dash |
Single skill co the lao toi |
| Skill | Kunai_Skill_Spin |
Single skill tai cho hoac xoay |
| Skill | Kunai_Skill_Finisher |
Single skill full-body |
Neu clip combo da duoc author de noi motion, khong dung transition ve Idle giua cac don. Transition phai di truc tiep tu state combo hien tai sang state combo ke tiep.
Rig: dat Animation Type = Humanoid, Avatar phai khop voi Avatar cua Kunai_Invector_Parkour.Animation: tach tung clip thanh asset clip rieng neu FBX chua tach.Bake Into Pose cho Root Transform Position (XZ) neu clip co drift khong mong muon.Root Transform Rotation. Bake rotation neu gameplay phai giu huong cua Invector; giu rotation neu chieu quay la mot phan cua skill.Khong sua root transform bang cach dich model trong scene. Sua o import settings cua clip de ket qua giong nhau tren Editor va iOS.
Phan nay ap dung khi nhan vat chi co bon clip locomotion thiet ke rieng: Idle, Walk, Run, Sprint. Khong co clip re trai/phai va khong thay the animation jump, falling, landing, roll, ladder hoac parkour cua Invector va Fantacode.
vThirdPersonController, Codex set locomotionType = OnlyFree va chi dung freeSpeed.InputMagnitude. Invector cap nhat parameter nay trong vThirdPersonAnimator.Walk_Left, Walk_Right, Run_Left hoac Run_Right.Codex dung MCP de export controller truoc, xac nhan Base Layer locomotion state dang dung InputMagnitude, roi thay motions cua Blend Tree bang bon clip duoc chi dinh. Trong implementation Invector hien tai, cac gia tri dinh nghia la walkSpeed = 0.5, runningSpeed = 1.0, sprintSpeed = 1.5.
Threshold InputMagnitude | Clip |
|---|---|
0.0 | Idle |
0.5 | Walk |
1.0 | Run |
1.5 | Sprint |
Khong dung threshold theo met/giay. Day la gia tri Animator ma vThirdPersonAnimator.SetAnimatorMoveSpeed da tinh tu input va trang thai sprint, khop voi freeSpeed.walkByDefault cua Invector.
walkSpeed, runningSpeed, sprintSpeed.get_animator_controller de tim dung Base Layer state va parameter, sau do goi ensure_animator_blend_tree neu state chua co Blend Tree 1D.set_animator_blend_tree_motions de gan bon clip va threshold tren; khong xoa state jump/airborne/landing.get_component_properties va set_component_property de set locomotionType, freeSpeed va toc do tren vThirdPersonController.Neu controller dang co strafe layer/state machine cu, Codex giu lai asset de tranh lam mat reference, nhung vo hieu hoa duong vao bang OnlyFree; khong can xoa tay cac state do.
Mac dinh de locomotion nay non-root-motion de Invector motor dieu khien vi tri va collision. Chi bat root motion cho attack/skill da duoc quy dinh o phan sau. Cach nay giu toc do va khoang cach animation on dinh tren mobile, dong thoi khong anh huong jump va Parkour.
Invector@MeleeCombat.controller; khong sua asset demo goc.Assets/Character/Kunai_Invector_Melee.controller de phu hop rang buoc cua MCP create_animator_controller; hoac dung editor automation cua Codex de copy controller den thu muc du an da duoc phep.TwinKunai Combo va TwinKunai Skills trong melee layer full-body phu hop.Dung layer full-body cho don co root motion, dash, xoay toan than, hoac can khoa parkour. Chi dung upper-body cho don danh tai cho ma van cho phep locomotion.
Tao cac state Combo_01 den Combo_04, moi state gan mot clip tuong ung. Tat Loop Time cho cac clip tan cong.
Combo_01 la diem vao tu state attack dau tien cua Invector. Cac state sau khong duoc co transition tu Locomotion hoac Idle; chi duoc vao tu don truc tiep dung truoc no.
Tao transition theo chuoi:
Combo_01 -> Combo_02 -> Combo_03 -> Combo_04 -> Locomotion
Cho moi transition Combo_N -> Combo_N+1:
vMeleeAttackControl da quan ly attack input va buffer.Has Exit Time theo cuoi pha active cua don, khong dat o frame cuoi cua clip. Vi du: 0.55-0.8, tuy animation.Transition Duration ngan, thuong 0-0.08. Transition dai se lam tay va kunai blend ve pose idle va pha vo duong kiem.Cua so combo la khoang normalized time ma input ke tiep duoc buffer. Nen bat dau sau hit frame va ket thuc truoc recovery frame. Neu cho phep buffer qua som, nguoi choi co the vo tinh bo qua nhip cua don hien tai; qua muon thi combo cam giac khong responsve.
Tren moi attack state, Codex phai gan va cau hinh vMeleeAttackBehaviour. Theo PDF chinh thuc, day la component bat buoc cua attack state, khong chi la mot attack entry trong script input.
Start Damage va End Damage theo bang do nguoi thiet ke cung cap. Hitbox chi gay damage trong khoang nay.Melee Attack Type la Unarmed hoac Melee Weapon dung voi kunai.Recoil ID, Reaction ID, Attack Name, Ignore Defense va Active Ragdoll neu gameplay yeu cau.vMeleeWeapon can co hitbox trong HitBoxes List; weapon phai dung tag Weapon va layer Ignore Raycast theo PDF.Reset Trigger chi tren Combo_04 (hoac state ket thuc thuc te). Cac don giua khong reset combo.ATK_ID cua weapon va state machine tuong ung. Khong dung vRandomAttackBehaviour cho chuoi combo co thu tu co dinh.vMeleeManager phai co HitDamageTags chua tag cua cac target duoc phep nhan damage. Day la cau hinh rieng voi hitbox va thuong bi bo sot khi chi test animation.
Neu controller hien tai dung attack index/trigger khac voi demo, hay mo Animator trong Play Mode va quan sat parameter thuc su thay doi khi bam attack. Day la nguon su that cho condition cua transition.
Moi skill la mot state full-body doc lap: Skill_Dash, Skill_Spin, Skill_Finisher.
vMeleeAttackBehaviour, khong dung vGenericAction chi de khoa input.vAnimatorTagAdvanced tren state voi LockMovement va LockRotation trong khoang normalized time can khoa. Day la co che duoc PDF chi dinh.Skill -> Locomotion dung Has Exit Time = 1; chi mo sau recovery frame o cuoi clip.vGenericAction chi dung cho skill co ngu canh/interaction, vi du bam nut tai mot trigger va MatchTarget vao vi tri cu the. Neu dung Generic Action, state animation phai co vAnimatorTag CustomAction theo PDF.
Skill phai co mot duong thoat duy nhat, ro rang. Neu co cancel window, tao mot transition rieng va chi bat no trong normalized-time da duoc author, thay vi de Any State co the chen vao bat ky luc nao.
Invector controller trong du an duoc thiet ke uu tien non-root-motion cho locomotion thuong. Vi vay root motion cua tan cong la ngoai le co kiem soat.
Animator.applyRootMotion = false cho state nay.extra move speed / movement co kiem soat cua Invector thay vi root motion ngoai y muon.vThirdPersonMotor.Khong dat Animator.applyRootMotion thanh true toan cuc neu chi mot vai state can no. Nhieu state di/chay/parkour trong nhan vat dang do Invector va Fantacode phoi hop dieu khien.
ParkourController.InAction hoac IsHanging la true, khong cho entry vao combo/skill, tru khi thiet ke mot action rieng.Combo_01 tu idle: animation, hitbox, damage, va return locomotion.Combo_01 -> Combo_02. Khong duoc co frame ve idle hoac snap vu khi.InputMagnitude voi threshold 0, 0.5, 1, 1.5.locomotionType la OnlyFree; khong co strafe state dang duoc vao.vMeleeAttackBehaviour.Reset Trigger.vAnimatorTagAdvanced khoa movement/rotation dung normalized-time.