技术成长日志 - UE 静态烘培的前期准备工作

索引关键词

烘培

问题场景

扫描件展厅模型场景进行静态灯光烘焙时,出现无法构建光照、烘焙耗时过长、场景变黑 / 闪烁等问题,需通过统一配置引擎渲染参数、关卡设置、灯光属性解决。

解决方案

1. 引擎渲染参数基础配置
1.1 关闭 Lumen 并开启静态光照
  • 操作路径:编辑 → 项目设置 → 引擎 - 渲染(Engine - Rendering);
  • 核心操作:
    1. 关闭 Lumen 全局光照 / 反射相关选项;
    2. 找到「光照(Lighting)」分类,勾选「允许静态光照(Allow Static Lighting)」。
1.2 修改阴影贴图方法(适配移动平台)
  • 操作路径:项目设置 → 引擎 - 渲染 → 阴影(Shadows)(位于 Global Illumination 栏目正上方);
  • 核心操作:将「阴影贴图方法(Shadow Map Method)」从默认的「虚拟阴影贴图(Virtual Shadow Maps)」改为「阴影贴图(Shadow Maps)」。
2. 关卡环境适配配置
2.1 关卡类型限制

因「世界分区(World Partition)」限制,静态灯光烘焙需在空白关卡(Empty Level)基础关卡(Basic) 中执行,否则无法正常构建光照。

2.2 移动端模式异常处理
  • 问题:开启 Android Vulkan Mobile 模式后,场景持续运行导致光照无法构建;
  • 解决方案:关闭编辑器运行按钮旁的 Android 小人图标,退出移动端预览模式。
3. 烘焙范围与效率优化
  • 核心操作:在展厅 / 模型密集区放置「光照重要性体积(Lightmass Importance Volume)」,并完全包裹所有模型;
  • 作用:限定引擎高质量光影计算范围,避免无意义的全局计算导致烘焙耗时过长。
4. 灯光属性统一配置
  • 操作:选中场景中所有灯光(Directional Light/Point Light/Rect Light 等),在 Details 面板中将「Mobility(移动性)」改为:
    1. Static(静态):灯光信息全额写入光照贴图(第二套 UV),烘焙效果最优;
    2. Stationary(固定):部分光照信息实时计算,兼容动态调整需求。
5. 关键烘焙开关检查(必做)
5.1 操作路径

菜单栏 → 窗口(Window)→ 世界设置(World Settings)→ Lightmass 栏目。

5.2 核心检查项
  • 选项:Force No Precomputed Lighting(强制无预计算光照);
  • 要求:必须取消勾选!勾选后引擎不会生成任何光照贴图,表现为构建光照后场景变黑、闪烁。

技术成长日志 - UE 材质颜色调节

索引关键词

材质颜色修改


日期:2026 年 03 月 01 日

问题场景

展厅模型材质需要灵活调整基础颜色,通过在材质编辑器中添加颜色调节参数节点,实现材质基础颜色的自定义叠加,无需重新制作贴图。

解决方案

步骤 1:断开基础颜色原有连接
  • 定位目标材质主节点(示例名称:Mat3d66-4668039-7-4077),找到「基础颜色 (Base Color)」引脚;
  • 操作:按住键盘 Alt 键,鼠标左键点击「基础颜色」引脚,断开原有连线。
步骤 2:创建颜色调节节点
  1. 生成乘法节点:鼠标置于材质图表空白处,按住 M 键点击左键,生成 Multiply (乘法) 节点(用于颜色叠加运算);
  2. 生成向量参数节点:鼠标置于空白处,按住 V 键点击左键,生成绿色的 VectorParameter (向量参数) 节点(用于自定义颜色);
  3. 参数配置
    • 在左侧面板修改向量参数节点名称(示例:Color_Tint,即 “颜色叠加”);
    • 双击节点内的黑色色块,选择目标颜色(示例:红色)。
