16 KiB
16 KiB
Client动捕虚拟偶像直播
-
快速/高效迭代管线
- 初期迭代:
- 程序&TA:提取其他游戏与软件的资产作为构建捏脸系统的资源,并且构建捏脸系统,到美术可使用的级别。提取资产来源:各个资源风格都会不同,建议分别独立使用。
- 卡通风格:
- Vroid Studio
- 蓝色协议
- Honey Select2
- 3D定制女仆2
- FF14?
- 写实风格:
- DAZ3D
- MetaHumanCreator?
- 自动绑定?
- 卡通风格:
- 美术:美术同学使用该系统给客户定制时,发现缺少某个形变方向的BS时提单。之后进行制作补充。
- AI:
- 使用大致的体型简笔画图片(可交互的三视图,可以调整三视图的体型;同时会与BS的参数同步)或者照片计算出大致符合体型区间的BS组合(几个风格分别计算)。
- 使用大致的脸部简笔画图片或者正面照片计算出大致符合的脸部BS组合。
- 自动绑定?
- 程序&TA:提取其他游戏与软件的资产作为构建捏脸系统的资源,并且构建捏脸系统,到美术可使用的级别。提取资产来源:各个资源风格都会不同,建议分别独立使用。
- 中期迭代:
- 程序&TA:主要完善各种捏脸细节,制作物理、场景效果、构建面向用户的客户端。准备跑通整个流程。
- 实现骨骼 <=> BS互相转换工具以及混合方案。
- 将ML Cloth&Muscle
- 美术:除了制作脸部&身体,开始制作头发、衣服以及其他道具与身体细节。
- AI:
- 使用大量的真人&各种卡通角色的身体截图&脸部截图来验证,捏脸系统的缺少的方向,给美术提供迭代方向。(可以配合AI生成图片技术)
- 程序&TA:主要完善各种捏脸细节,制作物理、场景效果、构建面向用户的客户端。准备跑通整个流程。
- 初期迭代:
-
项目对象
- 个人主播
- 小团队主播:1个演员+2~3人。
- 中型团队:1个演员+1~2导播+技术人员若干+运营若干。
-
项目需求
- 捏人系统、道具、方便的加载资产以及相关商城,参考Vroid以及booth.pm。
- 【VRoid Studio新功能测试中!Booth买VRCHAT衣服终于可以用在VRoid里】 https://www.bilibili.com/video/BV1Mw411G78r/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e
- 可以实时加载模型、贴图、视频等并且显示。
- 最好有个一键载入Fab或者Unity商城资产的功能。
- 可以适应多种风格方便迭代的卡通渲染功能。
- 场景控制(道具、灯光、环境、后处理)
- Electric + UE5(Puerts) 快速构建导播台功能。
- 动捕&面部系统接入。
- 【VRoid人狂喜!速通VRM Live Viewer个人使用经验分享【附渲染滤镜配布】】 https://www.bilibili.com/video/BV1FZxCe5Ewu/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e
- 性能优化比较好。
- 捏人系统、道具、方便的加载资产以及相关商城,参考Vroid以及booth.pm。
-
快速迭代建议
- 场景
- 小关卡:MultiUserServer多人协作+多个协作用子Level。
- 大世界:版本管理做好就行。
- USD流程?
- 自动测试框架 & 可视化日志:高频迭代后,可以构建。
- CI/CD + UnrealGameSync + Unreal Zen:构建打包引擎并且拉新。
- 场景
-
AI动捕优化思路:
- 模仿ChaosBone,使用CUDA直接读取Bone动画数据并且传递给动画蓝图。(CUDA具有访问指定显存的功以此节约io损耗)假定用户使用双显卡(渲染/直播推流)将AI动捕的负荷移动到另一张卡上。
- 使用多线程与帧采样解决数据抖动问题。同时可以略微降低ai动补的性能要求。
-
卡通渲染:
- 兼容VRM格式。(VoidHUB)
- 同时不断往里面添加自己规范(成为VRM的超集)
- 兼容多种渲染风格,Unity-Chan、VRM、罪恶装备等。并在此基础上尝试研发下一代卡通渲染风格。
- 需要一种能够向渲染管线传递大量参数的功能:
- 增加GBuffer数量。
- 前向 + 延迟管线。(Forward+)
- 低频数据查表法。
- 插画&厚涂,使用GI、反射、天光散射等多种外界因素,以曝光度&时间为尺,融合在一起。
- 需要收集插画作品PSD源文件,对风格进行分类之后,对图层进行分类。尝试用图形算法与AI尝试还原每个图层。
- 参考日本动画有关 “摄影”的方法(AE),并且在UE中实现。
- 以4个时间段&天气环境状态制作LookDev场景,并且保证时间循环下效果平滑(需要调整曲线)
- Lumen以及MageLight ReSTIR的支持。
- 需要一种能够向渲染管线传递大量参数的功能:
- AI
- 渲染管线里5.3已经支持神经网络(NNE)接口。 其中一种方法使用ONNX。
- 对c端用户来说:
- 需要一个简单出效果的东西。简单调节参数。
- 有几个风格模版。
- 一个角色的渲染控制资产:基础材质(参数+贴图)、ToonDataAsset。方便管理与迭代。
- 兼容VRM格式。(VoidHUB)
-
面捕&VMC:
- 抖音既然是一个全球性的平台,在兼容VMC与LiveLinkFace的基础。进行扩展,比如VMC中增加更多的场景控制、整活互动功能。使用ARKit开发类似FaceMask的工具,让用户可做出更多的表情与表演效果。
- 考虑对VMC协议进行改造,添加TCP、Protobuf支持。
- 面捕矫正问题。
- 抖音既然是一个全球性的平台,在兼容VMC与LiveLinkFace的基础。进行扩展,比如VMC中增加更多的场景控制、整活互动功能。使用ARKit开发类似FaceMask的工具,让用户可做出更多的表情与表演效果。
-
参考MuRo_CG的作品。
- 直播工具。
- 辅助番剧制作工具。
-
捏脸&资产上传:
- 捏脸:如果是二次元,为了实现最好的效果得选择全骨骼方案。为了直播的话得选择BS&骨骼。
- 资产上传(资产库)
- 考虑使用Puerts Editor服务化方法,或者使用CommandLet + Server的方法,处理好资产再通过Pak热更新到本地。
- Runtime读取FBX、GLTF、MP4、Texture,并且在本地显示。(也可以考虑流送)
-
VRCha&元宇宙&VisionPro&Pico
工作内容
- 根据项目需求,负责UE4引擎的功能和效果开发、性能优化等相关工作;
- 给ASoul项目做全面的技术支持以及功能开发
- 功能开发。
- 比如VJ播放系统添加NDI源。
- 给导播台添加某个特定功能道具。
- 脱离字节的系统,做一些定制开发。比如使用镜头控制+Sequence来控制表演效果。
- 卡通材质制作。
- 解析渲染与材质系统并且编写文档。
- 动画、物理、动捕、美术效果方面的支持。
- 大活,重要表演节目的优化。
- 解决疑难杂症。
- 群集系统渲染错误。
- 一些老道具功能不正常。
- 功能开发。
- 优化方面的工作做的比较多,擅长使用各种工具定位性能瓶颈,再在综合考量后给出优化方案。
- 2023 崩坏3线下音乐会。
- 优化目标 2048*1080 50帧 => 3440 * 1440 50帧,4K之下众生平等。
- DMX:使用的是官方插件还是有较大的优化空间。
- DMX的灯的模型是StaticMesh,而非StaticMeshInstance。
- 禁用非重要DMX的LightComponent。可在Sequence中根据镜头变化来K帧开启。
- 修改光束材质参数,通过参数调整光束材质参数改变光束大小与RayMarching步数,以此减少光束RayMarching的性能损耗。
- 避免大量光束灯直接朝向摄像机。
- 场景
- 删除场景中不可见与毫无意义但占用性能较多的模型。
- BasePass成为瓶颈的场景进行MergeActor与模型转换成Nanite的操作。
- 远景物体关闭CastShadow。
- 光照:在保证效果不会有太大变化的情况下,进行一下修改。
- 关闭影响非常不明显,但性能损耗较大的灯的级联阴影或者开启距离场阴影来代替。
- 使用调整SourceLength的点光源来代替面光源。
- 对于需要投射阴影的点光源,则使用SpotLight来代替,并且调整级联阴影的参数。
- 调整角度较大、亮度较低的SpotLight。
- Lumen & GI:针对
- 针对那些GI对光照贡献并不明显的户外场景:降低Lumen质量、减少Tracing距离。
- ScreenSpaceGI:针对镜头不怎么动的场景,改用此GI。
- 透明物体 & 粒子
- 在不影响效果的情况下,将BlendMode Translucent=>Additive。
- 针对透明区域较大的粒子,使用Cutoff功能,对粒子进行裁剪来进行优化。
- 调整带有RayMarching的商场资产参数(比如Nebula),在效果不不会发生大变化的情况下提升性能。
- 特殊情况
- 节目:NightGlow。场景有使用大量StaicMesh + Nigara制作舞台破碎效果。且有80%的模型形状相同。
- 在对相同模型进行统计之后,将所有模型都替换成一个StaticMesh,并且进行Nanite + StaticMeshInstance。并且修改了材质,将里面的将里面的ObjectPosition节点改成float3(0,0,0) => TransformPosition(Instance&ParticleSpace)。
- 节目:L_Dacapo6。场景里有大量草地。使用上面一样的方式进行优化。
- 节目:NightGlow。场景有使用大量StaicMesh + Nigara制作舞台破碎效果。且有80%的模型形状相同。
- ASoul
- 平面反射的错误使用。优化一些商城资源里的错误用法。
- 角色过多造成的CPU GameThread性能瓶颈。新建一个子类,干掉没用的Component与Tick逻辑来解决。
- CPU粒子造成的性能瓶颈。
- DMX.
- 使用Sequence K掉一些性能影响较大的Actor。
- 2024 ASoul 贝拉 & 乃琳 生日会 。
- 优化思路
- 首先通过Stst Unit、ProfileGPU确定瓶颈是CPU(GameThread、RenderThread)、GPU。之后进行进一步的分析。
- 工具
- Stat Unit、FPS。
- RenderDoc + ProfileGPU。
- UnrealInsight。
- 2023 崩坏3线下音乐会。
- 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
- 接手ASoul项目。 2. c++/Puerts/蓝图项目。20% / 70% / 10%
- 卡通渲染引擎。TODO
- 后续路线图。
- ToonOutline
- SDF Outline & SDF工具(没有对应16位)
- RayTracing Outline
- ToonRimLighting
- ToonReflection
- 控制自定义反射
- 兼容Matcap方式。
- ToonShadow
- 阴影偏移
- 半分阴影
- CustomShadow
- Toon GI(Lumen)
- 向下采样
- 平滑法线采样
- 兼容Matcap方式的局部照明效果
- ToonTranslucent
- 睫毛眉毛偷过头发
- 透明物体描边
- ToonPostProcess
- 晕染效果
- ToonDiffusion:对场景亮部进行降采样,之后将亮度信息叠加到Toon物体的暗部上。
- Anti-ToneMapping
- 延迟 + 前向混合管线(原神)
- ToonOutline
- 其他技术栈。Nodejs系列的前后端APP;Qt、Pyside2;
- 手游美术效果研发
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
- 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
- 评估很多相对再PC上表现效果好的技术,能不能在进行一些算法简化后,移植到移动端。
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
- 手游平台的优化
- 根据项目类型不同,侧重不同的优化方向:
- 大世界项目,主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
- 箱庭类ARPG项目,会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
- 特效粒子数。
- 材质指令数目是否超标。
- 一些渲染Pass的性能占用情况。
- 优化策略
- 一般通过延迟毫秒数去判断某个效果是否值得优化。首先会对所有效果进行排序,0.2毫秒以上的重点关注,0.5毫秒以上的重点处理。
- 根据项目类型不同,侧重不同的优化方向:
- 给ASoul项目做全面的技术支持以及功能开发
- 增强游戏的表现力与运行效率,对业务需求进行评估并进行方案的实现与落地;TODO
- 多技术栈,方案会有更多的考量。
- 针对手游平台,手游是pc效果上做了效果与精度上的减法。比较差异差异之后,综合考虑性能损耗与效果提升,建立效果实现表。进行有计划的提升。根据手机性能开启对应的效果。
- 比如云,以原神为例子。
- 负责游戏中性能优化相关工作,根据项目需求定制增改Unreal4引擎底层功能;
- 优化项目举例,参与多个项目。
- 定制的一些引擎功能展现卡通渲染定义功能。TODO
- 根据项目的需求搭建高效的内容制作管线,提高团队的研发效率;
- 版本管理相关:搭建过Git、P4、SVN服务器,并且熟练使用。使用P4 Trigger来解决资产大小写问题、以及实现修改新建工作区默认配置功能。
- 熟悉UE引擎打包流程(AutomaticTools BuildGraph),打包Android、IOS的包。为了打包IOS,还玩了AMD黑苹果。
- 熟悉UECommandLet,写过若干自动化处理工具。
- 制作各种编辑器工具。可以根据资产制作思路制作Lookdev工具。NPR有一套独特的思路。
- 使用Python编写Maya与Blender工具:Maya批量转换Biped骨骼资产 => UE骨骼;Blender重定向工具服务化、提取UE Psk、Psa => Fbx。
- Puerts Editor:服务化。
- 关注业界新技术,根据项目的需求预研并应用到项目的后续开发中。
- 除了关注zhihu与B站之外,查看每年的uod视频。因为关注卡通渲染的关系,会看cedec的一些卡通渲染相关分享,主要以记录为主。
- CEDEC 2021的蓝色协议系列文章。TODO
- ToonLighting:
- 高光 Mask UV偏移。
- 描边:PostProcess(ID + Depth + Normal) + BackFace Outline。
- 边缘光:基于后处理的RimLighting。
- 阴影偏移方案:
- 其他方案:
- 角色捏人、表情
- Girls Band cry
- 蓝色协议使用全骨骼的表情方案:
- 眉毛37个、眼睛42个、 嘴巴53个、轮廓/鼻子18个
- 捏脸
- 骨骼
- BlendShape
- 贴花
- 参考游戏
- DAZ3D
- 恋爱活动2
- Honey Select
- VAM
- 身体分成多个部分,且每个部分采用公共骨骼。
- 部位
- 帽子
- 后头部
- 头发
- 脸
- 手
- 上半身
- 下半身
- 脚
- 内衣
- 身体数据,使用自定义的数据资产进行管理(ID)。
- 身体部分与数值偏移
- 子组件
- 数值类型
- 骨骼ID
- 默认值
- 最小最大值
- 子组件
- 身体部分与数值偏移
- 衣服
- 使用骨骼来控制衣服长短?
- 头发
- 为同一个发型制作多种头发来适配不同的帽子
- KawaiiPhysics
- 表情
- 25种基础表情
- 嘴部的轮廓是双层的,以此来实现漫画中的效果。
- 脸部调整了法线,来解决面部阴影问题。
- 角色捏人、表情
- ToonLighting:
- CEDEC 2023
- BMG Dream。
- CEDEC 2024
- 学院偶像大师分享。
- 次世代 NPR の輪郭線表現
- 部分分享没有公开实属可惜,比如2022的异度神剑3没有及时下载,视频没了,还好知乎有人分享心得。
- CEDEC 2021的蓝色协议系列文章。TODO
- 根据需求查看gdc的文章。
- FastSSS。
- GDC 2004 Marschner Hair paper的Kajiya-Kay Model
- 除了关注zhihu与B站之外,查看每年的uod视频。因为关注卡通渲染的关系,会看cedec的一些卡通渲染相关分享,主要以记录为主。
- 捏脸
- 最后问问题
- 如果我没有通过面试,那可能是什么方面的原因?TODO是否可以以及有必要问?
职位描述 1、负责技术美术相关功能,完成诸如材质/Shader开发/渲染特性/工具管线等功能的实现和调优,提升项目表现效果; 2、发现美术制作各个环节中的需求和问题,并与程序、美术等职能的同事紧密合作,提供支持,完善流程,提升效率; 3、配合美术、引擎同事制定项目资源、性能规范和配套的自动化检测工具,并确保规范和工具在项目中的落地。 职位要求 1、本科及以上学历, 计算机及相关专业; 2、良好的图形学基础,熟悉常用渲染管线及渲染底层原理,熟悉至少一种常用游戏引擎; 3、良好的审美,对材质、灯光等影响渲染效果的因素有辨识能力,了解业内顶尖效果并制定优化方向; 4、熟悉HLSL和Shader开发; 5、熟悉renderdoc等profile工具,能定位和解决项目中的渲染问题; 6、熟悉常用的DCC软件,例如MAYA、ZBrush、Substance系列、Photoshop、Blender等。
加分项:
1、熟悉UE5引擎,有蓝图和c++基础;
2、有3A游戏/数字人等具有顶尖表现效果的项目经验;
3、有捏脸/角色制作系统经验;
4、有PCG方向经验,能设计基础生成能力并对接部门提供的AIGC能力;
5、熟悉角色动捕/动画方向优化,熟悉角色动力学/物理方向优。