สร้างเส้นแสงวิ่งด้วย CC Paticle World ใน After Effect

August 22, 2016

เราจะมาลองทำแสงวิ่งเป็นเส้นด้วย CC Paticle World ใน After Effect กันนะครับ ซึ่งในบทความนี้ผมใช้ After Effect CC 2015 ซึ่งเป็นตัวล่าสุดในวันที่เขียน  หลักการก็คือ ปล่อย paticle ออกมาที่ตำแหน่งเดียวกับจุดกำเนิด แล้วเราก็ควบคุมจุดกำเนิด paticle ให้เคลื่อนที่หนีเมื่อ paticle มีอายุช่วงเลลาหนึ่ง มันก็จะไม่หายไปทันที่ ทำให้เกิดลักษณะของการลากเส้นขึ้น มาลองทำกันเลยดีกว่าครับ




paticleWorld-lineLigth01

ในโปรแรกม After Effect(AE) หลังจาก save file เรียบร้อยก็สร้าง Composition ขึ้นมา กำหนดขนาด.o Preset เป็น HDTV 1080 25  กำหนดตรงนี้ให้ตรงกัน เพราะจะมีสคริปควบคุม จุดปล่อย paticle พอตัวเลขไม่เท่ากับใน Tutorial แล้วอาจจะงงได้

กราสร้าง Composition สามารถไปที่เมนู Composition แล้วเลือก New Composition…(คีย์ลัด Ctrl+N) หรือจะคลิกขวาตรงที่ว่างใน Project แล้วเลือก New Composition… ก็ได้

paticleWorld-lineLigth02

จากนั้นคลิกขวาที่วางใน Timeline เลือก  New > Solid… หรือถ้าเข้าทางเมนุบาร์ก็อยู่ใน Layer > New > Solid…  ใน Solid Setting  ใช้ค่าเริ่มต้นที่ให้มาเลย ขนาดของ Solid จะถูกกำหนดให้เท่ากับ ขนาดของ Composition อยู่แล้ว ส่วนสีก็ไม่มีผลอะไร

paticleWorld-lineLigth03

ต่อไปเราจะสร้าง Paticle ตัวเอกของงานกัน  คลิกขวา Timeline ของ Solid ที่เพิ่งขึ้นมา  เลือก Effect > Simulation > CC Paticle World   หรือเลือกจากเมนูบาร์ก็ชื่อกลุ่มคำสั่งเดียวกัน

paticleWorld-lineLigth04

ตอนนี้หากลองเลื่อน Timeline ดู จะเห็น Paticle พุ่งกระจายออกมาแล้วล่วงลงด้านล่าง ซึ่งไม่ใช่ในสิ่งที่เราต้องการ เราจะต้องทำให้ Paticle ออกอยู่กำที่ จุดเกิด Paticle และจุดจบของ Paticle เป็นตำแหน่งเดียวกัน

paticleWorld-lineLigth05

ขอปิดส่วนของไกด์ต่างๆของ Paticle ออกก่อนนะครับ จะได้ไม่รกและเห็นแต่เฉพาะ Paticle เท่านั้น  เลือก Layer Solid1 (ถ้า Effect Controls ไม่โชว์ขึ้นมากด F3)  ที่กลุ่มคำสั่ง Grid&Guides ใน CC Particle World  ให้ติ๊กเช็คบ็อกออกให้หมดเลย Position , Radius , Motion Path , Grid , Horizon และ Axis Box ตามรูป

paticleWorld-lineLigth06

ในกลุ่ม Producer  จะเป็นการปรับตำแหน่ง(Position)และขนาด(Radius)ของจุดปล่อยของ Paticle   ซึ่งค่าปกติตอนสร้างขึ้นมาตำแหน่งของ Paticle จะอยู่กลางจออยู่แล้ว ถ้าไม่ ก็ปรับ Position X , Y และ Z ให้เป็น 0  และปรับ Radius X , Y , Z ให้เป็น 0 เช่นกัน เพื่อให้ Paticle ที่ออกมา ออกมาที่ตำแหน่งเดียว

paticleWorld-lineLigth07

