Skip to content

Random Expression

다양한 랜덤 값을 생성하여 예측 불가능한 효과를 만드는 익스프레션입니다.

Preview

random(min, max)로 범위 내 랜덤 값을 생성합니다. seedRandom()으로 재현 가능한 랜덤을 만들 수 있습니다.

※ 시각적 이해를 위한 애니메이션으로, 실제 결과와 다를 수 있습니다.

Code

기본 랜덤

javascript
// 0~1 사이 랜덤 값
random();

// 0~100 사이 랜덤 값
random(100);

// 50~100 사이 랜덤 값
random(50, 100);

Seed 고정 (재현 가능한 랜덤)

javascript
// 같은 seed는 항상 같은 결과
seedRandom(42, timeless = true);
random(100);

시간에 따라 변하는 랜덤

javascript
// 매 프레임 새로운 랜덤 값
seedRandom(0, timeless = false);
random(100);

Parameters

함수설명
random()0~1 사이 랜덤
random(max)0~max 사이 랜덤
random(min, max)min~max 사이 랜덤
seedRandom(seed, timeless)랜덤 시드 설정
gaussRandom()가우시안 분포 랜덤

Examples

랜덤 위치

javascript
// Position에 적용
seedRandom(index, false);
[random(0, thisComp.width), random(0, thisComp.height)];

랜덤 색상

javascript
// Fill Color에 적용
seedRandom(index, true);
[random(), random(), random(), 1];  // RGBA

랜덤 크기

javascript
// Scale에 적용
seedRandom(index, true);
s = random(50, 150);
[s, s];

랜덤 회전

javascript
// Rotation에 적용
seedRandom(0, false);
random(-180, 180);

부드러운 랜덤 (Noise 사용)

javascript
// Wiggle 대신 더 제어 가능한 방식
freq = 2;
amp = 50;

seed = Math.floor(time * freq);
seedRandom(seed, true);
baseRandom = random(-amp, amp);

nextSeed = seed + 1;
seedRandom(nextSeed, true);
nextRandom = random(-amp, amp);

// 부드러운 보간
t = (time * freq) % 1;
ease(t, 0, 1, baseRandom, nextRandom);

Advanced

레이어별 고유 랜덤

javascript
// index를 seed로 사용하면 각 레이어가 다른 값을 가짐
seedRandom(index, true);
random(100);

특정 간격으로 변하는 랜덤

javascript
// 0.5초마다 새로운 랜덤 값
interval = 0.5;
seedRandom(Math.floor(time / interval), true);
random(100);

가우시안 랜덤 (정규 분포)

javascript
// 중앙값에 가까운 값이 더 자주 나옴
center = 50;
spread = 10;

seedRandom(0, false);
center + gaussRandom() * spread;

Tips

timeless 파라미터

  • true: 시간과 무관하게 항상 같은 값
  • false: 매 프레임 새로운 값 (애니메이션)

index 활용

index를 seed로 사용하면 복제된 레이어들이 각각 다른 랜덤 값을 가지면서도 일관성을 유지합니다.

Wiggle과의 차이

  • random(): 매 프레임 완전히 새로운 값 (끊김)
  • wiggle(): 부드럽게 연결된 랜덤 (자연스러움)