BlueRoseNote/02-Note/DAWA/2025.1.26格斗游戏笔记.md

75 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Class
## FightGameAction
FightGameAction => GameAction => HitBoxAction => Actor
CustomEvent
- 继承事件:
- ActionStart取得当前Pawn并且赋予FgPawn变量以及当前AnimInstance赋予PawnAnim。
- SpecialEvent调用IsParry()来判断是否是格挡事件如果是就调用Parry事件。
- StrikeEvent
1. StrikeFeedback触发对应的反馈效果。包括粒子、声音、力、镜头摇晃。
2. ApplyHitDamage应用伤害。
- OtherEvent其他Hit逻辑。
- 新事件:
- Parry格挡事件。
- Freeze硬直效果。
- ResetFreeze重置硬直效果。
### HitBoxAction
Component
- HitBoxEditor编辑用组件用于编辑每帧Action时切换指定Index的帧。***ComponentTag"hb.Editor"***
- FrameSlider
- FrameIdTx
- AnimSlider
Method
- Initialize()
1. SetOwner()
2. SetFrameList()遍历所有HitBoxFrameComponent并且根据**组件名称**取得FrameID
3. ActionStart()调用ActionStart()事件。
CustomEvent
1. ActionStart
2. HitBox
3. OtherHits
Editor相关
CustomEvent
1. InitializeEditor
2. EditorSliders根据FrameSlider、AnimSlider的当前帧数根据相对Location来记录FrameId来设置显示文字。
3. DestroyEditor
### GameAction
主要实现了HitBox事件。判断是否是StrikeEvent与SpcialEvent后调用StrikeEvent()与SpcialEvent()。
CustomEvent
1. StrikeEvent
2. SpcialEvent
Editor相关
CustomEvent
1. InitializeEditor在父类事件的基础上用相对位移来存储开始播放Montage的初始位置设置到**SkeleMesh->AnimationData->InitialPosition**。
## ActionComponent
>主要使用这个组件来管理当前Action设置HitBoxAction类给ChildActor并且调用HitBoxAction的Initialize并且绑定ActionEvent。
Event
- BeginPlay设置ChildActorComponent到ChildActor变量上。可根据Tag来选择ChildActorComponent。
- EndPlay触发DestoryAction事件。
CustomEvent
- ***SetAction***设置新的HitBoxAction类以及Frame Id。
- SetActionClass()其中SetActionClass的逻辑会调用HitBoxAction的Initialize并且绑定ActionEvent。
- 调用Action类的SetActiveFrame()。
- NewAction依次调用DestoryAction、SetAction事件。
- DestoryAction将ChildActor置空。
## HitBoxFrame
HitBoxFrame => SceneComponent
CustomEvent
- InitializeFrame
- UpdateFrame
- DestroyFrame