13 KiB
Raw Blame History

Client动捕虚拟偶像直播

  • AI动捕优化思路
    1. 模仿ChaosBone使用CUDA直接读取Bone动画数据并且传递给动画蓝图。CUDA具有访问指定显存的功以此节约io损耗假定用户使用双显卡渲染/直播推流将AI动捕的负荷移动到另一张卡上。
    2. 使用多线程与帧采样解决数据抖动问题。同时可以略微降低ai动补的性能要求。
  • 卡通渲染:
    1. 兼容VRM格式。
    2. 兼容多种渲染风格Unity-Chan、VRM、罪恶装备等。并在此基础上尝试研发下一代卡通渲染风格。
      1. 需要一种能够向渲染管线传递大量参数的功能:
        1. 增加GBuffer数量。
        2. 前向 + 延迟管线。Forward+
        3. 低频数据查表法。
      2. 插画&厚涂使用GI、反射、天光散射等多种外界因素以曝光度&时间为尺,融合在一起。
      3. 需要收集插画作品PSD源文件对风格进行分类之后对图层进行分类。尝试用图形算法与AI尝试还原每个图层。
      4. 参考日本动画有关 “摄影”的方法AE并且在UE中实现。
      5. 以4个时间段&天气环境状态制作LookDev场景并且保证时间循环下效果平滑需要调整曲线
    3. 对c端用户来说
      1. 需要一个简单出效果的东西。简单调节参数。
      2. 有几个风格模版。
    4. 一个角色的渲染控制只:基础材质(参数+贴图、ToonDataAsset。方便管理与迭代。
  • 面捕&VMC
    1. 抖音既然是一个全球性的平台在兼容VMC与LiveLinkFace的基础。进行扩展比如VMC中增加更多的场景控制、整活互动功能。使用ARKit开发类似FaceMask的工具让用户可做出更多的表情与表演效果。
    2. 面捕矫正问题。
  • 参考MuRo_CG的作品。
    1. 直播工具。
  • 捏脸&资产上传:
    1. 捏脸如果是二次元为了实现最好的效果得选择全骨骼方案。为了直播的话得选择BS&骨骼。
    2. 资产上传(资产库)
      1. 考虑使用Puerts Editor服务化方法或者使用CommandLet + Server的方法处理好资产再通过Pak热更新到本地。
      2. Runtime读取FBX、GLTF、MP4、Texture并且在本地显示。也可以考虑流送
  • VRCha&元宇宙&VisionPro&Pico

工作内容

  1. 根据项目需求,负责UE4引擎的功能和效果开发、性能优化等相关工作;
    1. 给ASoul项目做全面的技术支持以及功能开发
      1. 功能开发。
        1. 比如VJ播放系统添加NDI源。
        2. 给导播台添加某个特定功能道具。
        3. 脱离字节的系统,做一些定制开发。比如使用镜头控制+Sequence来控制表演效果。
      2. 卡通材质制作。
        1. 解析渲染与材质系统并且编写文档。
      3. 动画、物理、动捕、美术效果方面的支持。
      4. 大活,重要表演节目的优化。
      5. 解决疑难杂症。
        1. 群集系统渲染错误。
        2. 一些老道具功能不正常。
    2. 优化方面的工作做的比较多,擅长使用各种工具定位性能瓶颈,再在综合考量后给出优化方案。
      1. 2023 崩坏3线下音乐会。
        1. 优化目标 2048*1080 50帧 => 3440 * 1440 50帧4K之下众生平等。
        2. DMX使用的是官方插件还是有较大的优化空间。
          1. DMX的灯的模型是StaticMesh而非StaticMeshInstance。
          2. 禁用非重要DMX的LightComponent。可在Sequence中根据镜头变化来K帧开启。
          3. 修改光束材质参数通过参数调整光束材质参数改变光束大小与RayMarching步数以此减少光束RayMarching的性能损耗。
          4. 避免大量光束灯直接朝向摄像机。
        3. 场景
          1. 删除场景中不可见与毫无意义但占用性能较多的模型。
          2. BasePass成为瓶颈的场景进行MergeActor与模型转换成Nanite的操作。
          3. 远景物体关闭CastShadow。
        4. 光照:在保证效果不会有太大变化的情况下,进行一下修改。
          1. 关闭影响非常不明显,但性能损耗较大的灯的级联阴影或者开启距离场阴影来代替。
          2. 使用调整SourceLength的点光源来代替面光源。
          3. 对于需要投射阴影的点光源则使用SpotLight来代替并且调整级联阴影的参数。
          4. 调整角度较大、亮度较低的SpotLight。
        5. Lumen & GI针对
          1. 针对那些GI对光照贡献并不明显的户外场景降低Lumen质量、减少Tracing距离。
          2. ScreenSpaceGI针对镜头不怎么动的场景改用此GI。
        6. 透明物体 & 粒子
          1. 在不影响效果的情况下将BlendMode Translucent=>Additive。
          2. 针对透明区域较大的粒子使用Cutoff功能对粒子进行裁剪来进行优化。
          3. 调整带有RayMarching的商场资产参数比如Nebula在效果不不会发生大变化的情况下提升性能。
        7. 特殊情况
          1. 节目NightGlow。场景有使用大量StaicMesh + Nigara制作舞台破碎效果。且有80%的模型形状相同。
            1. 在对相同模型进行统计之后将所有模型都替换成一个StaticMesh并且进行Nanite + StaticMeshInstance。并且修改了材质将里面的将里面的ObjectPosition节点改成float3(0,0,0) => TransformPosition(Instance&ParticleSpace)。
          2. 节目L_Dacapo6。场景里有大量草地。使用上面一样的方式进行优化。
        8. ASoul
          1. 平面反射的错误使用。优化一些商城资源里的错误用法。
          2. 角色过多造成的CPU GameThread性能瓶颈。新建一个子类干掉没用的Component与Tick逻辑来解决。
          3. CPU粒子造成的性能瓶颈。
          4. DMX.
          5. 使用Sequence K掉一些性能影响较大的Actor。
      2. 2024 ASoul 贝拉 & 乃琳 生日会 。
      3. 优化思路
        1. 首先通过Stst Unit、ProfileGPU确定瓶颈是CPUGameThread、RenderThread、GPU。之后进行进一步的分析。
        2. 工具
          1. Stat Unit、FPS。
          2. RenderDoc + ProfileGPU。
          3. UnrealInsight。
    3. 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
      1. 接手ASoul项目。 2. c++/Puerts/蓝图项目。20% / 70% / 10%
      2. 卡通渲染引擎。TODO
      3. 后续路线图。
        • ToonOutline
          • SDF Outline & SDF工具没有对应16位
          • RayTracing Outline
        • ToonRimLighting
        • ToonReflection
          • 控制自定义反射
          • 兼容Matcap方式。
        • ToonShadow
          • 阴影偏移
          • 半分阴影
          • CustomShadow
        • Toon GILumen
          • 向下采样
          • 平滑法线采样
          • 兼容Matcap方式的局部照明效果
        • ToonTranslucent
          • 睫毛眉毛偷过头发
          • 透明物体描边
        • ToonPostProcess
          • 晕染效果
          • ToonDiffusion对场景亮部进行降采样之后将亮度信息叠加到Toon物体的暗部上。
          • Anti-ToneMapping
        • 延迟 + 前向混合管线(原神)
      4. 其他技术栈。Nodejs系列的前后端APPQt、Pyside2
    4. 手游美术效果研发
      • 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
        • 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
      • 评估很多相对再PC上表现效果好的技术能不能在进行一些算法简化后移植到移动端。
    5. 手游平台的优化
      • 根据项目类型不同,侧重不同的优化方向:
        • 大世界项目主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
        • 箱庭类ARPG项目会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
          • 特效粒子数。
          • 材质指令数目是否超标。
          • 一些渲染Pass的性能占用情况。
      • 优化策略
        • 一般通过延迟毫秒数去判断某个效果是否值得优化。首先会对所有效果进行排序0.2毫秒以上的重点关注0.5毫秒以上的重点处理。
  2. 增强游戏的表现力与运行效率,对业务需求进行评估并进行方案的实现与落地;TODO
    1. 多技术栈,方案会有更多的考量。
    2. 针对手游平台手游是pc效果上做了效果与精度上的减法。比较差异差异之后综合考虑性能损耗与效果提升建立效果实现表。进行有计划的提升。根据手机性能开启对应的效果。
    3. 比如云,以原神为例子。
  3. 负责游戏中性能优化相关工作,根据项目需求定制增改Unreal4引擎底层功能;
    1. 优化项目举例,参与多个项目。
    2. 定制的一些引擎功能展现卡通渲染定义功能。TODO
  4. 根据项目的需求搭建高效的内容制作管线,提高团队的研发效率;
    1. 版本管理相关搭建过Git、P4、SVN服务器并且熟练使用。使用P4 Trigger来解决资产大小写问题、以及实现修改新建工作区默认配置功能。
    2. 熟悉UE引擎打包流程AutomaticTools BuildGraph打包Android、IOS的包。为了打包IOS还玩了AMD黑苹果。
    3. 熟悉UECommandLet写过若干自动化处理工具。
    4. 制作各种编辑器工具。可以根据资产制作思路制作Lookdev工具。NPR有一套独特的思路。
    5. 使用Python编写Maya与Blender工具Maya批量转换Biped骨骼资产 => UE骨骼Blender重定向工具服务化、提取UE Psk、Psa => Fbx。
    6. Puerts Editor服务化。
  5. 关注业界新技术,根据项目的需求预研并应用到项目的后续开发中。
    1. 除了关注zhihu与B站之外查看每年的uod视频。因为关注卡通渲染的关系会看cedec的一些卡通渲染相关分享主要以记录为主。
      1. CEDEC 2021的蓝色协议系列文章。TODO
        1. ToonLighting
          1. 高光 Mask UV偏移。
        2. 描边PostProcess(ID + Depth + Normal) + BackFace Outline。
        3. 边缘光基于后处理的RimLighting。
        4. 阴影偏移方案:
        5. 其他方案:
          1. 角色捏人、表情
            1. Girls Band cry
            2. 蓝色协议使用全骨骼的表情方案:
              1. 眉毛37个、眼睛42个、 嘴巴53个、轮廓/鼻子18个
              2. 捏脸
              • 骨骼
              • BlendShape
              • 贴花
              • 参考游戏
                • DAZ3D
                • 恋爱活动2
                • Honey Select
                • VAM
              1. 身体分成多个部分,且每个部分采用公共骨骼。
              • 部位
                • 帽子
                • 后头部
                • 头发
                • 上半身
                • 下半身
                • 内衣
              • 身体数据使用自定义的数据资产进行管理ID
                1. 身体部分与数值偏移
                  1. 子组件
                    1. 数值类型
                    2. 骨骼ID
                    3. 默认值
                    4. 最小最大值
              • 衣服
                1. 使用骨骼来控制衣服长短?
              • 头发
                1. 为同一个发型制作多种头发来适配不同的帽子
                2. KawaiiPhysics
              • 表情
                1. 25种基础表情
                2. 嘴部的轮廓是双层的,以此来实现漫画中的效果。
                3. 脸部调整了法线,来解决面部阴影问题。
      2. CEDEC 2023
        1. BMG Dream。
      3. CEDEC 2024
        1. 学院偶像大师分享。
        2. 次世代 NPR の輪郭線表現
      4. 部分分享没有公开实属可惜比如2022的异度神剑3没有及时下载视频没了还好知乎有人分享心得。
    2. 根据需求查看gdc的文章。
      1. FastSSS。
      2. GDC 2004 Marschner Hair paper的Kajiya-Kay Model
  6. 捏脸
  7. 最后问问题
    1. 如果我没有通过面试,那可能是什么方面的原因?TODO是否可以以及有必要问

职位描述 1、负责技术美术相关功能完成诸如材质/Shader开发/渲染特性/工具管线等功能的实现和调优,提升项目表现效果; 2、发现美术制作各个环节中的需求和问题并与程序、美术等职能的同事紧密合作提供支持完善流程提升效率 3、配合美术、引擎同事制定项目资源、性能规范和配套的自动化检测工具,并确保规范和工具在项目中的落地。 职位要求 1、本科及以上学历, 计算机及相关专业; 2、良好的图形学基础,熟悉常用渲染管线及渲染底层原理,熟悉至少一种常用游戏引擎 3、良好的审美材质、灯光等影响渲染效果的因素有辨识能力,了解业内顶尖效果并制定优化方向; 4、熟悉HLSL和Shader开发 5、熟悉renderdoc等profile工具能定位和解决项目中的渲染问题 6、熟悉常用的DCC软件例如MAYA、ZBrush、Substance系列、PhotoshopBlender等。

加分项: 1、熟悉UE5引擎有蓝图和c++基础; 2、有3A游戏/数字人等具有顶尖表现效果的项目经验; 3、有捏脸/角色制作系统经验; 4、有PCG方向经验能设计基础生成能力并对接部门提供的AIGC能力 5、熟悉角色动捕/动画方向优化,熟悉角色动力学/物理方向优。