`
willzh
  • 浏览: 300754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Shake表达式

    博客分类:
  • vfx
阅读更多

Apple Shake是非常强大的后期合成软件,在很多著名电影中都有应用,例如《金刚》等。Shake的表达式跟C语言很像,先贴个操作符、函数表格以供参考。

 

Arithmetic Operators

*

Multiply

/

Divide

+

Plus

-

Subtract

Relational Operators

<

Less than

>

Greater than

<=

Less than or equal to

>=

Greater than or equal to

==

Equal to

!=

Not equal to

Logical Operators

&&

And

||

Or

!

Not

Conditional Expression

expr1?expr2:expr3

If expr1 is true (non-zero), then to expr2, else do expr3

Global Variables

time

Current frame number

Image Variables

These are variables carried by each node.

parameterName

Value of parameterName from inside that node.

nodeName.parameterName

Value of parameterName in nodeName from outside of that node.

parameterName@@time

Allows you to access a value at a different frame. For example:

Blur1.xPixel@@(time-3) looks at the value from 3 frames earlier.

bytes

The number of bytes in that image. This takes the input bit-depth when called from inside of the node, and the output bit-depth when called from outside of the node.

width

Width of the image. Takes the input width when called from inside of the node, and the output width when called from outside of the node.

height

Height of the image. Takes the input height when called from inside of the node, and the output height when called from outside of the node.

_curImageName

Returns the name of the actual file being used for the current frame. Useful when plugged into a Text node:

{FileIn1._curImageName}

dod[0], dod[1], dod[2], dod[3]

The variable for the Domain of Definition xMin, yMin, xMax, yMax, respectively.

In-Node Variables

These are channel variables used in nodes such as ColorX , LayerX , Reorder , etc. Check the documentation for specific support of any variable.

nr, ng, nb, na, nz

New red, green, blue, alpha, Z channel

r, g, b, a, z

Original red, green, blue, alpha, Z channels

l

Luminance channel for Reorder

n

Null channel. Strips out the alpha in Reorder when used like this: rgbn

r2, g2, b2, a2, z2

Second image's channel for LayerX

Math Functions

abs(x)

Integer absolute value. abs(-4) = 4. Be careful, as this will return an integer, not a float. Use fabs for float.

biasedGain(value, gain, bias)

This gives a ContrastLum -like curve that gives rolloff between two values.

cbrt(x)

Cubic root. cbrt(8) = 2

ceil(x)

Truncates to next integer. ceil(5.3) = 6

clamp(x, lo, hi)

Clamps x to between lo and hi
clamp(1.5,0,1) = 1

exp(x)

Natural exponent. exp(0) = 1

fabs(x)

Float absolute value. fabs(-4.1) = 4.1

floor(x)

Truncates to next lowest integer. floor(5.8) = 5

fmod(x,y)

Float modulus. Returns the remainder in float.
fmod(11.45,3) = 2 , ie, (3x3+2.45 = 11.45)

log(x)

Natural log. log(1) = 0

log10(x)

Returns base 10 log. log10(10) = 1

M_PI

A variable set to pi at 20 decimal places

max(a,b)

Returns maximum between a and b
max(5,10) = 10

max3(a,b,c)

Returns maximum between a, b, and c.
max3(5,2,4) = 5

min(a,b)

Returns minumum between a and b.
min(5,10) = 10

min3(a,b,c)

Returns minumum between a, b, and c.
min3(5,2,4) = 2

a%b

Modulus. 27%20 = 7

pow(x,y)

Returns x to the y power. pow(2,4) = 16

round(x)

Rounds number off. Values below x.5 are rounded to x, values equal to or above x.5 are rounded to x+1. round(4.3) = 4

sqrt(x)

Square root. sqrt(9) = 3

Noise Functions

These are ideal for WarpX and ColorX.

noise(seed)

1 dimensional cubic spline interpolation of noise

noise2d(seed,seed)

2d noise

noise3d(seed,seed,seed)

3d noise

noise4d(seed,seed,seed,seed)

4d noise

lnoise(seed)

1d linear interpolation of noise

lnoise2d(seed,seed)

2d noise

lnoise3d(seed,seed,seed)

3d noise

lnoise4d(seed,seed,seed,seed)

4d noise

fnoise(x,xScale)

1d fractal noise based on noise()

fnoise2d(x,y,xScale,yScale)

fnoise3d(x, y, z, xScale, yScale, zScale)

turbulence(x, xScale)

A cheaper, rougher version of fnoise().

turbulence2d(x, y, xScale, yScale )

Continuous 2d noise

turbulence3d(x, y, z, xScale, yScale, zScale)

Continuous 3d noise

rnd(seed)

Hash-based pseudo-random numbers. Non-hash based RNG (like rand() or drand48()) should not be used in Shake because they can't be reproduced from one machine to another, and even on the same machine, repeated evaluations of the same node at the same time would produce different results.

rnd1d(seed, seed)

1d random value

rnd2d(seed,seed,seed)

2d random value

rnd3d(seed,seed,seed,seed)

3d random value

rnd4d(seed,seed,seed,seed,seed)

4d random value

Trig Functions (in radians)

M_PI

A variable set to pi at 20 decimal places.

acos(A)

Arc cosine in radians

asin(A)

Arc sine

atan(A)

Arc tangent

atan2(y,x)

Returns the radian verifying sin(a) = y and cos(a) = x.

cos(A)

Cosine

sin(A)

Sin

Trig Functions (in degrees)

Hmmm, yummy trigonometry! Welcome back. For those of you who may have forgotten, here is a helpful chart for some commonly used equations.

acosd(A)

arc cosine in degrees

asind(A)

arc sine in degrees

atand(A)

arc tangent in degrees

atan2d(y,x)

returns the angle verifying sin(a) = y and cos(a) = x.

cosd(A)

cosine in degrees

distance(x1,y1,x2,y2)

calculates the distance between two points, (x1,y1) and (x2, y2)

sind(A)

sin in degrees

tand(A)

tangent in degrees

String Functions

stringf( "xyz", ...)

Since you basically can write books on this, here is an example. Otherwise, it is recommended to purchase a book on C. There are also several examples under the Scripts documentation. This example takes the scriptName parameter and uses the system function echo to print it:

extern "C" int system(const char*);
const char *z= stringf("echo %s",scriptName);
system(z);

printf( "xyz", ...)

strlen("mystring")

Returns the length of the string

strsub(
const char *string,
int offset,
int length
)

Extracts a string from another string.

Curve Functions

The curve functions with implicit time ( Linear , CSpline , etc.) all assume that time is the first argument, so the following statements are identical:

LinearV(time,0,1@1,20@20)
Linear(0,1@1,20@20)

You can, however, adjust the time value explictly with the V version of each curve type. For more infomation on spline types, jump to About Splines .

These are the cycle type codes:

0 = KeepValue
1 = KeepSlope
2 = RepeatValue
3 = MirrorValue
4 = OffsetValue

biasedGain(x,gain,bias)

Gives a smoothly ramped interpolation between 0 and 1, similar to Shake's contrast curve. gain increase the contrast, and bias offsets the center.

Linear(cycle,
value@key1,
value@key2,
...)

Linear interpolation from value at key1 to value at key2, etc.

LinearV(time_value, cycle, value@key1,
value@key2,
...)

Linear interpolation from value at key1 to value at key2, etc.

CSpline(cycle,
value@key1,
value@key2,
...)

Cardinal-spline interpolation, a.k.a. Catmull-Rom splines

CSplineV(time_value, cycle, value@key1,
value@key2,
...)

Cardinal-spline interpolation, a.k.a. Catmull-Rom splines

JSpline(cycle,
value@key1,
value@key2,
...)

Jeffress-spline interpolation

JSplineV(time_value, cycle, value@key1,
value@key2,
...)

Jeffress-spline interpolation

NSpline(cycle,
value@key1,
value@key2,
...)

Natural-spline interpolation

NSplineV(time_value, cycle, value@key1, value@key2,...)

Natural-spline interpolation

Hermite(cycle,
[value,tangent1,tangent2]@key1,
[value,tangent1,tangent2]@key2,
...)

Hermite-spline interpolation

HermiteV(time_value, cycle,
[value,tangent1,tangent2]@key1,
[value,tangent1,tangent2]@key2,
...)

Hermite-spline

 

分享到:
评论

相关推荐

    redis-shake.rar

    3. **过滤规则**: 用户可以根据键的模式或者正则表达式设置过滤规则,选择性地迁移部分数据,避免不必要的资源消耗。 4. **断点续传**: 在迁移过程中,如果因网络或其他原因中断,Redis-Shake可以记住进度并从断点...

    阿里redis-shake同步工具

    4. **过滤规则**:用户可以根据键的模式或者正则表达式设置过滤规则,选择性地迁移部分数据。 5. **性能优化**:通过多线程并发处理,提高数据迁移速度,同时具备智能流量控制,确保迁移过程对源Redis实例的影响最小...

    matlab中文参考手册.rar_MATLAB中文手册_matlab_matlab官方手册_shake41q_theenyf

    8. **符号计算**:MATLAB的符号计算工具箱允许进行精确的数学表达式处理,包括求解方程、化简表达式、积分和微分等。 9. **面向对象编程**:MATLAB支持面向对象的编程风格,手册会讲解类的定义、对象的创建及方法的...

    maple基本函数[定义].pdf

    * evalr, shake: 用区间算法求表达式的值和计算范围 * evalrC: 用复数区间算法对表达式求值 * value: 求值的惰性函数 求根、解方程 Maple 的求根、解方程函数包括: * fsolve: 利用浮点数算法求解 * solve/floats...

    jQuery实现仿QQ头像闪烁效果的文字闪动提示代码

    上面的代码中,当ID为mail的输入框失去焦点时,会进行邮箱格式的正则表达式校验。如果校验不通过,就会触发shake()函数使得该输入框以红色闪烁3次。 ### 4. 利用CSS进行样式的定义 为了让元素在闪烁时有明显的视觉...

    AECS6插件-Plexus_1.4.5_64bit.

    它还与其他After Effects插件如Shake、Trapcode Particular等兼容,允许用户在多个插件之间构建复杂的视觉效果链。Plexus的其他特性包括: 1. **参数控制**:提供了大量的参数调整选项,包括颜色、大小、速度、旋转...

    AE粒子插件

    6. **表达式控制**:通过After Effects的表达式语言,用户可以编程控制粒子的行为,实现更复杂的交互和响应。 7. **预设库**:包含大量预设效果,方便快速启动新项目或为现有项目增添新元素。 在使用Particular...

    wdi_6_js_demo_namespacing_modules

    Javascript 命名空间和模块目标到最后,学生应该能够: 解释立即调用函数表达式 (IIFE) 回忆一下在 JavaScript 中创建模块(也称为命名空间)的四个步骤编写返回对象的函数回想一下为什么 JS 模块中的函数是“私有的...

    Sketch engine主要功能介绍

    用户可以在**RE pattern**(正则表达式模式)中输入单词,并通过点击“P”来查看单个词的检索情况。 #### 十、WordSketch 词语特性描述 **WordSketch** 是一种基于语料库的分析工具,用于描述某个单词的语法特征或...

    Android编程常用技巧实例总结

    `main_login_shake.xml`定义了输入框的左右振动动画,设置`fromXDelta`和`toXDelta`属性来定义初始和结束时的X坐标偏移,`duration`定义动画持续时间,`interpolator`引用了`main_login_cycle_7.xml`作为插值器。...

    脚本编写规范 ver41

    此外,还有一些特殊效果,如`Flash`用于创建瞬间色彩效果,通过RGB值设定颜色,`Shake`用于使图片震动,`bgm`用于设置背景音乐,`store`标记存档点,`has`用于调用其他脚本文件。所有脚本文件应放置在`script`包下,...

    kotlin 定义接口并实现回调的例子

    在实现回调时,我们可以使用lambda表达式或匿名类来实现回调对象。 调用接口样例: 在kotlin 中,我们可以使用接口作为回调对象,例如: ```kotlin interface OnShakeListener { fun onShake() } sensorHelper....

    脚本编写规范 ver31

    9. **图片震动**:`Shake`命令加上参数(如20)使图片产生震动效果。 10. **背景音乐**:`bgm`命令设置背景音乐,后接变量名来指定音乐文件。 11. **存档点**:`store`表示到达存档点,允许用户保存游戏进度。 12...

    jQuery超棒动态表单验证效果特效代码

    这通常涉及正则表达式和条件判断,如`/^\w+@\w+\.\w+$/.test(email)`用来验证邮箱格式。 在实际应用中,压缩包内的文件可能提供了更多关于如何使用这个特效的详细信息。`使用帮助.txt`可能包含了步骤说明,`谷普...

    jQuery实现的Div窗口震动效果实例

    实现Div窗口震动效果的代码主要包含在一个立即执行函数表达式(IIFE)中。这个IIFE的目的是封装私有变量和函数,避免污染全局命名空间。在此函数中定义了一个名为`jshaker`的jQuery插件,以及相关的动画方法和配置。...

    clsWindow2.1_微信群发案例软件源码

    ' V1.9 修正函数:GetMatchHwndFromWindow 正则表达式的错误 2013/08/07 ' 修正函数:GetMatchHwndFromWindow 函数中的一些错误 2014/09/23 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByPID 根据PID...

    Windows窗口自动化操作类forVB6_V1.9beta clsWindow源码

    ' V1.9 修正函数:GetMatchHwndFromWindow 正则表达式的错误 2013/08/07 ' 修正函数:GetMatchHwndFromWindow 函数中的一些错误 2014/09/23 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByPID 根据PID...

    Windows窗口自动化操作类forVB6_V2.0 clsWindow源码

    ' V1.9 修正函数:GetMatchHwndFromWindow 正则表达式的错误 2013/08/07 ' 修正函数:GetMatchHwndFromWindow 函数中的一些错误 2014/09/23 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByPID 根据PID...

    C/C++笔试题(附答案,华为面试题系列)

    1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分) int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); a = ? 答:C错误,左侧不是一个有效变量,不能赋值,可...

Global site tag (gtag.js) - Google Analytics