目录
Muscles pass
Tissue pass
Skin pass
Simulation transfer
Muscles pass
Muscles & Tissue的第一阶段内,为模拟创建muscle pass,会创建solid肌肉几何体(用动画骨骼移动和弯曲),然后驱动下游组织的大部分变形(point deforms);
导入static muscle surfaces,animated bone surfaces、static t-pose bone surfaces
- muscle surface应是无洞或桥不交叉的多边形几何体(真实世界比例);
命名muscles
- 在四面体化前,每个muscle都需有muscle_id属性;
移除任何不需要的几何体组(可选)
- 如使用组去选择muscle surface,不再需要这些组应移除;
为bone surface设置t-pose
- Set T-pose SOP(即Rest Position SOP)创建tpose点属性;
外部三角化muscle(可选)
- skin surface在四面体化前需三角化,传统上在Muscle Solidify SOP节点使用Remesh Surface参数设置;
- 为更加控制,可在外部使用Remesh SOP节点;
三角化然后四面体化muscle surfaces
- 使用Muscle Solidify SOP节点;
- 实体muscle没有一个外部的多边形surface,会在解算器中实时创建(仅在被滑动约束要求下);
- 注,此节点后不要在插入节点来改变点位置;
Groom muscle fiber diection
- 当肌肉弯曲flex时,会在该矢量方向收缩;fiber vector会定义肌肉局部轴的方向;
- 方向会存储在materialW属性上,然后被Muscle Flex SOP节点使用;
设置muscle物理特性
- 使用Muscle Properties SOP节点;
- 确定肌肉的物体特性如对外形变化的抗力,肌肉的僵硬或松弛,收缩或膨胀等;
- shape stiffness,保持原始形状的刚性;
- damping ratio,肌肉外形变化的多快;
- Mass Density,确定四面体数量是否影响其在模拟中的整体质量或外观;
- fiber stength,决定肌肉受挤压的强度;
- fiber damping,控制肌肉收缩的速度;
- fiber scale range,定义肌肉张力的最小/最大阈值;
- fiber volume scale,控制当完全收缩时应用到四面体的volume scale力;
- tendon stiffness,确定应用到shape stiffness的缩放因子;
- tendon mask radius,定义tendon区域;
- thickness threshold,定义tendon stiffness阈值,高于阈值视为belly,低于阈值视为tendon;
Preroll the bone surfaces
- 使用Muscle Preroll SOP节点,从tpose到起始状态的变换存储于detail的preroll_属性;
设置muscle约束特性
- 使用Muscle Constraint Properties Vellum SOP节点;
- 为肌肉创建和配置约束,将肌肉附着于骨骼或相互彼此等;
镜像muscles(可选)
- 使用Muscle Mirror SOP节点;
绘制tissue property masks(可选)
- 使用Muscle Paint SOP节点;
创建muscle tension lines
- 使用Muscle Tension Lines SOP节点;
- 肌肉激活的触发,肌肉张力的增加和减少,muscletension属性驱动肌肉的弯曲;
- 属性autoflex_id,restlength,length,
获取preroll bone surfaces
动画muscle tension
- 使用Muscle Flex节点;
模拟解算muscles
- 使用Muscle Vellum Solver SOP节点;
缓存muscle解算结果
收集肌肉和骨骼
Tissue pass
Muscles & Tissue的第二阶段内,为模拟创建tissue pass,会围绕肌肉创建填充四面体,填充core layer与tissue layer之间的间隙;tissue pass显示肌肉定义和较粗糙皮肤褶皱,下游skin pass则显示精细皮肤褶皱并为外表添加额外细节;
tissue pass包括两层,每层都是两个独立的几何体组成,每层也都有独立的物理特性和约束:
- core layer,core solid(内部四面体),core surface(外部三角化表面);
- tissue layer,tissue solid(内部四面体),tissue surface(外部三角化表面);
导入skin surface
- 导入原始高精度皮肤表面几何体;
从muscle pass获取模拟muscle和动画bone surface
从muscle solid和bone surface提取t-pose
合并模拟muscle和动画bone surface
外部三角化tissue surface(可选)
- 四面体化前需三角化tissue surface,传统上是在Tissue Solidify SOP上使用remesh surface参数设置;为更加控制,可在外部使用Remesh SOP节点;
- 使用Attribute Paint SOP、Attribute Remap SOP控制size;
- 最后删除这些不必要的属性;
三角化tissue surface并四面体化
- 使用Tissue Solidify SOP节点;
缓存tissue几何体(可选)
绘制tissue property mask(可选)
设置tissue properties
- 使用Tissue Properties SOP节点;
使tissue的区域rigid(可选)
- 使用Group Create SOP节点;
- 在Tissue Solver Vellum节点Advanced/Rigid Group使用;
Preroll tissue
- 使用Muscle Preroll SOP节点;
从muscle pass获取模拟muscle和动画bone surface
合并所有muscle和bone几何体
模拟解算tissue
- 使用Tissue Solver Vellum SOP节点;
清理解算的tissue
- 使用Blast SOP、Clean SOP移除solid和不需要的属性;
- 保留tpos属性;
缓存解算的tissue
Skin pass
一旦完成tissue的模拟,即可创建skin pass,可创建额外tissue layer(为最外表添加额外细节);
skin pass由两独立几何体组成:
- skin surface,外部三角化表面;
- skin solid,内部四面体;
导入skin surface几何体
外部三角化skin surface(可选)
三角化skin surface并四面体化
- 创建Skin Solidify SOP节点;
使shin的区域rigid(可选)
绘制skin property mask(可选)
设置skin properties
- 使用Skin Properties SOP节点;
获取tissue解算缓存
Preroll skin
- 使用Muscle Preroll SOP节点;
模拟解算skin
- 使用Skin Solver Vellum SOP节点;
清理解算的skin
- 使用Blast SOP、Clean SOP移除solid和不需要的属性;
- 保留tpos属性;
缓存解算的skin
Simulation transfer
一旦完成角色Muscles & Tissue的模拟,即可从tissue或skin传递所有点变形到高精度mesh;