项目中,有时会出现人物提着箱子、拎着包、握着枪等情况。

这时需要用到 attach to 函数(或者节点)。

蓝图中:

%e5%be%ae%e4%bf%a1%e6%88%aa%e5%9b%be_20161103202746

C++中:

AttachToComponent(ArmMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, MeshSocketName);

这里都是使用AttachToComponent函数,因为以上提到的几种应用场景都是将物体attach到人物角色上,那即是将actor附着到人物蓝图的SkeletalMesh中的Socket上(借助Socket我们还可以设置物体附上之后的transform,通过添加预览物可以看到attach的效果)。

这里要注意Loaction Rule有三种:Keep Relative , Keep World,Snap to Target。

Keep Relative:

将actor在当前场景中的transform移到parent(Socket)中。(当actor在world中处于原始transform时,它最终效果就是在Socket的预览中的效果。

Keep World:

保持actor在当前场景中的transform,对socket设置transform没有意义。但如果socket移动旋转缩放,会跟随相应移动旋转缩放。

Snap to Target:(最常使用)

使用Socket设置的transform,最终效果与actor在当前场景中的transform无关,最终效果等于socket中预览看到的效果。

DetachFromActor要注意,只有Keep Relative和Keep World选项。

如果使用 Snap to Target 进行attach,那么Keep World让Detach之后对保持之前在Socket调整后的最终尺寸到新的场景中(建议使用该方法);如果使用Keep Relative,则会让尺寸使用物体原始尺寸。

 

UE4 将actor acttach to 另一个actor需要注意的

发表评论

电子邮件地址不会被公开。 必填项已用*标注

浙公网安备 33010602005964号