Zack.Zhang Game Developer

UE4学习笔记5——骨骼模型Socket

2021-10-12
zack.zhang

本笔记的记录了骨骼模型Socket的用法。入门示例成品

插槽(Socket)

选中要创建插槽(Socket)的骨骼,右键选择“添加插槽”。新建的插槽命名为“RightHandSocket”。

UE4-SkeletalSlot1.png

右键选中Socket,给它添加一个参考模型来调节Socket位置和旋转。调节Socket的旋转和位置,使其能够挂上武器而且和手的位置正好和手型吻合。

UE4-SkeletalSlot2.png

代码使用Socket

根据名称可以获取USkeletalMeshComponent上的某个Socket,代码如下。

const USkeletalMeshSocket* RightHandSocket = GetMesh()->GetSocketByName(TEXT("RightHandSocket"));

Socket上可以挂载某个AActor,代码如下。

// RightHandSocket为要挂载物件的挂点Socket
// weapon为要挂载到Socket上的AActor
// GetMesh()为RightHandSocket所属的USkeletalMeshComponent
RightHandSocket->AttachActor(weapon, GetMesh());

从Socket上卸载某个AActor,不能调用Socket的接口来卸载,因为Socket没有这样的方法。需要到AActor里面调用自己的DetachFromActor函数才行。

// this指的使weapon自己
this->DetachFromActor(FDetachmentTransformRules::KeepWorldTransform);

Similar Posts

评论