Adobe 12040118 Tutorial - Page 555

Save and reuse expressions, Expression Controls effects, Layer Control, Point Control

Page 555 highlights

Type /* at the beginning of the comment and */ at the end of the comment. Any text between /* and */ is ignored. For example: /* This is a multiline comment. */ For examples of this type of comment, see Save and reuse expressions. Save and reuse expressions To the top Once you have written an expression, you can save it for future use by copying and pasting it into a text-editing application or by saving it in an animation preset or template project. However, because expressions are written in relation to other layers in a project and may use specific layer names, you must sometimes modify an expression to transfer it between projects. You can define your own functions within expressions using normal JavaScript function syntax. In this example, a function is defined that calculates the average of two values, and the last line uses this function: function average(a, b) { return (a + b) / 2; } average(position, thisComp.layer(1).position); Note: You must define each function fully within each expression in which it is used. There is no global library of functions that you can add to. If you want to save an expression for use in another project, you should add comments to the expression. (See Add comments to an expression.) You should also use variables so that you can change a value in one place rather than having to change it in several places. For example, this expression has a multiline comment at the beginning that explains what the expression does and a short comment after a variable is declared and initialized that tells what the variable is for: /* This expression on a Source Text property reports the name of a layer and the value of its Opacity property. */ var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer thisComp.layer(myLayerIndex).name + ": \rOpacity = " + thisComp.layer(myLayerIndex).opacity.value You can save an animation preset that includes an expression and reuse it in other projects, as long as the expression does not refer to properties that don't exist in the other projects. When you save a preset in which a property has an expression but no keyframes, only the expression is saved. If the property has one or more keyframes, the saved preset contains the expression along with all keyframe values. You can copy an expression from a layer property, with or without the keyframes for the property. To copy an expression and keyframes from one property to other properties, select the source layer property in the Timeline panel, copy the layer property, select the target layer properties, and paste. To copy an expression from one property to other properties without copying keyframes, select the source property, choose Edit > Copy Expression Only, select the target properties, and paste. Copying an expression without keyframes is useful when you want to simultaneously copy multiple expressions and paste them onto one or more new layers, or when you want to copy one expression and paste it onto more than one layer. Note: As with pasting keyframes and other items, you can often paste the item into the target layer and rely on After Effects to determine which property should be the target of the paste operation. For example, this works for copying Position properties from one layer to another, but you must select the target property yourself if you are pasting an expression from a Position property into a Scale property. Paul Tuersley provides the pt_ExpressEdit script for managing and editing expressions. Expression Controls effects To the top Use an Expression Controls effect to add a control that you can use to manipulate the values of one or many properties by linking the property to the control using expressions. A single control can affect several properties at once. The names for the Expression Control effects indicate what type of property control they provide: Angle Control, Checkbox Control, Color Control, Layer Control, Point Control, Slider Control. After Effects CS5.5 and later includes a 3D Point Control, as well. If you apply an animation preset from the Animation Presets > Shapes > Backgrounds category, you can see a custom Animated Shape Control effect in the Effect Controls panel. This custom effect is a specialized expression control effect that was created specifically for these animation presets. You can copy and paste this effect to other layers, or you can save it as an animation preset itself so that you can apply it elsewhere. You apply Expression Controls effects to a layer in the same ways that you apply other effects, such as dragging the effect onto the layer from the Effects & Presets panel.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564
  • 565
  • 566
  • 567
  • 568
  • 569
  • 570
  • 571
  • 572
  • 573
  • 574
  • 575
  • 576
  • 577
  • 578
  • 579
  • 580
  • 581
  • 582
  • 583
  • 584
  • 585
  • 586
  • 587
  • 588
  • 589
  • 590
  • 591
  • 592
  • 593
  • 594
  • 595
  • 596
  • 597
  • 598
  • 599
  • 600
  • 601
  • 602
  • 603
  • 604
  • 605
  • 606
  • 607
  • 608
  • 609
  • 610
  • 611
  • 612
  • 613
  • 614

To the top
To the top
Type /* at the beginning of the comment and */ at the end of the comment. Any text between /* and */ is ignored. For example:
/*
This is a
multiline comment. */
For examples of this type of comment, see Save and reuse expressions.
Save and reuse expressions
Once you have written an expression, you can save it for future use by copying and pasting it into a text-editing application or by saving it in an
animation preset or template project. However, because expressions are written in relation to other layers in a project and may use specific layer
names, you must sometimes modify an expression to transfer it between projects.
You can define your own functions within expressions using normal JavaScript function syntax. In this example, a function is defined that
calculates the average of two values, and the last line uses this function:
function average(a, b)
{
return (a + b) / 2;
}
average(position, thisComp.layer(1).position);
Note:
You must define each function fully within each expression in which it is used. There is no global library of functions that you can add to.
If you want to save an expression for use in another project, you should add comments to the expression. (See Add comments to an expression.)
You should also use variables so that you can change a value in one place rather than having to change it in several places.
For example, this expression has a multiline comment at the beginning that explains what the expression does and a short comment after a
variable is declared and initialized that tells what the variable is for:
/*
This expression on a Source Text property reports the name
of a layer and the value of its Opacity property. */
var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer
thisComp.layer(myLayerIndex).name + ": \rOpacity = " +
thisComp.layer(myLayerIndex).opacity.value
You can save an animation preset that includes an expression and reuse it in other projects, as long as the expression does not refer to properties
that don’t exist in the other projects. When you save a preset in which a property has an expression but no keyframes, only the expression is
saved. If the property has one or more keyframes, the saved preset contains the expression along with all keyframe values.
You can copy an expression from a layer property, with or without the keyframes for the property.
To copy an expression and keyframes from one property to other properties, select the source layer property in the Timeline panel, copy the
layer property, select the target layer properties, and paste.
To copy an expression from one property to other properties without copying keyframes, select the source property, choose Edit > Copy
Expression Only, select the target properties, and paste.
Copying an expression without keyframes is useful when you want to simultaneously copy multiple expressions and paste them onto one
or more new layers, or when you want to copy one expression and paste it onto more than one layer.
Note:
As with pasting keyframes and other items, you can often paste the item into the target layer and rely on After Effects to determine which
property should be the target of the paste operation. For example, this works for copying Position properties from one layer to another, but you
must select the target property yourself if you are pasting an expression from a Position property into a Scale property.
Paul Tuersley provides the
pt_ExpressEdit script
for managing and editing expressions.
Expression Controls effects
Use an Expression Controls effect to add a control that you can use to manipulate the values of one or many properties by linking the property to
the control using expressions. A single control can affect several properties at once.
The names for the Expression Control effects indicate what type of property control they provide: Angle Control, Checkbox Control, Color Control,
Layer Control, Point Control, Slider Control. After Effects CS5.5 and later includes a 3D Point Control, as well.
If you apply an animation preset from the Animation Presets > Shapes > Backgrounds category, you can see a custom Animated Shape
Control effect in the Effect Controls panel. This custom effect is a specialized expression control effect that was created specifically for these
animation presets. You can copy and paste this effect to other layers, or you can save it as an animation preset itself so that you can apply it
elsewhere.
You apply Expression Controls effects to a layer in the same ways that you apply other effects, such as dragging the effect onto the layer from the
Effects & Presets panel.