高级VFX Houdini节点文档 Facet Geometry node 控制表面平滑度。(facet n. 多面体中的一个面) 此节点可以让你焊接点,或曲面法线。 Facet 和 Divide 节点类似,在中间过程中修改几何体。因此,Compute Normals(计算法线) 选项会出现两次。比如,你可以在焊接非共面点之前计算法线,因为在合并点之前就已经计算了法线,因此可以获得另外一种平滑着色和焊接点。 此节点可以用于清理多边形。你可以重定向背面多边形(在视图中不可见的面),移除退行性多边形(有点重合在一起的多边形,例如,一个两点重合在一起的三角形,它看上去是一条线),焊接或唯一化点,或硬化多边形边。 这个节点能很好的清理从 .dxf 格式导入的多边形。它可以修正其中的法线方向错误。 使用 Facet 选择面,边 或 点,然后添加此节点。 节点参数 Group 要拆分的几何体集。 Pre-Compute Normals 基于输入的几何体计算法线。 Make Normals Unit Length 重置输入的法线长度为1. Unique Points 使每个顶点为一个唯一点。 Consolidate No Consolidate 点不会被焊接到一起。 Consolidate Points Slow/Fast 在指定距离内的点会相互共享一个点。 Consolidate Normals Slow/Fast 在指定距离内的点会相互共享法线。 不应当使用旧版本的合并,它们是为向后兼容性而保留的。 Distance 用于合并的阈值距离 Use Accurate Distance 强制合并距离为该精确的值,任何强制合并操作都会以点标号顺序执行,以避免将点移动到距离内的其他点。 Remove Inline Points 如果一个点处于两点间的直线上,移除它。 Distance 用于共线操作的阈值距离。 Orient Polygons 使所有多边形朝着同样的方向。 Cusp Polygons 在临近的边上,创建硬边。 Cusp Angle 要硬化的阈值角度。 Remove Degenerate 清除任何错误的多边形。 Make Planar 展平每个多边形,使其点处于统一给平面上。 Post-Compute Normals 基于此操作节点的结果计算法线。 Reverse Normals 反转所有点的法线方向。在其它计算完成后,再执行。 POP Network 控制POP网络中的粒子模拟。 节点属性 Standard Start Time 模拟开始的时间,使用秒为单位(基于当前场景的FPS) Preroll Time PreRun,在开始时间前预先运行模拟。 Initial State 作为模拟初始状态的几何体 Random Seed 定义模拟时使用的 伪随机数。 Oversampling 帧间采样倍率 Max # of Particles 控制任意时刻的粒子最大数量。设置为0则无限制。 Remove Unused Points 删除与死亡粒子相关的点。启用此选项可以降低内存占用,禁用此选项可以通过回收点提高性能。改变此设置可能会影响与粒子相关的点的编号。 Input Geo SOP N 向上传递几何体N(法线)的SOP路径。 Viewer Transform Object 当此网络出现在视窗中时将粒子转换到此对象的空间中。 Cache Frames 当此网络可见时的缓存数。设置为0不缓存,为-1无限制缓存,为其他数值,则缓存对应帧数。 Houdini 表达式 Expression functions 表达式全局变量  部分全局变量等价于以 @ 开头的变量来适配 VEX Snippets 中的变量。 Snippet (片段)是编程用语,用来表示那些可以重复利用的代码片段。 Playback 回放 $ @ Description $FPS 每秒回放的帧数 (也可以通过播放栏上的设置修改). $FSTART 动画起始帧的帧数字 (也可以通过播放栏上的设置修改). $NFRAMES (动画帧数) = $FEND - $FSTART + 1. $FEND 动画末帧的帧数字(也可以通过播放栏上的设置修改). $F 当前帧数字, 这是个非常有用的变量,尤其是给渲染的序列帧文件编号 $FF @Frame 浮点帧数字 $NFRAMES 动画的总帧数 $NFRAMES = $FEND - $FSTART + 1. $RFSTART 播放栏中显示的第一帧的帧数字。 播放栏可以显示长动画中的特定部分,使你可以专注于编辑这部分动画。 $RFSTART 和 $RFEND 控制播放栏显示特定部分的长度 $RFEND 播放栏中显示的最后一帧的帧数字 $T @Time 以秒为单位的当前时间, 等同于 ($F-1)/$FPS $TLENGTH 秒为单位的动画总时长 $TSTART 秒为单位的动画开始时间 $TEND 秒为单位的动画结束时间 General 通用 $ACTIVETAKE 包含了当前TAKE(拍摄)的名称 $E 数学常数 e (2.71828…). $HFS Houdini的安装目录 $HH $HFS/houdini. $HIP 包含当前场景文件的文件目录 $HIPFILE 包含扩展名的,当前场景文件的完整路径 $HIPNAME 不包含扩展名的当前场景文件完整路径。你可以用此变量基于当前场景名称创建不同扩展名的文件。 $HOME 你的 Home 目录 $JOB 你的 project directory.(工程目录) $PI 数学常数 pi (3.1415926…). Channels 通道 $OS Operator String. Contains the current OP’s name. $CH Current channel name. $IV In value (value at start of segment). $OV Out value. $IM In slope $OM Out slope $IA In acceleration $OA Out acceleration $LT Local time - not including stretch or offset $IT Start time of segment $OT End time of segment $LIT Local start time of segment $LOT Local end time of segment $PREV_IT Previous segment start time $NEXT_OT Next segment end time COPs $CSTART Start frame of the current COP. $CEND End frame of the current COP. $CFRAMES Number of frames for the current COP. $CFRAMES_IN Number of frames available from the first input COP. $CINC Gets the global frame increment value. $W Current image width. $H Current image height Render nodes $N Current frame being rendered. $NRENDER Number of frames being rendered. Houdini 表达式基础 语言 Houdini可以让你使用两种语言写表达式:传统 HScript 表达式 和 Python. 此外,一些特殊节点可以让你编写 VEX snippets (VEX短代码)控制节点行为。 HScript 表达式 使用 expression functions(表达式函数)编写表达式的传统方法 Python 更强大 但是也更繁琐的方式。使用 Houdini Object Model API 和任何 Python 本身的函数。 VEX 一种快速编译的语言,只用在特定节点的特定参数上 默认使用 HScript 表达式语言,如果要使用 Python,请参照 Python parameter expressions. 字符串参数 在 数字参数 (例如 位置,缩放,旋转)中,参数中填写的文本作为表达式计算。 在 字符串参数 中(例如文件名,和由 Font node 创建的文本),参数中填写的文本被视为文字。Variables are expanded,但是若要通过表达式生成文字内容,需要把表达式放入 反引号 中。例如: frame`padzero(5, $F)`.pic …可以给你像 frame00001.pic, frame00002.pic, 这样的文件名,诸如此类。 (浏览 expressions in filenames 了解在文件名中使用表达式和变量)。 变量和属性 你的表达式可以使用 Houdini 提供的变量: 全局变量 比如 $F (the current frame number) 和 $T (the current time in seconds). 详情见 list of global variables (全局变量表格)。 几何体属性 - 在几何体的 HScript 表达式中,你可以用 @属性名称 引用几何属性的值。比如,你可以用 @pscale 获取到当前点的 pscale (点缩放) 属性。 对于像 P (position) 这样的矢量属性,你可以用点表示法来抓取其中一个值,例如 @P.x 。你可以用 .x/.y/.z 或者 .1/.2/.3 或 .r/.g/.b。 本地变量。节点通常会提供与节点类型相同的变量,对表达式很有用。比如,一个操纵几何体Point(点)的节点会提供 @ptnum 变量输出当前点的编号。节点帮助文档将会列出所有可用变量。 环境变量 例如 $HIP (场景文件所在的目录)也可以被表达式使用。 通道/参数引用 在 HScript 中你可以用 ch 函数引用节点中的参数的值。这可以用来让一个节点中的数字随着另外一个节点发生改变。 你可以创建自己的参数并引用它。详见 spare parameters.(备用参数) 要... 这样做 自动创建参数引用 源参数上右键选择 Copy parameter.(复制参数) 目标参数上右键选择 Paste relative reference.(粘贴对应参数) Houdini 会输入正确的 ch("") 语法让后一个参数引用前一个参数的值。 手动创建通道引用 用 HScrpt 表达式时,使用 ch 获得另外一个参数的值。 ch 会从当前节点的(可能的相对)路径到参数。 比如,要得到当前节点的 Z 变换属性: ch("tz") 获得 lamp 物体的 X 变换属性: ch("/obj/lamp/tx") 获得处于相同网络的 grid1 节点的 Y 旋转属性: ch("../grid1/ry") (要获得字符串的值,使用 chs.) 查询参数的内部名称 要手动引用参数,你必须知道参数的内部名称,你可以将鼠标悬停在参数框上方 或 通过参数编辑器中的 设置 ▸ 编辑参数 界面 ,点击参数然后查看 Name 区域。 提示 在几何节点中使用 HScript表达式和本地变量 在参数中修改几何体很容易。但是,在 Point Wrangle(点围栏)或 Attribute Wrangle(属性围栏)中通过 VEX snippet 修改几何体的 性能更高。 未来的版本中会更鼓励使用 VEX短代码 修改几何体。 你可以通过  Window ▸ HScript Textport  输入下面的命令查看一个表达式的值: echo `expression` Houdini 总是用网络(Network)的“配方”“从头开始”创建每一帧。表达式总是使用初始值 而不是前一帧的值来操作数值。 例如,如果你设置了一个 Point geometry node(点几何节点)给网格中的每个点添加随机的 Y 偏移值: Position Y @P.y + rand(@Frame * @ptnum) …当你回放时,点将上下随机跳跃,而不是平滑运动。这是因为每一帧时,网格都会从平整的网格开始,然后再应用随机移动给它。这个表达式不会从前一帧的几何体状态开始运行。 HScript表达式的括号用法 字符串 在单引号 (') 中的字符is not expanded. Text inside double quotes (") has variables expanded. A double-quoted string is considered one argument. A backslash character (\) escapes the next character. For example, to use double-quotes in a string: "I had a \"great\" time." When a string doesn’t require variable expansion, use single quotes to speed up evaluation. If you have two quoted strings next to each other with no spaces, they are considered a single argument. In this example… set foo = "Hello world" echo '$foo='"$foo" $foo=Hello world …the echo command has one argument: '$foo=Hello world'. Embedding In the HScript command language, text inside backticks is evaluated as an expression. For example: echo `strlen("$foo")` Tip Scripting using the HScript command language is deprecated. You should use Python instead. The string parser cannot decode nested quotes such as in the following (horribly contrived) example: echo `system("echo `ls`")` …however, it is possible to accomplish this with very careful usage of backquotes (and sometimes multiple backquotes in a row) to protect quote symbols from various levels of evaluation: echo `system('echo \`ls\`')` TIPS 各种容易忘记的小技巧 PFTrack 导入 C4D 使用 LWS 格式进行导入。工具信息 AE表达式 后期全流程 描述一个后期所需要的工具和技能的文档 后期技术速成教学 理想中的周期 学习项目 预计周期 学习内容 如何收集视频素材 1天 养成好习惯,建立好的文件系统,学会怎么使用代理,如何重新链接丢失的素材,如何替换素材 使用Davinci Resolve进行视频剪辑 2天 使用该软件进行快速粗剪,挑选素材,并完成最终剪辑所需要的软件操作技术 使用Davinci Resolve进行视频调色 1天 对视频进行色彩校正,修复过曝等问题,然后使用常用的两种影调风格化视频色彩 动画的十二个要素 1天 通常一个生动的动画需要注意的东西 如何使用After Effects制作动画 2天 使用AE制作MG动画的流程,如何使用AE、PS和AI协同工作 如何使用After Effects跟踪视频对象 1天 用AE跟踪视频中的多个运动的物体 如何使用After Effects抠出视频对象 1天 用AE将视频中的人或者物体抠出来,如何处理绿幕素材 如何使用Mocha跟踪和扣出视频对象 2天 使用Mocha插件更好的跟踪物体或者抠像,如何处理人的头发 如何将动画元素合成在视频中 1天 利用抠像和跟踪技术将MG动画置入视频场景中,合成时需要注意的细节 在软件之间交换视频数据的注意事项 0.5天 在特效软件和剪辑软件之间交换视频数据时应当使用何种格式,使用PR和AE的动态链接功能协同工作,如何在PR和Davinci Resolve之间交换剪辑时间线 如何收集音频素材 0.5天 去哪里寻找音频素材 使用基本的音效工具为视频配音 1天 使用Audition为视频制作音轨,如何调整音频的音量,如何调整音频的音高,如何对音频进行降噪,如何优化人声 如何使用合适的视频编码交付视频 0.5天 使用Davinci Resolve导出视频,使用AE导出视频时的注意事项 Media Encoder 使用技巧 0.5天 如何使用Media Encoder进行批量编码和格式转换 此表格中列举的时间为预计对方学会这个技能的时间。而实际中可能会比这个更长或者更短。 审美是非常重要的,但是审美无法直接传授,只能通过经验获得,对于这个,会提供有关 剪辑审美的视频 X1,动画审美的书 X1。 教授方式为:直接拿演示素材进行操作演示 和 提供教学视频。 AE插件 短视频技术规格