280 lines
17 KiB
Markdown
280 lines
17 KiB
Markdown
# 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
|
||
- 快速/高效迭代管线
|
||
- 初期迭代:
|
||
- 程序&TA:提取其他游戏与软件的资产作为构建捏脸系统的资源,并且构建捏脸系统,到美术可使用的级别。提取资产来源:各个资源风格都会不同,建议分别独立使用。
|
||
- 基础捏脸&调整身体,可以通过简单交互创建头发。预制几个衣服模版+绘制贴图或者提供上传衣服资产功能。
|
||
- 使用笔刷工具调整身体或者脸部细节。
|
||
- 卡通风格:
|
||
- Vroid Studio
|
||
- 蓝色协议
|
||
- Honey Select2
|
||
- ~~3D定制女仆2~~
|
||
- FF14?
|
||
- 写实风格:
|
||
- DAZ3D
|
||
- MetaHumanCreator?
|
||
- https://www.studocu.com/in/document/matoshri-college-of-engineering-and-research-centre/mathematics/meta-human-creator-the-starting-point-of-the-metaverse/78324723
|
||
- 自动绑定?
|
||
- 美术:美术同学使用该系统给客户定制时,发现缺少某个形变方向的BS时提单。之后进行制作补充。
|
||
- AI:
|
||
- 使用大致的体型简笔画图片(可交互的三视图,可以调整三视图的体型;同时会与BS的参数同步)或者照片计算出大致符合体型区间的BS组合(几个风格分别计算)。
|
||
- 使用大致的脸部简笔画图片或者正面照片计算出大致符合的脸部BS组合。
|
||
- 自动绑定?
|
||
- 中期迭代:
|
||
- 程序&TA:主要完善各种捏脸细节,制作物理、场景效果、构建面向用户的客户端。准备跑通整个流程。
|
||
- 实现骨骼 <=> BS互相转换工具以及混合方案。
|
||
- 将ML Cloth&Muscle
|
||
- 美术:除了制作脸部&身体,开始制作头发、衣服以及其他道具与身体细节。
|
||
- AI:
|
||
- 使用大量的真人&各种卡通角色的身体截图&脸部截图来验证,捏脸系统的缺少的方向,给美术提供迭代方向。(可以配合AI生成图片技术)
|
||
- 项目对象
|
||
- **个人主播**
|
||
- **小团队主播**:1个演员+2~3人。
|
||
- 中型团队:1个演员+1~2导播+技术人员若干+运营若干。
|
||
- 快速迭代建议
|
||
- 场景
|
||
- 小关卡:MultiUserServer多人协作+多个协作用子Level。
|
||
- 大世界:版本管理做好就行。
|
||
- USD流程?
|
||
- 自动测试框架 & 可视化日志:高频迭代后,可以构建。
|
||
- CI/CD + UnrealGameSync + Unreal Zen:构建打包引擎并且拉新。
|
||
|
||
|
||
- AI动捕优化思路:
|
||
1. 模仿ChaosBone,使用CUDA直接读取Bone动画数据并且传递给动画蓝图。(CUDA具有访问指定显存的功以此节约io损耗)假定用户使用双显卡(渲染/直播推流)将AI动捕的负荷移动到另一张卡上。
|
||
2. 使用多线程与帧采样解决数据抖动问题。同时可以略微降低ai动补的性能要求。
|
||
- 卡通渲染:
|
||
1. 兼容VRM格式。(VoidHUB)
|
||
1. 同时不断往里面添加自己规范(成为VRM的超集)
|
||
2. 兼容多种渲染风格,Unity-Chan、VRM、罪恶装备等。并在此基础上尝试研发下一代卡通渲染风格。
|
||
1. 需要一种能够向渲染管线传递大量参数的功能:
|
||
1. 增加GBuffer数量。
|
||
2. 前向 + 延迟管线。(Forward+)
|
||
3. 低频数据查表法。
|
||
2. 插画&厚涂,使用GI、反射、天光散射等多种外界因素,以曝光度&时间为尺,融合在一起。
|
||
3. 需要收集插画作品PSD源文件,对风格进行分类之后,对图层进行分类。尝试用图形算法与AI尝试还原每个图层。
|
||
4. 参考日本动画有关 “摄影”的方法(AE),并且在UE中实现。
|
||
5. 以4个时间段&天气环境状态制作LookDev场景,并且保证时间循环下效果平滑(需要调整曲线)
|
||
6. Lumen以及MageLight ReSTIR的支持。
|
||
3. AI
|
||
1. 渲染管线里5.3已经支持神经网络(NNE)接口。 其中一种方法使用ONNX。
|
||
4. 对c端用户来说:
|
||
1. 需要一个简单出效果的东西。简单调节参数。
|
||
2. 有几个风格模版。
|
||
5. 一个角色的渲染控制资产:基础材质(参数+贴图)、ToonDataAsset。方便管理与迭代。
|
||
- 面捕&VMC:
|
||
1. 抖音既然是一个全球性的平台,在兼容VMC与LiveLinkFace的基础。进行扩展,比如VMC中增加更多的场景控制、整活互动功能。使用ARKit开发类似FaceMask的工具,让用户可做出更多的表情与表演效果。
|
||
1. 考虑对VMC协议进行改造,添加TCP、Protobuf支持。
|
||
2. 面捕矫正问题。
|
||
- 参考[MuRo_CG](https://www.youtube.com/@muro_cg)的作品。
|
||
1. 直播工具。
|
||
2. 辅助番剧制作工具。
|
||
- 捏脸&资产上传:
|
||
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确定瓶颈是CPU(GameThread、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 GI(Lumen)
|
||
- 向下采样
|
||
- 平滑法线采样
|
||
- 兼容Matcap方式的局部照明效果
|
||
- ToonTranslucent
|
||
- 睫毛眉毛偷过头发
|
||
- 透明物体描边
|
||
- ToonPostProcess
|
||
- 晕染效果
|
||
- ToonDiffusion:对场景亮部进行降采样,之后将亮度信息叠加到Toon物体的暗部上。
|
||
- Anti-ToneMapping
|
||
- 延迟 + 前向混合管线(原神)
|
||
4. 其他技术栈。Nodejs系列的前后端APP;Qt、Pyside2;
|
||
4. 手游美术效果研发
|
||
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
|
||
- 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
|
||
- 评估很多相对再PC上表现效果好的技术,能不能在进行一些算法简化后,移植到移动端。
|
||
5. 手游平台的优化
|
||
- 根据项目类型不同,侧重不同的优化方向:
|
||
- 大世界项目,主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
|
||
- 箱庭类ARPG项目,会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
|
||
- 特效粒子数。
|
||
- 材质指令数目是否超标。
|
||
- 一些渲染Pass的性能占用情况。
|
||
- 优化策略
|
||
- 一般通过延迟毫秒数去判断某个效果是否值得优化。首先会对所有效果进行排序,0.2毫秒以上的重点关注,0.5毫秒以上的重点处理。
|
||
2. 增强游戏的表现力与运行效率,对业务需求进行评估并进行方案的实现与落地;***TODO***
|
||
1. 多技术栈,方案会有更多的考量。
|
||
2. 针对手游平台,手游是pc效果上做了效果与精度上的减法。比较差异差异之后,综合考虑性能损耗与效果提升,建立效果实现表。进行有计划的提升。根据手机性能开启对应的效果。
|
||
3. 比如云,以原神为例子。
|
||
3. 负责游戏中性能优化相关工作,根据项目需求定制增改Unreal4引擎底层功能;
|
||
1. 优化项目举例,参与多个项目。
|
||
2. 定制的一些引擎功能展现卡通渲染定义功能。***TODO***
|
||
4. [x] 根据项目的需求搭建高效的内容制作管线,提高团队的研发效率;
|
||
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没有及时下载,视频没了,还好知乎有人分享心得。
|
||
6. 根据需求查看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系列、**Photoshop**、**Blender**等。
|
||
|
||
加分项:
|
||
1、熟悉UE5引擎,有蓝图和c++基础;
|
||
2、有3A游戏/数字人等具有顶尖表现效果的项目经验;
|
||
3、有捏脸/角色制作系统经验;
|
||
4、~~有PCG方向经验~~,***能设计基础生成能力并对接部门提供的AIGC能力***;
|
||
5、熟悉角色动捕/**动画方向优化**,熟悉角色动力学/物理方向优。 |