จริงๆตอนนี้ถ้าเราใส่  Key Frame ให้เกิด Animation ที่ Position X หรือ Y เราก็จะเห็น Paticle วิ่งเป็นเส้นแล้วละ  แต่เดี๋ยวเราจะทำ Null Object มาควบคุมค่า Position กันจะได้ทำ Animation ได้ง่ายขึ้น

ไปที่เมนู Layer หรือ คลิกขวาในที่ว่างของ Timeline   เลือก New > Null Object   จะได้ Null Object ออกมาที่กลางจอ

paticleWorld-lineLigth08

เลือก Layer Null1  แล้วกดปุ่ม P เพื่อให้แสดงเฉพาะ Poperties ของ Position เราจะใช้งานเฉพาะ Position เท่านั้น

จากนั้นเลือก Layer Solid1 กด E  เพื่อแสดงเฉพาะส่วนของ Effect แล้วขยายส่วนของ CC Paticle World > Producer ใน Timeline ออก  ขอแนะนำทางลัดในการขยายส่วน Timeline อีกนิด หาก Effect Controls เปิดอยู่ เราดับเบิลคลิกพื้นที่ว่างในกรอบสีเขียว  ส่วนของ Producer ใน Timeline ก็จะขยายออกให้เหมือนกัน

paticleWorld-lineLigth09

ต่อไปเราจะใส่ Expression เพื่อเชื่อมค่า Position X ของจุดกำเนิด Paticle เข้ากับ Position X ของ Null Object  ให้คลิกที่ Icon Toggle ability ของ property Position X ใน Producer  แถบ Expression: Position X จะแสดงขึ้นมา

paticleWorld-lineLigth10

คลิกและลาก Icon รูปก้นหอยไปปล่อยที่ Position X ของ Null Object   เราจะได้ Expression  thisComp.layer(“Null 1”).transform.position[0]   ซึงจะทำให้ ค่าของ Position X ของ CC Paticle World มีค่าเดียวกับ Position X ของ Null 1  คือ 960  ตัวเลขตรงนี้ก็ยังไม่ใช่ที่ต้องการ เพราะ ค่าเริ่มต้นของ Position X ของ CC Paticle World จะเริ่มที่ 0  ส่วน  ค่าเริ่มต้นของ Position X ของ Null 1 จะเท่ากับครึ่งนึงของความกว้างของ Compotition

paticleWorld-lineLigth11

แก้ไข Script ให้เป็น

x=thisComp.layer(“Null 1”).transform.position[0]-thisComp.width/2;
x/thisComp.width

ซึ่งบรรทัดแรกจะหมายถึง  ค่า Position X ของ Layer Null1 ใน Composition นี้ ลบด้วย ครึ่งนึงของความกว้างของ Composition  และเอาค่าทั้งหมดไปเก็บใน ตัวแปร x

จะทำให้เมื่อเปลี่ยนค่า Position X ของ Null Object  ค่าใน Position X ของ CC Paticle World ก็จะเปลี่ยนไปด้วยในค่าที่เท่ากัน  แต่เนื่องจาก ค่าใน Position X ของ CC Paticle World นั้นถ้าเป็น 1 จะหมายถึงเคลื่อนที่ไปทางขวาเท่ากับขนาดของ Composition ซึ่งในที่นี้ก็คือ 1920px ทำให้ต้องมี Script ในบรรทัดที่สองเพิ่มขึ้นมาด้วย

บรรทัดที่สอง ค่่าในตัวแปร x หารด้วยความกว้างของ Composition

paticleWorld-lineLigth12

ต่อมาเรามาจัดการในส่วนของ Position Y ของ CC Paticle World ต่อ ทำการคัดลอก Script จาก Expression ของ  Position X มาใส่ใน Expression ของ  Position Y แล้วก็แก้ไขตามนี้

y=thisComp.layer(“Null 1”).transform.position[1]-thisComp.height/2;
y/thisComp.width

สังเกตตรง transform.position[1]  ถ้า 0 คือ X  , 1 คือ Y และ 2 หมายถึง แกน Z  อีกจุดคือ thisComp.height  เนื่อจากแกน Y เป็นแกนแนวตั้ง เราจึงเอาความสูงของ Composition มาลบแทน