步骤 3:重新连接节点并保存
  1. 节点连线逻辑:
    • 将原基础颜色的断开连线,连接到 Multiply 节点的 A 输入引脚;
    • 将自定义的 Color_Tint 节点输出端,连接到 Multiply 节点的 B 输入引脚;
    • Multiply 节点的输出引脚,连接回主节点的「基础颜色 (Base Color)」输入引脚;
  2. 保存生效:点击材质编辑器左上角的「应用 (Apply)」和「保存 (Save)」按钮,完成配置。

技术成长日志 - UE Lightmass 烘焙高质量参数配置

索引关键词

高质量烘培、产品出图


日期:2026 年 03 月 01 日

问题场景

传统 CPU 烘焙(Lightmass)后,墙面出现GI 光子黑斑(牛皮癣),表现为灯光周围不均匀、脏兮兮的阴影块,本质是引擎光子采样不足、光照贴图分辨率过低或底层参数不合理导致。

解决方案:三步消除黑斑 + 最终高质量烘焙参数表

🔥 第一把火:提升光照质量级别(核心解决稀疏光子问题)
  • 原理:预览模式下光子数量极少,稀疏光子被强行模糊拉伸形成黑斑;提升质量级别会增加光子密度,让光影更细腻。
  • 操作:顶部菜单 → 构建 (Build) → 光照质量 (Lighting Quality),从「预览 (Preview)」改为高 (High)产品级 (Production)
  • 代价:烘焙时间显著增加(从分钟级到数十分钟级),但黑斑会肉眼可见减少。
📏 第二把火:提升模型光照贴图分辨率(解决画布像素不足)
  • 诊断:视口按下 Alt + 0 切换到光照贴图密度视图,若墙面呈深蓝色,说明光照贴图分辨率过低(默认常为 64)。
  • 操作:选中墙面模型 → 细节面板 → 开启「覆盖光照贴图分辨率」,将数值提升至256512,让墙面在密度视图中呈现绿色。
🛠️ 第三把火:Lightmass 底层参数调优(TA 终极除垢方案)

窗口 (Window) → 世界设置 (World Settings) → Lightmass 面板中调整以下参数:

表格

参数名称 默认值 推荐高质量值 作用说明
静态照明关卡比例 (Static Lighting Level Scale) 1.0 0.2 ~ 0.5 缩小光影计算网格,更密集捕捉细节,消除角落漏光和黑斑,代价是增加计算时间
间接光照质量 (Indirect Lighting Quality) 1.0 3.0 ~ 4.0 成倍增加光线反弹采样率,碾碎噪点与不均匀阴影,是消除黑斑的核心参数
间接光照平滑度 (Indirect Lighting Smoothness) 1.0 1.1 ~ 1.2 为光影添加丝滑滤镜,抹平最后细微瑕疵,避免过度平滑丢失细节

✨ 最终高质量烘焙推荐参数表

表格

配置层级 推荐参数 适用场景
光照质量级别 产品级 (Production) 最终出图 / 交付版本,追求极致光影细腻度
模型光照贴图分辨率 256(常规模型)/ 512(大面墙 / 精细模型) 保证不同模型都能承载足够光影细节
Static Lighting Level Scale 0.3 平衡细节与烘焙时间
Indirect Lighting Quality 3.5 足够压制黑斑且不过度耗时
Indirect Lighting Smoothness 1.15 平滑瑕疵同时保留细节

技术成长日志 - UE 3D 文字模型创建(Text 3D 插件)

索引关键词

Text 3D 插件、3D 文字模型


日期:2026 年 03 月 01 日

问题场景

需要在 UE 展厅场景中添加 3D 文字模型,避免与 UI 文字较劲,通过引擎自带 Text 3D 插件可快速创建带倒角、颜值更高的专业 3D 文字,适配地编高效操作需求。

解决方案:启用 Text 3D 插件 + 快速创建 3D 文字

