17 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			17 KiB
		
	
	
	
	
	
	
	
Client动捕虚拟偶像直播
- 
项目需求
- 捏人系统、道具、方便的加载资产以及相关商城,参考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。
 - 
快速/高效迭代管线
- 初期迭代:
- 程序&TA:提取其他游戏与软件的资产作为构建捏脸系统的资源,并且构建捏脸系统,到美术可使用的级别。提取资产来源:各个资源风格都会不同,建议分别独立使用。
- 基础捏脸&调整身体,可以通过简单交互创建头发。预制几个衣服模版+绘制贴图或者提供上传衣服资产功能。
- 使用笔刷工具调整身体或者脸部细节。
 
 - 卡通风格:
- Vroid Studio
 - 蓝色协议
 - Honey Select2
 3D定制女仆2- FF14?
 
 - 写实风格:
 - 自动绑定?
 
 - 基础捏脸&调整身体,可以通过简单交互创建头发。预制几个衣服模版+绘制贴图或者提供上传衣服资产功能。
 - 美术:美术同学使用该系统给客户定制时,发现缺少某个形变方向的BS时提单。之后进行制作补充。
 - AI:
- 使用大致的体型简笔画图片(可交互的三视图,可以调整三视图的体型;同时会与BS的参数同步)或者照片计算出大致符合体型区间的BS组合(几个风格分别计算)。
 - 使用大致的脸部简笔画图片或者正面照片计算出大致符合的脸部BS组合。
 - 自动绑定?
 
 
 - 程序&TA:提取其他游戏与软件的资产作为构建捏脸系统的资源,并且构建捏脸系统,到美术可使用的级别。提取资产来源:各个资源风格都会不同,建议分别独立使用。
 - 中期迭代:
- 程序&TA:主要完善各种捏脸细节,制作物理、场景效果、构建面向用户的客户端。准备跑通整个流程。
- 实现骨骼 <=> BS互相转换工具以及混合方案。
 - 将ML Cloth&Muscle
 
 - 美术:除了制作脸部&身体,开始制作头发、衣服以及其他道具与身体细节。
 - AI:
- 使用大量的真人&各种卡通角色的身体截图&脸部截图来验证,捏脸系统的缺少的方向,给美术提供迭代方向。(可以配合AI生成图片技术)
 
 
 - 程序&TA:主要完善各种捏脸细节,制作物理、场景效果、构建面向用户的客户端。准备跑通整个流程。
 
 - 初期迭代:
 - 
项目对象
- 个人主播
 - 小团队主播:1个演员+2~3人。
 - 中型团队:1个演员+1~2导播+技术人员若干+运营若干。
 
 - 
快速迭代建议
- 场景
- 小关卡: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、熟悉角色动捕/动画方向优化,熟悉角色动力学/物理方向优。