vault backup: 2024-05-24 18:21:54

This commit is contained in:
BlueRose 2024-05-24 18:21:55 +08:00
parent c723614d2e
commit 2bc50c5d47
2 changed files with 27 additions and 3 deletions
02-Note/DAWA/ASoul

@ -362,6 +362,7 @@ public:
1. DirectorCam与24个镜头相关。
2. EditorRuntimeEditor相关。
3. LiveDirector
1. [ ] Character/TsIdolActor.ts[[角色流程#TsIdolActor.ts]]
4. Camera
5. Characrer:
6. Danma:弹幕相关View以及控制。

@ -2,7 +2,30 @@
继承关系BP_XXX_Base -> BP_Idol_Base -> TsIdolActor -> AVCharacter -> ACharacter 。
主要逻辑位于TsIdolActor中文件路径为`Script/LiveDirector/Character/TsIdolActor.ts`
# 角色判断逻辑
PropTags: UE.GameplayTagContainer
# AVCharacter
主要实现了`virtual void OnRep_AttachmentReplication() override;`声明了若干BlueprintNativeEvent
- bool CanSyncRelativeTransform();
- void BeforeAttachToNewParent();
- void AfterAttachToNewParent();
## OnRep_AttachmentReplication()
注释:
>// 动捕模式下CanSync=false. 各端自行计算Actor Location, client无需使用Server计算结果
// 自由行走模式下, CanSync=trueclient需要同步server的transform信息
通过Tag判断。
# TsIdolActor.ts
## VirtualOverrider
```typescript
CanSyncRelativeTransform(): boolean {
if (Utils.HasTag(this.PropTags, new UE.GameplayTag("Idol.AIACao"))) {
return false;
}
if(this.MovementComp && this.MovementComp.ManulMovement){
return false
}
var animInstance = this.Mesh.GetAnimInstance() as UE.IdolAnimInstance
let fullbodyNode = Reflect.get(animInstance, 'AnimGraphNode_Fullbody') as UE.AnimNode_FullBody
return !(fullbodyNode && fullbodyNode.bGetMotionData)
}
```