步骤 1:启用 Text 3D 插件(核心步骤)
  1. 操作路径:顶部菜单栏 → 编辑 (Edit) → 插件 (Plugins);
  2. 搜索并勾选:在插件窗口的搜索框中输入「Text 3D」,找到对应插件后勾选启用;
  3. 重启引擎:勾选后右下角会提示 “需重启引擎生效”,点击「立即重启」,完成插件加载。
步骤 2:切换至选择模式

引擎重启完毕后,按下快捷键 Shift + 1,从建模模式切换回常用的「选择 (Selection) 模式」,确保后续操作可正常进行。

步骤 3:将 3D 文字拖入场景
  1. 打开放置面板:点击视口左上角「带绿色加号的立方体图标(快速添加到项目)」,选择「放置 Actor (Place Actors)」,弹出放置面板;
  2. 搜索并拖拽:在放置面板搜索框中输入「Text 3D」,找到 Text 3D Actor 图标,鼠标左键按住图标,拖拽至场景目标位置(如红色环形墙壁上)。
步骤 4:调整 3D 文字属性

拖拽完成后,在右侧「细节 (Details) 面板」中,可直接:

  • 输入所需中文文字(替换默认文字);
  • 调整「厚度」参数,根据场景比例设置合适的文字厚度,实现贴合场景的视觉效果。

技术成长日志 - UE 材质内贴图拉伸平移(非破坏性 UV 调整)

索引关键词

UE、材质、贴图拉伸、贴图偏移、UV 缩放、UV 偏移


日期:2026-03-12

问题场景

复杂整合模型不想在外部软件重制 UV,使用 UE 自动生成的 UV0 后,贴图比例、位置不贴合模型(如弧形墙、长墙面贴图短、错位),要求不修改模型 UV、不影响已烘焙光照贴图(UV1),只在材质内完成调整。


操作流程:材质内实现贴图 “又拉又滑”

第一步:建立拉伸(缩放)控制
  1. 双击材质,进入材质编辑器
  2. 新建节点:
    • U + 左键:添加 TextureCoordinate 节点。
    • M + 左键:添加 Multiply(乘法) 节点。
    • 2 + 左键:添加 Constant2Vector 节点(命名:UV_Scale)。
  3. 连线:
    • TextureCoordinate → Multiply A
    • Constant2Vector → Multiply B
  4. 参数含义:
    • X = U 轴(水平)缩放 / 重复次数
    • Y = V 轴(垂直)缩放 / 重复次数
    • 拉伸贴图:减小 X 值(如 0.7、0.6),Y 保持 1.0 不变形。
第二步:建立偏移(滑动)控制
  1. 继续新建节点:
    • A + 左键:添加 Add(加法) 节点。
    • 2 + 左键:再添加一个 Constant2Vector 节点(命名:UV_Offset)。
  2. 连线:
    • Multiply 输出 → Add A
    • Offset 节点 → Add B
  3. 参数含义:
    • X:U 轴左右偏移
    • Y:V 轴上下偏移
第三步:接入贴图并应用
  1. Add 节点输出 连接到 Texture Sample 的 UVs 引脚
  2. 点击 Apply → Save
  3. 回到视口,通过调整两个 Constant2Vector 的 X/Y,让贴图完美贴合墙面。
第四步:TA 进阶 - 材质实例化(实时可调,无需反复保存)
  1. 右键两个 Constant2Vector 节点(UV_Scale/UV_Offset)→ 选择 Convert to Parameter(转换为参数)
  2. 确认参数命名:
    • 缩放节点:UV_Scaling
    • 偏移节点:UV_Offset
  3. 保存母材质后,回到内容浏览器,右键该母材质 → 选择 Create Material Instance(创建材质实例)
  4. 双击打开材质实例,在右侧细节面板中:
    • 勾选 UV_ScalingUV_Offset 参数的 “启用” 选项;
    • 直接拖动参数数值(或手动输入),实时预览视口中墙面贴图的拉伸 / 偏移效果,无需反复进入母材质保存。

