Tuesday, May 31, 2011

After Effect Expression resources

อันแรกของตา Dan Ebberts อ่านง่าย มีอธิบายสคริปด้วย
http://www.motionscript.com/

อันนี้สอนคำสั่งพื้นฐาน Java Scripts สำหรับ After Effect
http://aeexpressions.blogspot.com/

อีกอันที่เพิ่งเจอ อธิบายว่า Expression คืออะไร พร้อมตัวอย่างคำสั่ง
http://www.jjgifford.com/expressions/index.html

JavaScripts Basic อยากเขียน Expression ต้องเริ่มจากจาวาสคริปนี่แหละ
http://www.echoecho.com/javascript0.htm

ความรู้ล้วนๆสำหรับ After Effect Expressionism ใครมีอันอื่นเอามาแลกๆกันมั่งนะครับ

Monday, May 30, 2011

Follow the leader randomly

   อ่านในกระทู้แล้วเห็นน่าสนใจดี เป็นการใส่ Expression ให้บรรดาออบเจคลูกตามออบเจคแม่ แต่จะไม่เหมือนคำสั่ง .valueAtTime ที่จะตามในระยะเวลาที่เท่ากัน คำสั่งนี้ระยะเวลาจะสะเปะสะปะ เป็น Random ไป
( อ้างอิงจากกระทู้นี้ http://forums.creativecow.net/thread/227/13771 )

ในเอกเพรสชันนี้ต้องมีตัวควบคุมสองตัวคือ Layer Control และ Slider Control ซึ่งจะใส่ไว้ที่ไหนก็ได้แล้วลิงค์ให้ถูกต้อง ผมใส่ไว้ที่ตัวที่เป็น Leader


ซึ่ง Layer Control มีไว้เพื่อเลือกตัวที่จะมาเป็น Parent และ Slider Control มีไว้กำหนดค่าความหน่วง ว่าจะตามช้าไปกี่วินาที และเป็นตัวกำหนดค่า Random ด้วย
ส่วนตัว Expression ใส่ที่ Position ของ Child ทุกตัวดังนี้

target = effect("Layer Control")("Layer").position; //select which layes it will follow
seedRandom(index, true);
delay = random(effect("Slider Control")("Slider"));
delta = target.valueAtTime(time - delay) - target.valueAtTime(0);
value + delta

อนิเมทแค่ออบเจคสีแดง ก็จะได้อนิเมชันในรูปแบบนี้


ยังไม่พอ ตอนท้ายๆของกระทู้ เขาถามต่อไปถึงถ้าต้องการสปริงในการเคลื่อนไหวของ Child ด้วยจะทำยังไง คำตอบก็คือ เติม Expression ทำให้เป็นสปริงซะ ได้ดังนี้

target = effect("Layer Control")("Layer").position; //select which layes it will follow
seedRandom(index, true);
delay = random(effect("Slider Control")("Slider"));
delta = target.valueAtTime(time - delay) - target.valueAtTime(0);
n = 0;
  if (target.numKeys > 0){ n = target.nearestKey(time-delay).index;
 if (target.key(n).time > time-delay){ n--; } } if (n == 0){ t = 0; }else{ t = time - delay - target.key(n).time; } if (n > 0){ v = target.velocityAtTime(target.key(n).time - thisComp.frameDuration/10);
amp = .05;
freq = 4.0;
decay = 2.0;
value + delta + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{ value + delta }


ก็จะได้อนิเมชันรูปแบบนี้


จริงๆแล้วยังคิดไม่ออกเหมือนกันว่าจะเอาไปใช้งานไหนดี แต่มันก็เจ๋งดีครับ น่าจะทำให้ชีวิตง่ายขึ้นอีกนิด ยังไงเจออะไรน่าสนใจจะเอามาแชร์อีกนะจ๊ะ

Wednesday, May 25, 2011

เมื่อเวลาของเราไม่เท่ากัน

   งานนี้ร่วมมือกับ 77 Wonders โดยเจ้าสาวออกโจทย์ให้เป็นวีดีโอเพื่อนำไปเซอไพรซ์บอกความรู้สึกกับเจ้าบ่าวในงาน


สะดุดรักนักการเงิน

   เขาว่ากันว่า เงินซื้อความรักไม่ได้ แต่สำหรับคู่นี้ เพราะบริษัทการเงินนี่แหละทำให้เกิดความรักขึ้นมา


A Lot Like Love (Trailer style presentation)

   มีพี่คนหนึ่งบอกว่างานแต่งพี่เป็นธีม Movie Premier เลยจัดเทลเลอร์หนังโรแมนติก คอมมิดี้ให้หนึ่งชุด (แต่ชีวิตพี่สองคนนี้เหมือนหนังจริงๆนะครับ)


Melody and Harmony

   ร่วมกันทำกับ 77 Wonders ทำให้กับงานแต่งของครูสอนเปียโน เลยอยากให้เป็นอนิเมชันที่เพราะๆ ฉันคือทำนอง เธอคือตัวโน๊ต ว้าวววววววว


ทหารกล้า ล่ารัก

   ตัวนี้ร่วมกันทำกับนักวาดภาพประกอบชื่อดัง พี่วันลพ หรือนาย Oneman ทำให้งานแต่งคู่รักรั้วของชาติคู่หนึ่ง โดยผมขอเล่นสนุกกับความรู้สึกตอนเรียน ร.ด. ที่ฟังครูฝึกสั่งไม่ค่อยรู้เรื่องเท่าไร แหะๆ


เรื่องรัก ซาลาเปา

   ขอเริ่มซีรีส์อนิเมชันงานแต่งด้วยงานแรกของชีวิตอนิเมชันงานแต่ง เป็นงานของพี่ชายเพื่อนสนิทคนหนึ่งของผม โดยมีจุดเริ่มต้นเล็กๆที่น่ารักคือ เจ้าสาวทำซาลาเปาอร่อยมาก...อร่อยจนเจ้าบ่าวอยากเจอหน้าคนทำ ก็เลยออกมาเป็นเรื่องราวแบบนี้ล่ะครับ


Tuesday, May 24, 2011

Culture


Video Art ว่าด้วยการแลกเปลี่ยนวัฒนธรรมผ่านดนตรี เหมือนสีที่ผสมกันเป็นสีใหม่แปลกตา




Fine art project : City Life

Video Art 4เรื่องที่ได้แรงบัลดาลใจมาจากการใช้ชีวิตของคนในเมืองบางส่วน ที่ออกจะโดดเดี่ยว ต่างคนต่างอยู่ และพยามไขว่คว้าบางสิ่งบางอย่างที่เป็นความคาดหวังของสังคม จนบางครั้งลืมที่จะมีความสุขแบบที่ตัวเองเป็น

Work :
 

 Family Time :
 
Simply Life :
  

Mobile Life :

Monday, May 23, 2011

Sunday, May 22, 2011

Create custom Effect Control

Thanks to www.aenhancers.com

http://aenhancers.com/viewtopic.php?f=8&t=515

1. Locate the XML file "PresetEffects.xml" in your AE files, and make a copy (say "PresetEffects_backup.xml").

Image

2. Open it ("PresetEffects.xml") with your favorite text editor. You'll see many "<Effect...>" tags, each one defines an effect as a combination of slider, checkbox,.., point, angle control. In my example, I was looking for an effect with 6 sliders so I've copied/pasted the (3) lines of the effect named "Separate XYZ Position" (on top of the list), renamed strings (parameter names in the interface) and adjusted default values and range.
[DO NOT modify the first line <Effect matchname=... !!, controls description only]
Then save the file and open After Effects 7.0.

Image

3. Create a new comp, add a solid and apply the preset you chose (in my case "Separate XYZ Position"). This preset uses expressions but AE can't find the expected parameters so it sends an alert; click OK.

Image

4. Your custom effect appears in the effect panel, rename it to whatever you want

Image

5. Save it as a new animation preset.

Image

6. You're done !

This custom effect can now be applied for example to a null layer in your expression-based animations.

note: this operation is far from perfect...these two effects (original and fake) has the same matchName; if you apply the original preset ("Separate XYZ Position"), the effect will now appear with 6 sliders (as defined in the XML file); via scripting, we'll use its name rather than the matchName.

There is no guarantee ("sunday's experiments") :).

Other example with different types of controls.

Image