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(): 부드럽게 연결된 랜덤 (자연스러움)
