欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

ue4 怎么修改骨骼动画_UE4换装系统(合并骨骼模型)

发布时间:2025/4/5 windows 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ue4 怎么修改骨骼动画_UE4换装系统(合并骨骼模型) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前面那篇UE4换装系统https://blog.csdn.net/luomogenhaoqi/article/details/88350580,事实上每个身体模型还是各自渲染,现在介绍把每个身体模型合并输出一个模型,把Lod,材质,网格等合并,性能相对好很多。不过要注意材质是要合并起来的,你的表情的动画就没有了。

原则前提:角色骨骼模型换装原理无非就是把角色模型拆分多个部分,每部份必须使用同一套骨骼。

USkeletalMesh * BodySMC;//作为身体骨骼模型

USkeletalMesh * HeadSMC;//作为头骨骼模型

USkeletalMesh * HandArmSMC;//作为手臂膀骨骼模型

USkeletalMesh * FootSMC;//作为下半身模型

假如以上模型已经初始化,可使用 LoadObject<USkeletalMesh>( NULL, 资源路径, NULL, LOAD_None, NULL );

USkeletalMeshComponent* PlayerSMC;//玩家主角模型,假如已经初始化

TArray<USkeletalMesh*> SourceMeshList;//需要合并身体模型,把上面模型都添加到该列表

SourceMeshList.Add( BodySMC);

SourceMeshList.Add( HeadSMC);

SourceMeshList.Add( HandArmSMC);

SourceMeshList.Add( FootSMC );

if ( SourceMeshList.Num() >= 2)//模型数量大于两个才合并

{

// 创建一个保存最终合成模型 CompositeMesh

USkeletalMesh* CompositeMesh = NewObject<USkeletalMesh>( GetTransientPackage(), NAME_None, RF_Transient );

TArray<FSkelMeshMergeSectionMapping> InForceSectionMapping;

// 创建引擎合并模型实例MeshMergeUtil,参考引擎源码类SkeletalMeshMerge,里面有具体实现逻辑

FSkeletalMeshMerge MeshMergeUtil( CompositeMesh, SourceMeshList, InForceSectionMapping, 0 );

// 把SourceMeshList合并到CompositeMesh

if (MeshMergeUtil.DoMerge())

{

PlayerSMC->SetSkeletalMesh( nullptr);

PlayerSMC->SetSkeletalMesh( CompositeMesh );//合并成功设置给玩家模型

}

}

---------------------

作者:落寞根号七

总结

以上是生活随笔为你收集整理的ue4 怎么修改骨骼动画_UE4换装系统(合并骨骼模型)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。