Init
This commit is contained in:
13
02-Note/DAWA/福瑞格斗项目/FighterGameTemplateProject笔记.md
Normal file
13
02-Note/DAWA/福瑞格斗项目/FighterGameTemplateProject笔记.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 摄像机控制逻辑
|
||||
调用逻辑位于`BP_Sub_Controller`中的若干接口:
|
||||
- Event
|
||||
- Init_Camera
|
||||
- BPI OFF SP Camera
|
||||
- BPI SP Camera ON
|
||||
- BPI USM Camera ON
|
||||
- BPI Initi SP&USM Camera
|
||||
-
|
||||
- Interface
|
||||
...
|
||||
|
||||
具体实现逻辑位于Character中。
|
94
02-Note/DAWA/福瑞格斗项目/HitBoxBlueprint笔记.md
Normal file
94
02-Note/DAWA/福瑞格斗项目/HitBoxBlueprint笔记.md
Normal file
@@ -0,0 +1,94 @@
|
||||
|
||||
# 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:**根据FrameSlider的Location来设置HitBoxFrame**,该逻辑会在ConstructScript中被调用,每移动一次就会被调用一次。
|
||||
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:取得所有ChildrenComponent(HitBox),并且加入BodyList中。并且对每个HitBox调用InitializeHitBox()
|
||||
- UpdateFrame:判断FrameId,销毁旧OldFrame创建新的。
|
||||
- DestroyFrame:
|
||||
|
||||
# AnimNotify
|
||||
## FrameNotify
|
||||
- RecivedNotify:调用SetNewAction()
|
||||
1. 通过SkeletalMeshComponent取得OwnerActor
|
||||
2. 取得ActionComponent
|
||||
3. 根据StartAction执行对应的逻辑
|
||||
1. true,ActionComponent->NewAction()
|
||||
2. false, 判断ActionComponent中的Action类是否与AnimNotify的Action类相同?如相同执行ActionComponent->SetAction()
|
||||
|
||||
## FrameState
|
||||
- Recived_NotifyBegin:逻辑与FrameNotify的逻辑相同。
|
||||
- Recived_NotifyTick:每帧判断ActionComponent的FrameId与Class是否与FrameState是否相同,如果不相同,就调用ActionComponent->SetNewAction()
|
||||
|
||||
## MovementModeState
|
||||
用于设置角色的MovementMode
|
||||
|
||||
## RunMontageSection
|
||||
用于让Montage跳转Section。
|
103
02-Note/DAWA/福瑞格斗项目/开发计划.md
Normal file
103
02-Note/DAWA/福瑞格斗项目/开发计划.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# 阶段计划
|
||||
1. [ ] 使用FightingGameTemplateProject的场景、动作资产、构建固定相机单角色进行各种Combo的Demo。
|
||||
2. [ ] 细化各种攻击判断逻辑、细化GAS逻辑以及DataTable填表逻辑。
|
||||
# 开发计划
|
||||
1. 改进HitBoxBlueprint项目
|
||||
1. 解决编辑器Actor中帧数与动画帧数不同步的问题
|
||||
2.
|
||||
2. Perforce & CI/CD 搭建
|
||||
3. 使用FightingGameTemplateProject的场景、动作资产、构建固定相机单角色进行各种Combo。
|
||||
4. 使用LogicDriver、GAS(使用GASDocument)构建基础逻辑。
|
||||
1. 使用LogicDriver构建出招以及各种动作状态机。
|
||||
2. 使用GAS构建技能与Buffer功能。
|
||||
3. 使用增强输入定制出招表。
|
||||
5. 将HitBoxBlueprint生成的HitBox数据改成DataAsset样式
|
||||
6. 实现InputBuffer 输入缓存系统。可以参考商城的 Ninja Input插件
|
||||
7.
|
||||
|
||||
# GAShooter移植计划
|
||||
## c++
|
||||
- [x] GSEngineSubsystem.h
|
||||
- [x] GSBlueprintFunctionLibrary.h
|
||||
- [x] ~~AI~~
|
||||
- [ ] Characters
|
||||
- [ ] Abilities
|
||||
- [ ] AbilityTasks
|
||||
- [x] GSAT_MoveSceneCompRelLocation.h
|
||||
- [x] GSAT_PlayMontageAndWaitForEvent.h
|
||||
- [x] GSAT_PlayMontageForMeshAndWaitForEvent.h
|
||||
- [x] GSAT_ServerWaitForClientTargetData.h
|
||||
- [ ] ~~GSAT_WaitChangeFOV.h~~
|
||||
- [x] GSAT_WaitDelayOneFrame.h
|
||||
- [x] GSAT_WaitInputPressWithTags.h
|
||||
- [x] GSAT_WaitInteractableTarget.h
|
||||
- [x] GSAT_WaitTargetDataUsingActor.h
|
||||
- [x] AttributeSets
|
||||
- [ ] ~~GSAmmoAttributeSet.h~~
|
||||
- [x] **GSAttributeSetBase.h**
|
||||
- [x] AsyncTaskAttributeChanged.h
|
||||
- [x] AsyncTaskGameplayTagAddedRemoved.h
|
||||
- [x] GSAbilitySystemComponent.h
|
||||
- [x] GSAbilitySystemGlobals.h
|
||||
- [x] GSAbilityTypes.h
|
||||
- [x] GSDamageExecutionCalc.h
|
||||
- [x] GSGA_CharacterJump.h
|
||||
- [x] GSGameplayAbility.h
|
||||
- [x] GSGameplayCueManager.h
|
||||
- [x] GSGameplayEffectTypes.h
|
||||
- [x] GSGATA_LineTrace.h
|
||||
- [x] GSGATA_SphereTrace.h
|
||||
- [x] GSGATA_Trace.h
|
||||
- [x] GSInteractable.h
|
||||
- [x] GSTargetType.h
|
||||
- [x] ~~Animation~~
|
||||
- [ ] Heroes
|
||||
- [ ] ~~GSHeroCharacter.h~~
|
||||
- [x] GSASCActorBase.h
|
||||
- [ ] GSCharacterBase.h
|
||||
- [ ] ~~GSCharacterMovementComponent.h~~
|
||||
- [x] Items
|
||||
- [x] GSPickup.h
|
||||
- [ ] Player
|
||||
- [x] GSPlayerState.h
|
||||
- [x] GSPlayerController.h
|
||||
- [ ] UI
|
||||
- [ ] Weapons
|
||||
- [x] GSProjectile.h
|
||||
- [ ] ~~GSWeapon.h~~
|
||||
|
||||
## Content
|
||||
- [ ] ~~FPWeapon~~
|
||||
- [ ] GASShooter
|
||||
- [ ] Blueprints
|
||||
- [x] AnimNotifes
|
||||
- [ ] BP_Chest
|
||||
- [x] BP_DamageVolume
|
||||
- [ ] ~~BP_GameMode~~
|
||||
- [x] BP_HealthManaStaminaShieldRegenVolume
|
||||
- [x] BP_HealthManaStaminaShieldVolume
|
||||
- [ ] ~~BP_PlayerController~~
|
||||
- [ ] ~~BP_SpectatorPawn~~
|
||||
- [x] GE_ChestOpen
|
||||
- [x] GE_DamageVolume
|
||||
- [x] GE_DoorOpen
|
||||
- [x] GE_HealthManaStaminaShieldRegenVolume
|
||||
- [x] GE_HealthManaStaminaShieldVolume
|
||||
- [ ] Characters
|
||||
- [ ] Hero
|
||||
- [ ] Abilities
|
||||
- [x] GA_InteractActive
|
||||
- [x] GA_InteractPassive
|
||||
- [x] GE_BleedingOut
|
||||
- [x] GE_Dead
|
||||
- [x] GE_Interacting
|
||||
- [x] GE_InteractingRemoval
|
||||
- [x] GE_KnockedDown
|
||||
- [x] Shared
|
||||
- [ ] ~~Items~~
|
||||
- [ ] ~~Maps~~
|
||||
- [ ] ~~UI~~
|
||||
- [ ] ~~Weapons~~
|
||||
- [x] InfinityBladeFireLands
|
||||
- [ ] ~~ShooterGame~~
|
||||
## GameplayTags
|
Reference in New Issue
Block a user