NoSleepCreative Wiki
  • Welcome to NoSleepCreative
  • After Effects
    • Getting Started with Expressions
    • Expressions & Snippets
      • JSX Cheatsheet
      • Expression Troubleshooting
      • Utilities
      • Shape & Mask
      • Type & Text
    • Cookbook
      • Algorithmic
      • Random properties
      • Harmonic Motion
      • Staggering
      • Tessellation & Tiling
      • Type animators
      • Speed lines
      • Radial Array
      • Orb & Trails
      • Shading & Texturing
      • Responsive
      • Automation
      • Setup & Rigs
    • Getting started with Scripting
    • Scripting
      • Utilities
      • Master Properties
    • ScriptUI
  • Studio Ops
    • Tooling
    • Toolkitting
    • Knowledge Base
    • Naming Convention
    • DAM
  • Cinema 4D
    • Formulas
    • Python Cheat Sheet
      • For Artists
      • Maya Environment
      • Maya snippets
      • VSFX 705
    • Cookbook
  • Info
    • About
    • Portfolio
    • Course
    • YouTube
    • Gumroad
    • GitHub
  • Dev
    • archive
      • Webscraping
      • Google Sheets Formulas
      • SQL
      • Terminal
      • C++
      • Unreal Engine
      • Concert Visualization
      • Dome-projection
      • UI UX
      • Professional Etiquettes
      • Woes
      • How to get better
        • Portfolio / Showreel
        • Design with cooking
      • Media theories
        • Post Cinematic Affect
        • Marxism, Reproduction and Aura
        • Heuristics & Authorship
        • 02 Semiotics
        • 3 Process?
        • 05
        • 06 Technology & Mediation
        • Formalism
        • Simulation
        • The Gaze & Media Critique
        • Import
        • 10-12
      • Recommended books
        • 🔴Things I learned
      • Mac Superuser
        • Applescript
      • InDesign
      • Illustrator
      • Blender
      • Premiere Pro
      • Mathematics
        • Probability
        • Linear Algebra
      • Shader Dev
      • Getting Started with After Effects
        • Best Practices
        • Pimping up AE
        • Environment
      • Houdini
        • Cheatsheet
        • Cookbook
        • Techniques
        • Dynamic
        • Rendering & Lighting
        • Animation
        • Particles
        • Others
          • Modeling
          • Fluids - Pyro & Smoke
          • Rendering
      • REGEX
    • Sandbox
      • Nexrender
        • Terminology
        • Project Files Preparation
Powered by GitBook
On this page
  • 🛠 Toolkit or rigs setup Best Practices
  • Labeling of layers and compositions
  • Writing a user guide or readme
  • Cleaning the project file before delivery 🧹
  • Other good practice
  • Essential Graphics
  • For users
  • For Leads checking toolkits
  • Spriting / multi-image texturing
  • Using string matching
  • Text layer as a check

Was this helpful?

  1. After Effects
  2. Cookbook

Setup & Rigs

PreviousAutomationNextGetting started with Scripting

Last updated 3 years ago

Was this helpful?

🛠 Toolkit or rigs setup Best Practices

Objective: Make the toolkit as fool-proof as possible by using proper naming conventions, labeling compositions & layers, write my a readme instructions, making a video tutorial, and master properties arrangement. Fool-proof = intuitive , simplicity, coherent.

Give enough user controls that effectively does the job and not confuse or overwhelm users. AKA "less is more"

Naming conventions

  • use camelCase and underscore (no spaces) for comp or layer names

  • File structure: _demo, builds, elements

  • for rig compositions, rename to build_num eg. build_4

  • in the comments, you can write a brief description of what the rig do

Labeling of layers and compositions

  • green label - for compositions / layers that users should modify or use

  • blue label - secondary stuff for your own development purposes or for users to troubleshoot or their own

  • gray label for anything that the user should not touch

Writing a user guide or readme

  • in a composition, write a description of what your rig does and instructions on how to use it

  • this should be the first composition user see when they open the AEP

Cleaning the project file before delivery 🧹

  • be sure to remove any unused assets that may otherwise confuse the users by using Reduce Project or Collect Project Files

  • close all compositions that will not be use, open all compositions that will be used

Other good practice

  • render animated elements used (eg. textures)

  • create demos or samples of what your toolkit can do to let users know the extent of your setup

  • avoid 3rd-party plugins that would be difficult for user to acquire

Essential Graphics

  • Create two groups: design and motion

  • the design controls should change the stylization or look; there should not be any keyframes

  • as for motion, anything that effects a movement for the rig will go here eg. wiggle sliders, duration,

For users

  • communicate bugs or error report

For Leads checking toolkits

  • test if all controls work and Master Properties are nested in the composition

  • making it simpler to use and lighter to render; keep in mind that users may not be as proficient in AE or expressions. It is

  • naming convention

Spriting / multi-image texturing

Using string matching

// timeRemapping
var src = thisLayer.source;
var txt = thisComp.layer("file").text.sourceText.toLowerCase();

// loop match
for (i = 1; i < src.numLayers; i++) {
    if (src.layer(i).name.toLowerCase().match(txt)) {
        myLayer = src.layer(i);
        break;
    } else {
        9999 // catch error
    }
}

inP = myLayer.inPoint;
outP = myLayer.outPoint-framesToTime(0);
dur = outP - inP;
linear(time,inPoint,dur,inP,outP)
//timeRemap
framesToTime(effect("frameSelect")("Slider"));


// Slidercontrol
myComp = thisLayer.source;
ext = ""//.png
txt = thisComp.layer("lastName").text.sourceText.toLowerCase();

// loop match
for (i = 1; i < myComp.numLayers; i++) {
    if (myComp.layer(i).name.toLowerCase().match(txt)) {
        i-1 // -1 as time starts from 0 ;
        break;
    } else {
        100 // catch error 
    }
}

Text layer as a check

t = timeToFrames(time);
t = clamp(t,1,index-1);

thisComp.layer(t+1).name;
"readme" sample from plant rigs