本技能面向虚幻引擎C++开发中静态网格体与骨骼网格体的使用,帮助开发者在资产、组件、碰撞、LOD、实例化与Nanite等方面做出正确决策。
用途:当你需要在C++中为组件指定或替换网格体资产、按组件覆盖材质槽或创建UMaterialInstanceDynamic、将Actor或组件附着到网格体插槽、配置碰撞复杂度(UBodySetup、ECollisionTraceFlag)、在UStaticMeshComponent、UInstancedStaticMeshComponent(ISM)与UHierarchicalInstancedStaticMeshComponent(HISM)之间选择、启用Nanite或排查“材质槽无材质”“动画不播放”“插槽静默未命中”等问题时,可参考本技能。
主要能力:
- 区分资产与组件:UStaticMesh由UStaticMeshComponent渲染,用于刚性道具与环境几何;USkeletalMesh由USkeletalMeshComponent渲染,用于动画/形变角色与物体;大量相同网格体可使用ISM或HISM。
- C++组件设置:通过CreateDefaultSubobject创建组件、SetRootComponent设为根、SetStaticMesh/SetSkeletalMesh赋值资产、SetMaterial按槽索引覆盖材质、SetAnimInstanceClass绑定动画蓝图。
- 材质槽操作:按索引设置/读取材质、获取槽数量、按名称查找静态网格体槽索引,材质槽默认值在资产上,组件级覆盖优先。
- 插槽:静态网格体插槽(UStaticMeshSocket)与骨骼网格体插槽(USkeletalMeshSocket)的附着与世界变换查询,强调附着前用GetSocketByName验证以避免静默失败。
- 实例化网格体:ISM/HISM的创建、AddInstance、UpdateInstanceTransform、RemoveInstance、GetInstanceCount,以及按数量和更新频率选择ISM或HISM的参考因素。
- 碰撞:UBodySetup的简单/复杂碰撞与ECollisionTraceFlag各取值含义,提醒不要在模拟体上启用CTF_UseComplexAsSimple。
- LOD与Nanite:静态网格体多级LOD与ForcedLodModel调试、骨骼网格体按LOD减骨与分段开关、Nanite按网格体启用及运行时通过GetNaniteSettings/SetNaniteSettings修改(注意会触发重建,应在编辑器工具中调用),并说明Nanite对不透明/遮罩材质支持较好,半透明与双面植被有回退路径。
- 骨骼网格体生态:共享USkeleton、UPhysicsAsset、USkeletalMeshSocket、FSkeletalMaterial,模块化角色使用Leader Pose Component共享动画。
使用方式:资料以C++代码片段和表格形式给出组件创建、资产赋值、材质覆盖、插槽附着、实例化操作、碰撞与Nanite设置等示例,并附有引擎源码与官方文档引用,供开发时查阅和对照。
适用场景:虚幻引擎C++项目中的角色/道具/环境网格体搭建、性能优化(实例化与LOD/Nanite)、碰撞配置、插槽附着与材质覆盖等。
限制:资料未提供该技能的具体安装方式、收费模式或平台要求;部分内容依赖UE 5.7/5.8版本特性,低版本行为可能不同;Nanite对材质混合模式与平台支持有限制,需在目标平台验证。