日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2025/4/5 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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换装系统(合并骨骼模型)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。