ue4 迁移模型_UE4换装系统(合并骨骼模型)

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

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

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

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

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

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

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

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

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

SourceMeshList.Add( BodySMC);

SourceMeshList.Add( HeadSMC);

SourceMeshList.Add( HandArmSMC);

SourceMeshList.Add( FootSMC );

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

{

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

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

TArray InForceSectionMapping;

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

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

// 把SourceMeshList合并到CompositeMesh

if (MeshMergeUtil.DoMerge())

{

PlayerSMC->SetSkeletalMesh( nullptr);

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

}

}

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

作者:落寞根号七

来源:CSDN

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值