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

75 lines
2.4 KiB
Markdown
Raw Normal View History

2025-01-26 13:44:50 +08:00
# 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**。
2025-01-27 21:18:10 +08:00
## 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置空。
2025-01-26 13:44:50 +08:00
## HitBoxFrame
2025-01-27 21:18:10 +08:00
HitBoxFrame => SceneComponent
CustomEvent
- InitializeFrame
- UpdateFrame
- DestroyFrame