Reverse Foot Rigging Tool
Hatching Post Processing
Pointillism Material
Water System
Water System
Water System
Statue Destruction Effect
Bird Flock System
Interactive Bottled Liquid Material
Glass Bottle Material
Interactive Butterfly Effect
Procedural Ice Cream Cone
- Reverse Foot 绑定工具:用Python为Maya开发的芭蕾舞者上足尖Reverse Foot绑定工具。
- 手绘后处理:在UE中实现的手绘后处理效果,包括带扭曲的描边、素描排线,并支持光源交互与半透明材质处理。
- 点彩材质:新印象主义点彩材质。
- 水:在UE中开发的水系统,涵盖水面表现、水下效果,以及与环境和角色的交互。
- 雕塑破碎特效:使用Houdini的程序化破碎和UE的顶点动画,制作了一个定向雕像破碎效果,配合打光,尝试不用物理模拟实现电影感的破碎表现。
- 鸟集群运动:基于Niagara创建的鸟群系统。鸟的个体动画通过顶点动画纹理实现,行为及个体间距通过多种力和Neighbor Grid 3D模块控制。
- 交互式瓶装水材质:在Unity URP中设计的交互式瓶装液体材质。液体会根据瓶子的运动动态反应,模拟晃动与波浪效果,并展现折射与反射等视觉效果。
- 玻璃瓶材质:在Unity URP中创建的真实感玻璃瓶材质,具备折射、反射、表面细节及半透明阴影等特征。
- 交互式蝴蝶特效:在Unity中开发的交互式蝴蝶特效。蝴蝶围绕灯笼飞舞,并会被接近的玩家吸引。与玩家接触后,蝴蝶会在梦幻的声音中化为柔和的光点并逐渐消失。
- 程序化冰淇淋甜筒:在Houdini中制作的程序化冰激凌甜筒,可在甜筒上合理放置不同数量不同种类的冰激凌球。
一个综合水系统,涵盖水面表现、水下效果以及与环境和角色的交互。
水面
- 波浪
- 大规模波动:通过基于噪声的位移应用于Virtual Heightfield Mesh实现。
- 细表面波纹:叠加法线贴图,并结合可调节的UV缩放与速度,增强细节真实感。
- 反射
- 屏幕空间反射 (SSR):通过HLSL实现自定义SSR,提供更精确的衰减和边缘控制。
- HDR反射:叠加HDR环境反射,用于补充屏幕空间外的反射区域,确保无缝的环境效果。
- 折射: 通过噪声扭曲屏幕空间UV坐标生成折射效果,并由深度控制折射强度。
- 深度渐变: 绝对深度渐变用于根据水深计算明暗变化,增加水下视觉层次感;场景深度渐变用于在水线附近创建平滑的过渡效果。
- 菲涅尔效应:添加菲涅耳项,模拟视角与折射反射的自然关系。
- 高光反射:手动计算高光反射,模拟真实的水面光斑效果,同时避免默认Lit材质的性能开销。
水下效果
-
暗角:使用椭圆形渐晕遮罩暗化屏幕边缘,增强沉浸感并引导视觉焦点。
- 扭曲与模糊:屏幕空间扭曲模拟水体运动引起的视觉偏移;高斯模糊柔化水下视觉,呈现自然效果。
-
深度雾:基于场景深度计算深度雾效果,逐渐遮挡远处物体,模拟光衰减。
- 水线过渡:使用动态的基于模板的遮罩分隔水上与水下视角,随摄像机移动生成平滑过渡区域。
- 水下视角的水面:自定义渲染水下视角的水面效果,动态调整法线与位移,与水面材质匹配。
水体交互
- 环境交互
- 焦散效果:通过基于贴花的焦散效果,结合噪声扭曲采样模拟光线折射;RGB偏移添加色散效果,模拟光的颜色分离。
- 泡沫:根据深度计算生成泡沫,增强浅水区与障碍物的细节表现。
- 湿润效果:基于贴花的湿润效果模拟附近及浸没物体的表面湿痕,可调节透明度与衰减范围,实现自然过渡。
- 焦散效果:通过基于贴花的焦散效果,结合噪声扭曲采样模拟光线折射;RGB偏移添加色散效果,模拟光的颜色分离。
- 角色交互
- 波浪模拟:通过Render Target捕捉角色运动,动态更新水面高度与法线,生成逼真的涟漪与水花效果。
- 摄像机水滴:当从水下浮出时,镜头上出现程序生成的水滴。水滴会逐渐蒸发,其形状与拖尾效果通过基于噪声的算法动态生成。
使用Houdini的程序化破碎和UE的顶点动画,制作了一个定向雕像破碎效果,配合打光,尝试不用物理模拟实现电影感的破碎表现。
模型处理、破碎与数据存储
-
模型预处理:将原始雕像简化为半身胸像;调整UV映射,并通过VDB转换重新网格化模型,确保几何体闭合并优化拓扑以适应破碎需求。
-
非均匀破碎:基于爆炸点的距离进行非均匀破碎,靠近中心的碎片更小且更密集;使用PyroSource节点在爆炸球体范围内散布点,移除雕像外的点后,将剩余点用作RBD Material Fracture的指导点。
- 数据存储:将质心坐标和距离存储在UV通道中:UV1—X和Y质心坐标;UV2—Z质心坐标和距离到爆炸中心的值。
顶点动画
- 数据读取:在UE中从UV通道解压质心坐标和距离数据,并修正Houdini与UE坐标系统的差异。
-
碎片动画包含两种位移:
- 轴向位移:沿爆炸轴的运动,位移大小由破碎进度缩放,并使用噪声和正弦波形模拟重力效果。
- 径向位移:从爆炸轴向外扩散,位移大小由破碎进度与噪声控制。
- 旋转:碎片围绕质心旋转,旋转轴随机,速度与破碎进度挂钩;较小的碎片旋转速度更快,增强动态效果。
- 破碎进度控制:使用标量参数控制破碎进度,基于碎片到爆炸中心的距离决定其位置和旋转状态。
打光与调色
- 调整体积雾与灯光参数,增加深度与氛围感;放置多个立方体遮挡方向光,创造特定形状的丁达尔效应;使用两个矩形灯从特定角度微妙地突出雕塑。
- 在后处理中进行调色,微调整体的色调与情感氛围。
动画与渲染
- 动画控制:在UE的Sequencer中为破碎进度添加关键帧,使用材质参数集合(Material Parameter Collection)同步动画时间轴。
- 渲染输出:使用Movie Render Queue进行最终动画渲染,确保高质量输出。
一个基于Niagara的程序化鸟类集群运动系统,通过顶点动画纹理 (VAT) 动画驱动静态网格,并使用多种力和Neighbor Grid 3D模块控制行为及个体间距。
静态网格的顶点动画
- 转换:使用Unreal的AnimToTexture插件将骨骼动画转换为顶点动画纹理 (VAT);动画数据存储在纹理中,并通过自定义材质应用于静态网格。通过VAT减少绘制调用,并利用实例化技术提高性能。
- 翅膀拍动随机化:动态材质参数AnimationTimeOffset为每个粒子分配随机起始帧,避免动画同步,呈现更自然的效果。
Niagara系统
- 鸟群行为模拟
- Vortex Force增加旋转运动,模拟动态的鸟群飞行模式。
-
Drag Force模拟空气阻力,保持运动的平稳性与控制感。
-
Repulsion and Attraction确保鸟群维持队形,同时避免碰撞。
- Curl Noise引入随机混乱的运动,增强自然感。
-
维持粒子间距:
使用 Neighbor Grid 3D 模块跟踪每只鸟与其邻居的距离,维持合理的间距。
- 网格初始化:设置每个网格单元的最大邻居数量限制。
- 填充网格 (Fill Grid):将粒子分布到网格单元中。
- 查询网格 (Query Grid):计算粒子间的距离,并调整速度以实现逼真的分离效果。
- 调试:使用立方体网格和文本可视化网格及邻居计数,辅助优化鸟群行为。
一个交互性的欺骗性瓶装液体材质,能动态响应瓶子运动,模拟液体的倾斜与波动,同时展现真实感的折射和反射效果。
波动、波浪与裁剪
- 倾斜与波动:顶点围绕液体中心的 x 和 z 轴旋转,方向向量调整动态模拟液体的倾斜与晃动效果。
- 波浪:通过对波动调整后的方向向量应用正弦函数,生成相互交叠的波浪模式。
- 裁剪:使用Step节点将单位方向向量的y分量与从0~1映射到的-1~1的液面高度参数进行比较,通过alpha裁剪呈现预期的液体液面高度。
侧表面
- 折射:通过屏幕空间采样结合高斯模糊实现真实感折射效果。
- 视差效果:通过计算虚拟折射方向的UV偏移,模拟液体内漂浮粒子的深度效果,增强真实感。
- 菲涅耳:叠加一层菲涅耳边缘颜色。
上表面 (主要挑战)
- 表面投影:根据晃动倾斜角度与液面高度计算,将背面顶点投影到液体表面。
- 法线扰动:通过波浪计算生成的法线变化,增强液面动态效果。
- 漂浮粒子:使用扰动的UV采样贴图模拟随液面起伏的粒子。
- 反射:根据法线变化,用反射探针捕捉动态反射效果,并通过脚本实时更新探针位置与液体位移同步。
Output Switching
- 使用Switch by Face节点切换侧表面和上表面效果输出,并用alpha裁剪液面高度。
一个在Unity URP中实现的真实感玻璃瓶材质,结合折射、反射、表面细节和半透明阴影效果。
模型处理
- 在Blender中处理玻璃瓶模型,将内壁与外壁分离,便于更好地控制材质属性并解决透明度排序问题。
Shader Graph
- 厚度与折射:基于法线与视角方向计算厚度,模拟玻璃边缘的自然暗化效果;使用屏幕空间采样偏移实现折射,并通过alpha调整增强光线折弯的真实感。
-
反射与高光:利用Unity自带的Lit Shader,启用“Preserve Specular Lighting”选项。
-
表面细节:使用粗糙度贴图模拟指纹和污迹等细微表面纹理;添加法线贴图,刻画玻璃表面微小划痕,提升材质真实感。
HLSL Shader
- 半透明阴影:自定义阴影投射行为,使用抖动(Dither)方法生成半透明阴影;将alpha裁剪与阴影投射结合,创建真实的光影过渡效果。
渲染顺序
- 按以下顺序解决透明度排序问题:内壁2998,液体2999,外壁3000
后处理
- 调整HDR天空盒以改善光照与反射的整体效果。添加了后期处理效果来校正 HDR 天空盒的过度曝光,并应用泛光效果来增强玻璃表面反射光泽。
在Unity中制作的交互式蝴蝶特效。蝴蝶围绕灯笼飞舞,并会被接近的玩家吸引。与玩家接触后,蝴蝶会在梦幻的声音中化为柔和的光点并逐渐消失。
粒子系统
- 粒子设置
-
配置粒子的大小、生命周期以及球形发射区域。
- 使用粒子系统的Noise、Limit Velocity over Lifetime、Lights等模块模拟蝴蝶的自然运动。
- 自定义贴图与动画
- 在Photoshop中设计蝴蝶尾迹贴图和动画图集(Sprite Sheet),并使用 Stretched Billboard渲染模式应用贴图与动画。
- 最初尝试通过mesh旋转实现翅膀拍动,但因碰撞问题弃用,改用Texture Sheet Animation实现更流畅的效果。
- 外力与碰撞
- 添加球形风场,模拟蝴蝶自然飞行以及被玩家吸引的运动效果。
- 启用碰撞功能,并设置粒子在碰撞时减少生命周期,同时使用子发射器生成发光粒子,粒子逐渐缩小并消失,增强视觉效果。
- 玩家吸引:在玩家身上添加碰撞体与风场,当蝴蝶进入一定范围时被吸引。
- 声音效果:使用脚本在蝴蝶碰撞时触发随机音高与音量的风铃声,营造动态的听觉体验。
在Houdini中制作的程序化冰激凌甜筒,可在甜筒上合理放置不同数量不同种类的冰激凌球。
华夫甜筒
- 基础形状:使用PolyExtrude创建甜筒的基本华夫结构。
- 破损效果:使用PointWrangle和CopyToPoints散布点并添加表面凹凸,模拟自然破损感。
- 华夫格纹理:将网格与粒子结合,使用 VDB 创建纹理结构并加入噪声;使用PointVOP添加颜色变化,增强纹理细节。
- 锥形调整:通过Bend和Lineartaper节点完成甜筒的最终形状调整。
- 基础形状:使用Mountain和颜色节点制作不规则冰淇淋球。
- 变体:
- 巧克力酱:添加噪声后散布点,通过 VDB 细化形状,模拟融化的巧克力酱。
- 糖针:散布点并复制多种大小和方向的糖屑模型。
- 水果块及咬痕:使用布尔操作创建咬痕效果,并填充散布的水果模型,与冰淇淋球融合。
- 使用管状模型建模,通过 VEX 脚本生成条纹装饰,增加甜筒的视觉吸引力。
- 范围限定:使用球体和IsoOffset定义冰淇淋球的摆放体积范围。
- VEX 调整:应用 VEX 脚本,将冰淇淋球的位置分布调整为向上螺旋的模式。
- 位置分配:分配几何索引,并通过CopyToPoints节点将冰淇淋球按逻辑排列到甜筒上。