vault backup: 2024-05-24 18:21:54
This commit is contained in:
parent
c723614d2e
commit
2bc50c5d47
@ -362,6 +362,7 @@ public:
|
||||
1. DirectorCam:与24个镜头相关。
|
||||
2. Editor:RuntimeEditor相关。
|
||||
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=true,client需要同步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)
|
||||
}
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user