paticleWorld-lineLigth13

ต่อไปเราจะมาทดสอบให้เห็นผลลัพท์ที่เราทำมากัน ใส่ Script ที่ Expression: Position ของ Layer Null1

wiggle(2,400)

freq value is the frequency in wiggles per second.

amp value is the amplitude in units of the property to which it is applied.

ค่าแรกของ wiggle คือ frequency ใน 1 วินาที

ค่าที่สองคือ  amplitude หรือความกว้างที่จะให้เปลี่ยนแปลง

ลองลาก Timeline ดู จะเห็นเป็นเส้นวิ่งละ  ซึงเส้นจะวิ่งไปแบบ random

paticleWorld-lineLigth14

ถ้าสังเกตุที่ Producer ใน CC Paticle World จะเห็นว่า นอกจาก Position X และ Y แล้ว จะมี Position Z ด้วย แสดงว่า paticle ทำงานในลักษณะของ 3d  เดี๋ยวเราจะมาทำให้ Null Control สามารถควบคุมได้ทั้ง 3 แกนกัน

ทำการสร้างกล้องขึ้นมาใหม่ โดยคลิกขวาที่ว่างใน Timeline หรือไปที่เมนูบาร์ในหมวด Layer  แล้วเลือก New > Carera…

paticleWorld-lineLigth15

จากนั้นไปเปิดโหมด 3d ให้กับ  Layer Null1  ซึงจะเป็น Icon รูปกล่อง หากว่าส่วนนี้ไม่ได้แสดงอยู่ ก็ไปคลิกเปิดที่ Icon Layer Switch pane โดย Icon จะอยู่ที่มุมซ้ายด้านล่าง  ซึ่งตอนนี้  Position ของ Layer Null1  จะมี 3 แกนละ

paticleWorld-lineLigth16

ตอนนี้เราก็จะเชื่อม ค่า Position Z ของ CC Particle World กับ Position Z ของ  Null 1 กัน    กลับมาที Layer Solid1  ตรง Expression:Position Z  ให้ใส่ Script ตามนี้

z=thisComp.layer(“Null 1”).transform.position[2];
z/thisComp.width

ค่าเริ่มต้นของ Position Z ใน CC Particle World กับ  Null 1 จะมีค่าเป็น 0 เหมือนกัน ทำให้เราไม่ต้องเอาอะไรมาลบอีกแค่อ้างอิงให้เท่ากันเท่านั้น

paticleWorld-lineLigth17

กดปุ่ม C สองครั้ง หรือ ไปที่ Tool แล้วเลือก Orbit Camera Tool  ลองหมุนวิวดู จะเห็นว่า เส้นวิ่งสุ่มไปในทุกแกนแล้ว

paticleWorld-lineLigth18

ทำการปรับแต่ง Particle ให้ดูเป็นเส้นแสงมากขึ้น ลองปรับเล่นดูครับ ผมขอฮะิบายเฉพาะส่วนที่ผมปรับไว้ตามภาพนะครับ

Birth Rate   จำนวนการเกิดของ Particle

Longrvity(sec)  อายุของ Particle

Particle Type  เปลี่ยนจาก Line ซึ่งเป็นเส้น มาเป็น Faded Sphere จะได้เม็ด Paticle เป็นทรงกลมขอบเบลอ

Birth Size  ขนาดของ Particle ตอนที่เกิดขึ้นมา

Death Size ขนาดของ Particle ก่อนที่จะหายไป

Size Variation  ค่า 0% คือขนาดเท่ากันหมด

Max Opacity  ค่าระยะความจางของขอบทรงกลม 100% คือขอบคมเลย

paticleWorld-lineLigth19

สุดท้ายละ ใส่ Glow ให้ดูเรืองแสงซักหน่อย ด้วย Effect > Stylize > Glow  ปรับค่า Glow Threshold 100%  Glow Radius 50




Final Render สร้างเส้นแสงวิ่งด้วย CC Paticle World ใน After Effect

No comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.