canvas-procedural-animation
ساخت حرکتهای رویهای برای ذرات، آبوهوا و پشتیبانی از انیمیشن کاراکتر با p5.js
این مهارت با استفاده از p5.js و Canvas، حرکتهای رویهای مانند باران، برف، برگ، پر، ذرات محیطی و افکتهای squash/stretch را تولید میکند. برای ساخت چرخههای سادهی راهرفتن و جانبخشی به محیط اطراف کاراکتر نیز مناسب است.
با تکیه بر زمان یا شمارهی فریم، میتوان پیشنمایشهای قابلکنترل و قابلتکرار ساخت. این رویکرد برای افکتهایی مفید است که به اجزای SVG یا rig لایهای و طراحی دستی تکتک عناصر نیاز ندارند.
چه چیزی میگیرید
- کد p5.js برای تولید ذرات و افکتهای آبوهوایی
- حرکتهای محیطی مانند باران، برف، برگ و پر
- افکتهای procedural برای squash/stretch و بدنهای ساده
- الگوی انیمیشن پیوسته با setup() و draw()
- راهنمای کنترل حرکت با زمان یا frame index
برای چه کاری خوب است
- ساخت overlayهای باران، برف، گردوغبار و ذرات محیطی
- جانبخشی سریع به صحنههای Canvas و کاراکترهای ساده
- پروژههایی که به حرکت procedural و پیشنمایش سریع نیاز دارند
- تولید افکتهایی بدون نیاز به طراحی دستی اجزای SVG
برای چه کاری نیست
- بازیگری پیچیدهی چهره و انیمیشن دقیق اجزای لایهای
- رندر نهایی با نیاز جدی به determinism فریمبهفریم، مگر با پشتیبانی runtime
- ریگهای پیچیده یا حرکتهایی که به کنترل دستی هر جزء نیاز دارند
دربارهٔ این اسکیل
Canvas Procedural Animation
Use this skill when p5.js or Canvas is used for character-supporting motion:
rain, snow, leaves, feathers, ambient particles, squash/stretch, or procedural
walk cycles.
Proven Pattern
p5.js runs setup once and redraws continuously through draw(). Keep animation
state deterministic from time/frame values when rendering previews.
function setup() {
createCanvas(1920, 1080);
}
function draw() {
const t = millis() / 1000;
clear();
drawCharacter(width / 2, height / 2 + sin(t * 8) * 8);
}
Use For
- Particle/weather overlays.
- Environmental motion.
- Simple procedural bodies.
- Effects that do not need individually authored SVG parts.
Avoid For
- Complex facial acting where SVG/layered rig parts are easier to inspect.
- Final renders that need exact frame determinism unless the runtime exposes frame-index control.
Sources
- p5.js
setup()reference: https://p5js.org/reference/p5/setup/ - p5.js
draw()reference: https://p5js.org/reference/p5/draw/ - p5.js animation examples: https://p5js.org/examples/