zeno用户手册
如何安装ZENO
Windows安装ZENO
界面操作
界面布局
面板操作
视图操作
节点面板
时间轴
设置根路径盘符变量
设置数据缓存路径
常用快捷键
视图交互
模型操作
创建基础模型
读取模型
FBX
OBJ
ABC
变换模型
为模型位置K帧
添加颜色
模型转换
模型合并与分离
模型切割
复制模型
将模型体素化
属性操作
属性基本概念
创建属性的方法
属性数据类型
属性过滤
查看属性
创建随机属性
制作动画噪波
映射属性范围
循环操作
理解ZENO中的循环
循环判断
循环累加
打断循环
程序化变形动画
程序旋转楼梯制作
程序化多米诺生成
Instance
Instance基本流程
控制动画时间偏移
Instance制作草地
材质渲染
基本渲染流程
材质贴图赋予
摄像机
默认摄像机
导入maya摄像机
在view视角创建摄像机
摄像机动画
灯光
面光源
材质参数参考
封装SUBNET
基本封装流程
封装旋转楼梯
流体解算
流体基本解算流程
2.0制作水拍柠檬效果
流体持续发射
设置流体解算区域
动态碰撞体
刚体解算
布料解算
有限元布料解算
有限元布料基本解算流程
跳舞的女孩
MPM布料解算
MPM布料基本解算流程
固定部分布料,自定义布料受力
模拟泥土,金属以及沙子
为布料设置动态碰撞体
zplay渲染出图
-
+
首页
程序化多米诺生成
 >d 在制作之前请先设置好文件的缓存路径,避免内存不足运行失败。 点击下载工程文件:[【附件】domino2.zip](/media/attachment/2022/05/domino2.zip) ## 创建基础动态模型 1.创建==CreateCube==节点,得到一个基础的盒子,并且通过==Transform Primitive==节点控制位移和缩放。其中`translation`的==NumericVec3==的值为0.0 , 1.0 ,0。`scaling`的==NumericVec==的值为 0.15, 1.0, 0.5。  2.创建==PrimitiveToSDF==节点,将基础盒子模型转为`VDB`(体积)模型,`Dx`(精度)设置为0.03,使边缘有倒角效果。  3.创建==SDFToPrimitive==节点,将模型再转回多边形物体,方便后续的prim操作,并创建==CacheOnce==节点。让之前的运算解算时只执行一次。  4.继续创建一个==TransformPrimitive==节点,打开`Always`按钮,通过==DynamicNumber==节点创建一个z值的动画参数来控制旋转,其中第0帧是z值是0,第26帧时z值是-1.3。并且点击`Edit Curve`按钮,调整动画曲线为开始开始到缓慢结束。到此,我们就已经创建好了一个多米诺基础动画模型。   ## 批量设置位移旋转 1.首先创建==NumericFloat==节点,`value`值为22,这个值代表我们将要产生的多米诺的数量。然后创建==beginFor==节点。`count`端口给到==NumericFloat==的valume输出端口。再创建一个==EndForeach==节点,端口`For`连给==BeginFor==的`For`端口。最后创建一个==NumericOperator==节点,`op_type`选择`tofloat`。将==BeginFor==的循环`Index`转换为浮点。  2.创建==MakeDict==节点,第一个输入端口连给转浮点的==NumericOperator==,输入名称为`i`。第二个输入端口连给设置了22数量的==NumericFloat==,输入名称为`count`。并且连给新建==NumericWrangle==节点的`params`的接收端口上。  3.创建==MakeMultilineSting==并再里面输入以下代码: >s delta = 3.1415926 * 2 / $count r = 5.5 posx = r * cos(delta*$i) posz = r * sin(delta*$i) @pos = vec3(posx,0,posz) 其中`r`可以控制多米诺最终排列圆形的大小,`@pos`代表每个多米诺的位置。写完后将输出端口连给==NumericWrangle==节点的`zfxCode`接收端口,再创建一个==DictGetitem==节点,`dict`端口连接==NumericWrangle==的`result`输出接口,`key`里输入pos,代表将zfx里的`@pos`数据提取出来。  4.创建一个==transformprimtive==节点,`prim`端口连接给之前创建的动画box模型,`translation`端口连给==DictGetitem==节点。输出`outPrim`端口连个==EndForEach==节点,点击`Run`按钮,我们就可以看到视图种的多米诺已经按照圆形排列了。   5.现在来设置每个多米诺的旋转弧度,首先在之前创建的==MakeMutilineString==节点里再输入: >s @angle = vec3(0,3.1415926 - delta * $i +1.35 ,0) 再创建一个==DictGetItem==节点设置`key`为`angle`。将输出端口连给最终的==TransformPrimitive==的`eulerXYZ`端口。点击`Run`,我们就可以看到多米诺有沿着Y轴有一个正确的旋转了。   ## 设置时间偏移 1.我们回到创建动画模型设置节点附近,创建一个==GetFrameNum==节点,并且添加一个==NumericOperator==节点,设置`op_type`为sub(减法),减去z转换为浮点的循环`index`值。将最后输出的结果给到====现在我们播放动画已经是有偏移了,只不过前面多米诺的倒下时间过快了。   2.在Frame减去`index`之前,我们再次创建一个==NumericOperator==和`index`相乘,乘的数值为8,(值越大每个多米诺倒下的时间间隔越大),我们现在`run`场景,就可以得到一个正确的时间偏移。   ## 设置随机颜色 1.颜色设置需要再==EndForEach==和最后一个==TransformPrimtive==之间设置。首先创建一个==PrimitivePerlinNoiseAttr==节点,得到一个噪声属性,`attrName`输入`noise`,`attrType`为`float3`,`prim`接收端口连sdf转换多边形之后的==CacheOnce==节点(确保位置属性是稳定的),`prim`输出端口连给一个新建的==PrimitiveGetAttrValue==节点,`name`输入noise,`type`为float3。输出给一个新的==MakedDict==节点,参数名为`noise`。最后创建一个==ParticlesWrangle==节点,`Prim`连给最后一个==TransformPrimitive==节点的outPrim端口,`zfxcode`里输入“@clr = $noise”,`params`连接==MakedDict==节点,最终结果输出给==EndforEach==,现在点击`Run`,我们可以看到有了不同的颜色,但是会闪烁。   2我们只需把==PrimitivePerlinNoiseAttr==节点的`seed`接收端口连给循环的`index`值,就可以得到每一帧都是稳定的颜色属性了。   3.下面我们来解决颜色偏暗的问题,只需要在==PrimitiveGetAttrValue==节点创建一个==Numericlnterpolation==节点对得到的`noise`属性数据做一个范围映射,`isClampe`输入1,`srcMin` -0.2,`srcMax` 1.0,`dstMin` 0,`dstMax 1.5。颜色就被提亮到0-1.5之间了。  ## 设置材质灯光 1.在==EndForEach==之后我们创建一个==PrimMerge==节点,把`Prim`端口连给一个新建的==setMaterial==,再创建一个==shasderFinalize==节点,最下面的`mtl`端口连给==setMaterial==的`mtl`端口。且把`metallic`设置为0.5.最后创建一个==shderInpuAttr==节点,`attr`设置为clr,把`out`端口连给==shasderFinalize==的basecolor。这样,多米诺就拥有了材质并且继承原有的颜色属性。  2.创建一个==CreatePlane==节点作为地面。并且通过==TransformPrimitive==扩大15倍,再次通过==setMaterial==和==shasderFinalize==节点为地面赋予材质,`basecolor`为一个==NumericVec3==,值为0.25,0.1,0.2。  3.点击`Display`取消`Show Grid`,点击`Background Color` ,设置背景颜色为黑色。  4.点击`setlight`,可以控制灯光的强度颜色和范围,设置之前先点击`Keyframe`,并且把帧数放在0帧,可以点击`Add`按钮添加第二个光源。在`EnvTex`菜单下可以设置不同的环境光照贴图。  ## 相机动画和输出 1.在`Display`菜单下点击`Camera Keyframe`,在0帧时点击`key Current Frame`设置一个初始镜头关键帧,讲时间轴拖动到200帧,旋转下镜头角度,再次点击`key Current Frame`,再次拖动时间轴就可以看到设置好的镜头动画了。  2.在`Record`菜单下点击`Record Video`命令,设置好起始时间和`Path`路径。点击`Ok`就可以将当前动画输出为视频文件了。  
caofei
2022年5月31日 19:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
None
None
None
None
None
Markdown文件
分享
链接
类型
密码
更新密码