关键小知识

  • UE 自动生成的 UV0 不必局限在 0~1 第一象限,可在材质里任意缩放、偏移,视觉合理即可。
  • 光照贴图(Lightmap)使用 UV1,完全独立,材质内调整 UV0 不会破坏烘焙结果
  • 长墙面 / 弧形墙优先用:缩小 U 轴缩放 + 偏移居中,可无缝贴合、无截断。

技术成长日志 - UE快速配置模型的碰撞

索引关键词

碰撞

导入的一些素材模型,往往自动的碰撞体未必满足要求,例如一些小门自动封死掉了,但发现只需要在静态物体浏览器中把细节中的碰撞设置,改为将复杂碰撞转为简单碰撞,就很好用了,于是用了一个批量代码:选中内容浏览器中需要调整碰撞体的模型,一键设置:

import unreal

def batch_update_collision():
    # 获取当前在内容浏览器中选中的所有资产
    selected_assets = unreal.EditorUtilityLibrary.get_selected_assets()
    
    updated_count = 0
    
    # 检查是否有选中资产
    if not selected_assets:
        unreal.log_warning("请先在内容浏览器中选中需要修改的静态网格体!")
        return

    for asset in selected_assets:
        # 确保选中的是静态网格体 (StaticMesh)
        if isinstance(asset, unreal.StaticMesh):
            try:
                # 获取模型的 BodySetup (引擎底层存储碰撞属性的对象)
                body_setup = asset.get_editor_property("body_setup")
                
                # 1. 修改“碰撞复杂度” (Collision Complexity) -> 将复杂碰撞用作简单碰撞
                body_setup.set_editor_property("collision_trace_flag", unreal.CollisionTraceFlag.CTF_USE_COMPLEX_AS_SIMPLE)
                
                # 2. 修改“碰撞预设” (Collision Presets) -> BlockAll
                body_instance = body_setup.get_editor_property("default_instance")
                body_instance.set_editor_property("collision_profile_name", "BlockAll")
                
                # 修复点:直接传入 asset 对象本身进行保存
                unreal.EditorAssetLibrary.save_loaded_asset(asset)
                
                unreal.log(f"成功更新并保存: {asset.get_name()}")
                updated_count += 1
                
            except Exception as e:
                unreal.log_error(f"更新 {asset.get_name()} 时出错: {str(e)}")
        else:
            unreal.log_warning(f"已跳过非静态网格体资产: {asset.get_name()}")
            
    unreal.log(f"--- 批量修改完成!共成功更新了 {updated_count} 个模型 ---")

# 执行函数
batch_update_collision()

技术成长日志 - UE 快速创建高质量 3D 文字(Text 3D 插件・新增)

索引关键词

UE、Text 3D 插件、3D 文字、倒角文字、Place Actors、快速放置、地编高效工作流


日期:2026-03-12

问题场景

需要在展厅场景快速放置带精致倒角的立体文字标识,不想在建模软件往返导出导入,也不想用 UI 平面文字,追求一键可用、可改中文、可改厚度、自带倒角

最优方案:启用引擎自带 Text 3D 插件(强烈推荐)

比建模模式拼字更快、边缘更顺滑、自带高级倒角,完全贴合 3D 空间摆放。

四步标准流程

1. 开启插件并重启
  1. 顶部菜单:编辑 (Edit) → 插件 (Plugins)
  2. 搜索:Text 3D
  3. 勾选启用 → 右下角提示重启 → 立即重启引擎
2. 切回常用选择模式

重启后按快捷键:Shift + 1从建模模式退回 选择 (Selection) 模式,方便摆放 Actor。

3. 快速拖入场景
  1. 视口左上角:点绿色加号立方体(快速添加到项目)
  2. 选择:放置 Actor (Place Actors)
  3. 面板搜索:Text 3D
  4. 左键按住图标,直接拖到墙面 / 展柜指定位置落地
4. 改字、改厚度、调样式

选中刚落地的 Text 3D,在右侧 ** 细节 (Details)** 面板直接:

  • 修改文字内容(支持中文)
  • 调整厚度、大小、倒角圆润度
  • 赋材质即可匹配展厅风格

小坑提醒

如果找不到 Text 3D 入口:优先检查插件是否真正启用并重启成功、基础 Shape / 建模相关插件是否加载完整。

技术成长日志 - UE 标准玩家出生点设置(正规开发流程・新增)

索引关键词

UE、Player Start、玩家出生点、GameMode、游戏模式、BP_ThirdPersonCharacter、BP_ThirdPersonGameMode、世界设置


日期:2026-03-12

问题场景

需要按照UE 正规游戏开发流程设置玩家出生位置,替代手动拖动角色,实现运行游戏时自动在指定位置生成玩家

标准操作流程(正规出生点法)

  1. 清理原有角色删除场景中手动放置的 BP_ThirdPersonCharacter 第三人称角色蓝图。

  2. 放置官方出生点 Actor左侧「添加 (Add)」面板 → 基础 (Basic) → 找到 Player Start(玩家出生点)拖拽到场景目标位置(旗子图标,仅代表出生位置,无模型)。

  3. 配置游戏模式(核心步骤)打开「窗口 (Window) → 世界设置 (World Settings)」找到 游戏模式重载 (GameMode Override)设置为:BP_ThirdPersonGameMode(第三人称游戏模式)

  4. 完成验证点击运行,引擎会自动在 Player Start 位置生成可控小蓝人,无需手动放置角色。

技术成长日志 - UE快速配置模型的光照贴图(方便烘培)

索引关键词

UE、静态烘培,光照贴图

这个光照贴图是UE自动生成的,双击静态网格,进入编辑器,在侧边细节面板中,LOD0栏目下,启用光照贴图,但这远远不够,还得设置好光照贴图的尺寸和引用源。对于展厅上千件物品,实在是麻烦,因此代码。

首先在内容浏览器中,全选需要烘培的静态网格,我直接全选,然后控制台,切换为Python,输入代码:调用引擎自带的 generate_lightmap_u_vs ,现有的 UV0 重新打包排列到 UV1,光照信息输入在UV1,同时配置光照贴图的大小为256.目前来放在小屏幕上运行,这个分辨率似乎够用了

import unreal

selected_assets = unreal.EditorUtilityLibrary.get_selected_assets()
success_count = 0

unreal.log("💡 开始配置光照贴图索引与分辨率...")

for asset in selected_assets:
    if isinstance(asset, unreal.StaticMesh):
        name = asset.get_name()
        try:
            # 1. 获取 LOD 0 构建设置
            build_settings = unreal.EditorStaticMeshLibrary.get_lod_build_settings(asset, 0)
            
            # 2. 开启生成并对齐通道
            build_settings.generate_lightmap_u_vs = True
            build_settings.src_lightmap_index = 0
            build_settings.dst_lightmap_index = 1
            build_settings.min_lightmap_resolution = 256
            
            # 3. 应用构建设置
            unreal.EditorStaticMeshLibrary.set_lod_build_settings(asset, 0, build_settings)
            
            # 4. 修改外层光照属性
            asset.set_editor_property("light_map_coordinate_index", 1)
            asset.set_editor_property("light_map_resolution", 256)
            
            # 5. 保存资产触发构建
            unreal.EditorAssetLibrary.save_asset(asset.get_path_name())
            success_count += 1
            
        except Exception as e:
            unreal.log_error(f"❌ 处理模型 {name} 时报错: {e}")

unreal.log(f"🎉 阶段三完成!已成功为 {success_count} 个模型打通了光照贴图血脉!")
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