Popular Archive
-
หลังจากลีลาอยู่สองวันในที่สุดเค้กน่าตาน่าหม่ำทั้งหลายก็ตกเข้าสู่ท้องของผมและผองเพื่อน แล้วก็เป็นไปตามที่คาดคิด สมแล้วกับสโลแกนของร้านที่ว่า ...
-
Reference Character Design อันนี้เป็นตัวที่เลือกมาใส่สี โอ้วมีงานส่งแล้ว อัพเดทงานการบ้าน คราวนี้เป็นการออกแบบตัวละคร (เพิ่งได้ทำเมื่อวานหลั...
Sunday, April 24
Week1 : Item Pre-production workshop 2011
ก็ได้พบว่าเงินที่ลงไปนั้นไม่น่าจะสูญเปล่าแถมยังเรียกได้ว่าคุ้มซะเกินคาดซะอีก!!!
เอาละแบบนี้ต้องเผยแพร่ความรู้ที่ได้มาวันนี้ซะหน่อยก่อนอื่นต้องระบายความรู้สึกก่อนพอเป็นพิธี
หลักๆ ในคลาสแรกนี้จะเป็นการคุยกันถึงเรื่องราวของแต่ละท่านที่จะนำมาเพื่อใช้ในการเรียน ซึ่งส่วนใหญ่ผมเห็นว่าเรื่องราวของแต่ละคน.. ไม่ธรรมดา!!
ผมชอบแนวความคิดของแต่ละคนซึ่งบอกได้ว่าถ้าเจียระไนอีกหน่อยก็เพอเฟคกันเลยทีเดียว ที่ประทับใจก็มีหลายเรื่องยกตัวอย่างเรื่อง เกี่ยวกับครอบครัว
ที่น้องชายพยายามจะช่วยพี่ของตัวเองให้หายจากอาการซึมเศร้า ซึ่งฟังการ present แวปแรกๆก็ดูเฉยๆ
แต่พอสักพักก็เริ่มรู้สึกว่าได้กลิ่นอายของความสร้างสรรค์แบบอบอุ่น+น่ารัก
หรือว่าจะเป็นเรื่อง loser ที่ต่อกรกับเหล่าร้ายเพื่อช่วยเหลือหญิงสาวซึ่งก็คือแฟนของเค้าโดยหารู้ไม่ว่าแฟนพี่ท่านเป็นเซียนด้านการต่อสู้ ฟังดูน่าสนุกมาก
หรือเรื่องของนายแบงที่ทำออกแนวไซไฟซึ่งเป็นหญิงสาวที่ถูกหลอกใช้ให้ขโมยแร่พิเศษโดยมีพ่อของตัวเองเป็นคนบงการ(ชอบที่พลังการย้ายจิตเนี้ยแหละ)
หรือฮีโร่ที่จัดการปราบเหล่าร้ายจนเป็นที่ชื่นชอบของประชาชีแต่ไปๆ มาๆ กลับเป็นวายร้ายซะเอง ดูล้ำลึกดีซะมัด!!
หลายๆ ท่านมีแนวความคิดที่น่าสนใจมากเล่าไปคงจะไม่หมด(จำไม่หมดด้วยแหละ.. แต่แจ่มๆ กันทั้งนั้นเลย)
เอาละวกกลับมาเข้าประเด็นดีกว่า... เนื้อหาสาระที่ได้มาวันนี้ก็จะเป็นเรื่องเกี่ยวกับ
Anatomy of a story : คือเรื่องเกี่ยวกับโครงสร้างของเนื้อเรื่องที่จะนำมาสร้างสรรค์ผลงานนั่นเอง
Beat Board : ว่าด้วยประเด็นหลักๆ ในสัปดาห์แรกนี้เลย ซึ่งก็คือบีทเหตุการณ์หลักๆ ของเรื่องราวทั้งหมดซึ่งทำหน้าที่ถ่ายทอดเรื่องราวตั้งแต่ต้นจนจบ มาตามลำดับซึ่งต่างจาก storyboard ตรงนี้ beat board จะเป็นเสมือนภาพสำคัญที่นำมาเรียงต่อกันเพื่อให้เห็นภาพรวมของงาน
โดยมีรายละเอียดย่อยดังนี้
- Act1 : Set up(location,style,character) นั่นก็คือ เหตุการณ์เกิดขึ้นที่ไหน และเป็นใคร โดยจะเป็นสาระสำคัญของการเริ่มการทำงาน เพื่อจะเป็นตัวกำหนดทิศทางของเนื้อเรื่องในลำดับต่อไป
- Catalyst : เหตุการณ์เกิดขึ้นอย่างไร กำลังจะมีเกิดอะไรขึ้น พูดให้ง่ายตามความเข้าใจผมก็คือการกำหนดทิศทางที่จะดำเนินเนื้อเรื่องต่อไป ซึ่งจะสอดคล้องกับ
- Fist Turning Point : คือการตัดสินใจแรกของตัวละคร ซึ่งถือเป็นจุดเริ่มต้นของเรื่องราว ของ action ต่อๆไป ว่าจะมีทิศทางไปทางไหนอย่างไรเรียกได้ว่า ผลจากการตัดสินใจนั้นจะชักนำไปสู่อะไร
- Act2 : หลังจากที่ตัวละครได้ทำการตัดสินใจไปแล้วก็เป็นการเดินทางไปสู่ผลที่เกิดขึ้นนั่นก็คือเหตุการณ์ต่างๆ ที่ต้องเผชิญ
- Second Turning Point : Climax จุดหมายปลายทางของเรื่องราวและ
- Acts : Resolution บทสรุปของเนื้อเรื่องที่จะเฉลย เผยความ ให้กระจ่างหรือแม้แต่การทิ้งทายให้ติดตาม
________________________________________________________
เบรกต่อมา จะมาเน้นในเรื่องของ Beat Board และ Key Visual โดยที่จะขยายความเพิ่มเติมอีกครั้งว่า บีทบอร์ดทำเพื่อถ่ายทอดเรื่องราวให้ชัดเจน
และ คีย์วิชวลทำหน้าที่แสดงภาพลักษณ์อารมณ์ของงาน สไตล์ ให้เห็นภาพรวมที่ละเอียดยิ่งๆ โดยสรุปให้เข้าใจง่ายๆ ก็คือ
Beat Board = Story
Key Visual = Style
ซึ่งโดยส่วนใหญ่แล้วขั้นตอนของทั้งสองนี้จะไม่แน่นอนแล้วแต่บางทีอาจดำเนินไปพร้อมๆ กัน หรือเริ่มจากอย่างใดอย่างหนึ่ง...
ต่อมาเป็นข้อมูลองค์ประกอบสำคัญของ Beat Board ดังนี้
- Story เกิดอะไรขึ้น
- Emotion อารมณ์ประมาณไหนโดยย่อยออกเป็น
Staging : การกำกับภาพหรือสิ่งที่ต้องการสื่อสารภายในภาพ
Center of interest : จุดเด่นของภาพหรือจุดสนใจ
Framing : กรอบภาพที่จะเป็นส่วนขยายไปยังจุดสนใจ... เน้นสร้างอารมณ์ภาพให้จุดสนใจเด่นขึ้นโดยอาศัยแสงเงาหรือสีช่วยขยาย
Body Language : ภาษากาย ลักษณะท่าทางที่แสดงออก... สิ่งที่ตัวละครต้องการสื่อโดยใช้วิธี Silhouette (ตรวจ Post จากภาพเงา)
ที่ชัดเจนนั่นเอง โดยมีลักษณะของรูปทรง 2 แบบที่สำคัญคือ Simple (รูปทรงที่สามารถเข้าใจได้ง่าย) และ Complex (รูปทรงที่ซับซ้อน)
Dept : มิติภายในภาพ ซึ่งประกอบด้วยระยะ การถ่ายทอด foreground mid-ground และ background
Camera : มุมมอง กล้อง โดยมี Tip ในการเลือกใช้ลักษณะกล้องคือ ถ้าเป็น Drama จะเน้นใช้กับเรื่องราว action เพื่อสร้างความตื่นเต้นเร้าใจในงาน ส่วนถ้าเป็น Comedy จะใช้มุมภาพแบนๆ ไม่เปอมากนักเพื่อความราบเรียบง่ายต่อการเข้าใจ
Linghting : แสงที่จะทำหน้าที่แสดงอารมณ์และเพิ่มความสมบูรณ์ให้กับงาน โดยจะสอดคล้องกับ Center of interest Frame Body Langnage Dept Camera .....
____________________________________________________________
เอาละอาทิตย์นี้ก็มีการบ้านคือ ทำ Beat Board ส่งในสัปดาห์หน้า เด๋วต้องกลับไปแก้บทเพื่อความชัดเจนสักหน่อยแล้ว
ไหนจะงาน Thesis อีกแหน๊ะ... เอ้าสู้เว้ยยยยย!!!
Thursday, November 25
นับหนึ่งที่ลมหายใจ
นี่ก็ผ่านมาเกือบสองอาทิตย์แล้วหลังจากที่กลับเข้าสู่โลกใบเดิมที่แสนวุ่นวาย
ก็ยอมรับเลยว่าต้องใช้เวลาปรับตัวอยู่เหมือนกันเพราะสภาวการณ์เปลี่ยนไปหลังจากที่ได้บวชเรียนมา 1 พรรษา ลองนับดูก็เป็นเวลา เกือบ 7 เดือนที่ได้รู้ได้เห็นในสิ่งที่ควรรู้ควรเห็นควรศึกษา เราไม่รู้ว่าเราเป็นอะไรจนกระทั่งเราได้ใช้เวลาอยู่กับสิ่งนั้น แล้วมันก็จะตอบกับเราว่า เราไม่ใช่เราหรอก แต่เราก็ยังเป็นเราที่ยังไม่เข้าถึงความไม่ใช่เรา ทุกเวลาที่ผ่านไปก่อนหน้านี่ช่วงเวลาต่างๆ ได้ย้อนกลับเข้ามาอย่างที่ไม่คาดคิด แต่ทำให้เราได้คิด ว่าชีวิตมันก็คือชีวิต วันคืนที่ล่วงเลยผ่านไปในแต่ละวันของเวลาอันแสนสั้น ทำให้เราหลงไปกับเรื่องรอบตัวที่ไร้สารเกินจำเป็น
Monday, April 5
Creative alive!!
จะเห็นได้เลยว่า หลายอย่างที่เราเห็นนั้นเกิดขึ้นจากความคิดสร้างสรรค์ผสาน
เข้ากับภูมิปัญญาที่หลากหลายเลยทีเดียว ยกตัวอย่าง ไข่ทรงเครื่องกันนะครับ
ดูเผินๆ อาจมองว่าก็แค่ใข่ธรรมดาที่เอามาเสียบไม้ปิ้งขายทั่วไป แต่ผมมองว่า
มันล้ำลึกกว่านั้นนะ ไข่ธรรมดาๆ ที่นำมาปรุงใหม่ให้มีรสชาติดีขึ้น แล้วจับมารวมเข้าด้วยกัน
3 ฟอง 4 ฟองก็ว่าไป ตรงจุดนี้ทำให้ไข่ธรรมดา สามารถยกระดับตัวเองขึ้นมาได้อีกโขเลย
และอีกหลายๆ อย่างล้วนมีความคิดสร้างสรรค์ ปะปนอยู่ในชีวิตประจำวันของเรา
วันนี้เลยหยิบประเด็นความคิดสร้างสรรค์จาก บทความเรื่อง "คนไทยเป็นชาติพันธุ์ที่เกิดมาคิดสร้างสรรค์โดยกำเนิด" ก็ขออนุญาติยกมาไว้ให้ได้อ่านกัน ณ ที่นี้ ลองดูกันครับ
ลองดูไปรอบ ๆ ตัวสิครับ มองให้เห็นรากของความเป็นคนไทย
จะเห็นว่าคนไทยเป็นวัฒนธรรมที่สร้างสรรค์ที่สุดในโลก
ลายไทยที่งดงามที่สุดไม่ได้เขียนจากความจำ แต่เป็นความชำนาญ (Skill)
ช่างเขียนลายไทยโบราณที่เก่งกาจ เขียนลายไทยทุกซอกมุมไม่มีซ้ำกัน เรียกได้ว่ามีการ
‘ออกแบบ’ ลายกันอยู่ทุกกระเบียดนิ้ว
อย่างนี้ถ้าไม่เรียกว่าสร้างสรรค์ก็ไม่รู้จะเรียกว่าอะไร..
ภาษาไทยเป็นภาษาที่คล่องตัวในการใช้ที่สุดภาษาหนึ่งในโลก สามารถใช้พยัญชนะ วรรณยุกต์
ออกเป็นเสียงได้ทุกภาษาในโลกได้อย่างใกล้เคียง
มีไวยกรณ์ที่เคร่งครัดแต่ก็มีศัพท์แสลงที่เยอะที่สุด ภาษาวัยรุ่นเกิดขึ้นใหม่ทุกวัน
ไม่ตาย แต่ก็สามารถร้อยเรียงเป็นบทกวีได้อย่างมีสุนทรียภาพ
มีความละเอียดอ่อนไหวงดงาม แต่ก็สนุกสนานได้ไม่แพ้กัน ผมมักจะคิดเอาเองบ่อย ๆ ว่า
ภาษาไทยนี่เองที่เป็นเหตุให้คนไทยเป็นคนอารมณ์ดี มองโลกในแง่ดี มีจิตใจงดงาม
และมีความคิดสร้างสรรค์อยู่ตลอดเวลา
ความคล่องตัวของภาษาทำให้เกิดความคล่องตัวของความคิด และการก้าวข้ามของความคิด
(transpose) เกิดขึ้นได้ง่ายและว่องไว
อันนี้ก็เป็นเหตุให้เกิดความคิดสร้างสรรค์ได้รวดเร็วเหมือนกัน
สมองของมนุษย์เกิดมาคิดมากกว่าหนึ่งเรื่องในเวลาเดียวกัน
เหมือนเวลาเห็นผู้หญิงเดินมาแล้วบอกว่าสวย แล้วบอกไม่ได้ว่าสวยเพราะอะไร
นี่ก็เป็นตัวอย่างการทำงานของสมอง ที่คิดมากกว่าหนึ่งในเวลาเดียว
บางครั้งรูปแบบของความคิดที่เป็นระบบ (pattern) นี้ก็เกิดข้ามไปมา
คิดถึงเรื่องศิลปะแล้วก็ข้ามไปวิทยาศาสตร์ในเวลาเดียวกัน
ก็อาจเกิดเป็นงานออกแบบขึ้นมาได้ เป็นต้น..
ต่อกันที่คำคมเด็ดๆ ที่รวมมาจากครีเอทีฟไทยแลนด์ครับ
คำถามสำคัญไม่ใช่ "อะไรกระตุ้นความคิดสร้างสรรค์"
แต่เป็น "ทำไม" เราถึง "ไม่" สร้างสรรค์หรือสร้างนวัตกรรม
เราต้องเลิกความคิดว่าความคิดสร้างสรรค์คือสิ่งพิเศษ
หรือพิศวงเมื่อใครสักคนสร้างอะไรขึ้นมาก็ตาม... อับราฮัม มาสโลว์
หากปราศจาก ความคิดสร้างสรรค์
ความก้าวหน้าคงไม่เกิดขึ้น และเราจะทำสิ่งต่างๆ "ในแบบเดิมๆ" ตลอดไป... เอ็ดเวิร์ด เดอ โบโน
แท้ที่จริงแล้ว วิทยาศาสตร์ ก็ไม่มีอะไรมากไปกว่า การนำ "ความคิด"
ที่มีอยู่แล้วมาใช้.. อัลเบิร์ต ไอน์สไตน์
ความคิดสร้างสรรค์คือ การคิดค้น ทดลอง เติบโต เสี่ยง แหกขนบ ทำผิดพลาด
และสนุกกับมัน!.. แมรี ลู คุก
ความคิดสร้างสรรค์คือที่ที่ยังไม่มีใครเคยไปถึง
เราต้องออกจากเมืองแห่งความ "เคยชิน"
และวิ่งเข้าป่าพงแห่ง "สัญชาติญาณ".. อลัน อัลดา
ต่อกันที่คอลัมน์จากนิตยสารคอมพิวเตอร์อาร์ตไทย ที่ว่ากันด้วยวิธีดึงความคิดสร้างสรรค์ออกมาได้อย่างมีประสิทธิภาพ โดยผมขออนุญาติยกเนื้อหามาสรุปตามนี้
- เริ่มจากสิ่งของนอกกาย ปรับสภาพแวดล้อมรอบตัวให้เป็นตัวเร่งปฏิกิริยา ซึ่งแวดล้อมไปด้วยหนังสือ ของเล่น โปสเตอร์โปรด สามารถกระตุ้นความคิดสร้างสรรค์ออกมามากขึ้น
- มองทุกอย่างผ่านตาตัวเอง ทำทุกอย่างที่สามารถทำได้ และมองมันด้วยตาของคุณเอง
- ทำตัวเป็นนักสำรวจ ประสบการณ์แปลกใหม่มักเป็นของฝากจากการเดินทาง ตื่นตัวอยู่ตลอดเวลาและจำอารมณ์นั้นไว้ให้ดี
- ใช้อินเทอร์เน็ตให้ถูกทาง ใช้ประโยชน์จากเว็บสร้างแรงบันดาลใจให้มากที่สุด และมีส่วนร่วมความคิดเห็นในเว็บบอร์ด
- มีสมุดสเก็ตช์ติดตัว พกไว้เสมอและพยายามเอาออกมาในทุกโอกาสที่มี
- เปลี่ยนบรรยากาศ เปลี่ยนความจำเจให้เป็นความท้าทาย
- ความน่าเบื่ออาจเป็นจุดเริ่มความสำเร็จ บางครั้งความครีเอทจะแสดงตัวออกมาตอนที่คุณเบื่อสุดขีด
- ดิ่งข้าไปในโลกของสิ่งพิมพ์ ถอยจากคอมพิวเตอร์ ปิดทีวีเสีย เปลี่ยนตัวเองมาเป็นผู้รับสารแทนการเป็นผู้ถูกยัดเยียดข้อมูลบ้าง ลองอ่านหนังสือ เปิดนิตยสารในหัวข้อที่น่าสนใจ โดยไม่จำกัดอยู่แค่สายงานที่ทำ
- หาศัพท์ใหม่ให้ตัวเอง ศัพท์ที่ได้ยินทุกวันอาจไม่ทำให้ความคิดแล่น หาศัพท์ใหม่ๆ อธิบายสิ่งที่กำลังจินตนาการอยู่ เพราะมันจะพาคุณไปในทิศทางใหม่ๆ
- สวมบทนักวิจารณ์ เพลง ละครเวที บัลเลต์ หนัง รูปปั้น มีโลกแห่งความคิดสร้างสรรค์รอค้นพบ แล้วแต่เลือกทำ เข้าไปมีส่วนร่วมกับมันแล้วคิดว่าอะไรบ้างที่มีส่วนในการสร้างสรรค์มันขึ้นมา
- Back to school ลองค้นหาคลาสเสริม และใช้เวลาสัก2-3 ชัวโมงในแต่ละอาทิตย์ หาประสบการณ์ใหม่จากห้องเรียนดูอีกครั้งคงไม่เสียหาย
- เปิดกรุเก่าเก็บ ความคิดที่ผ่านมา สิ่งที่เคยให้แรงบันดาลใจ ความรู้สึกพอใจสิ่งที่เกิดขึ้นโดยไม่ตั้งใจ บางอย่างที่โดนใจในอินเตอร์เน็ต ควรสะสมเก็บไว้ หรือโพสต์เก็บไว้ โดยไม่ลืมใส่ Tag ในไม่ช้าคุณจะมีห้องสมุดของตัวเอง
- เรียนประวัติศาสตร์ให้มากขึ้น ส่วนมากเราจะนำความคิดของศิลปินนักคิดรุ่นก่อนๆ มาปรับใช้ใหม่ให้เข้ากับยุคสมัยด้วยกระบวนการสมัยใหม่ ในประวัติศาสตร์ที่ผ่านมามีมูลความคิดสร้างสรรค์เหลือล้น สิ่งเหล่านั้นคือสิ่งที่ทำให้เราเป็นตัวเรา
- ลงมือเสียที เมื่อไหร่ที่คุณสร้างสิ่งที่จับต้องได้ขึ้นมาสักชิ้น จะทำให้ความคิดสร้างสรรค์พรั่งพรูออกมา
- บทวิจารณ์ที่มีคุณค่า ไม่เพียงแต่วิจารณ์งานคนอื่นเท่านั้น พยายามเอาผลตอบรับมาใช้ด้วย คิดว่ามีอะไรที่สามารถนำไปปรับปรุงได้ จำไว้ว่าติเพื่อก่อ ติเพื่อก่อ
- อย่าขาดการติดต่อ คุณจำเป็นจะต้องติดตามความเคลื่อนไหวต่างๆ ที่เกิดขึ้น การตามกระแสไม่ใช่อะไรที่ฉลาดนัก แต่การรับรู้ถึงการมีอยู่และขอบเขตเป็นสิ่งที่พึงกระทำ
- เป็นลูกค้าตัวเอง สร้างงานส่วนตัวขึ้นมา ไม่ว่าจะเป็นงานที่แสดงถึงความรักต่อศิลปินหรือนักดนตรีในดวงใจ ทำอะไรก็ได้ที่หัวใจคุณจะเต้นแรง ถ้าคุณจำคำแนะนำนี่ได้ขึ้นใจละก็ ไม่มีทางที่จะขาดวัตถุดิบในการสร้างสรรค์ ในเมื่องานส่วนตัวของคุณ ตัวคุณเองคือลูกค้า จึงสามารถตั้งมาตราฐานให้สูงลิ่วหรือแค่ได้ทำตามใจฉันก็ย่อมได้เสมอ
- ฉีกกรอบของคุณทิ้ง ความคิดสร้างสรรค์คือเพื่อนสนิทของความเปลี่ยนแปลง จำแล้วพยายามท้าทายกฏเกณฑ์เดิมๆ ลองทำงานในรูปแบบที่คิดว่ายาก ลำบาก ไม่ถนัด ไม่ชอบ หรือ วาดรูปแทนการบรรยายเป็นคำพูด
- เปิดอกพูดคุย เคยไหมที่ความครีเอทมักออกมาตอนช่วยคิดงานให้เพื่อน ฉะนั้นเพื่อนก็คงจะไม่ต่างจากคุณเท่าไหร่ เมื่อคุณคิด คิด คิดจนตัน ลองปรึกษาเพื่อนดูก็ได้ "อย่าละเลยความคิดเห็นของคนอื่นๆ"
ผมว่าน่าสนใจมากเลยทีเดียว จะว่าไปความคิดสร้างสรรค์ ก็คือองค์ประกอบอย่างหนึ่งที่มีติดตัวเรามาตั้งแต่เกิดเนอะ
เพียงแต่ว่าเราจะค้นพบเมื่อไหร่ จะหยิบมาใช้ตอนไหน นิยามของนักคิดแต่ละคนก็ต่างๆกันไป บ้างก็ว่า หมั่นคิดบ่อยๆ หมั่นตั้งคำถาม แล้วเราก็จะปิ้งเอง บางก็ว่า บางทีถ้าเราพยายามคิดบีบกรอบมากไปมันจะกลายเป็นกรอบให้ความคิดของเราเอง ฉะนั้นจงปล่อยวาง ผมว่าทุกๆ นิยามที่เคยได้เห็นได้ยินมานั้นถูกหมด สำหรับผมมองว่า ถ้าเราไม่หยุดคิด หมั่นสังเกตุ ความคิดสร้างสรรค์ไม่มีวันตาย!! 555
แต่ตอนนี้คิดอะไรไม่ค่อยออก ฉะนั้นพักซะหน่อย หาอะไรทำเพลินๆ ให้เบิกบานใจกันดีกว่า อิอิ
คอลัมน์โดย : Computer art thailand Issu : 9
บทความโดย : ดวงฤทธิ์ บุนนาค (@duangrit)
อ่านเพิ่มเติมได้ที่ : creativethailand
Saturday, March 27
มันยืดได้(ต่อ)
1. createNode -n "AutoStretchArm" "blendColors"; เพื่อสร้างโหนด blendcolors ขึ้นมา
2. จากคราวก่อนเราได้สร้าง โหนด multiplyDivide ในการคำนวณหาระยะ a+b และใช้โหนด condition เพื่อให้เปรียบเทียบค่า c ตามเงื่อนไขหากเกินค่า firsteam จะเกิดการ Stretch ขึ้น
3. ให้เราสร้าง Add Attribute ใน Shape ของตัว Control ที่เราจะใช้กำหนดการเปิดปิด Stretch ตั้งชื่อตามเหมาะสมและกำหนดค่าสูงสุด - ต่ำสุด เป็น 0-1
4. ในหน้าต่าง Hypergraph ให้เราเลือกที่ Shape Control เป้าหมาย > "ชื่อ Attribute ที่สร้างก่อนหน้า" เชื่อมโยงไปที่โหนด blendColors > blender
5. จากนั้น ในเงื่อนไข Stretch คราวก่อน หลังจากส่ง ColorIfTrueR เชื่อมโยงโดยตรงเข้าที่กระดูกให้เราหยุดการ Connectนั้นๆ แล้วเปลี่ยนให้ Output ColorIfTrueR จากโหนด condition ไปเชื่อมโยงเข้าที่ blendColors แทน
6. จากนั้นทำการ Output เข้าสู้กระดูกตามขั้นตอนเดิม(OutputR เพราะรับค่าR มา)
7. หลังจากการเชื่อมต่อหากเกิดปัญหากระดูกหดให้ตรวจเช็คที่ Attribute โหนด blendColors ให้ค่าที่เกี่ยวกับ R เป็น 1 ให้หมด(color2R = 1)
Tuesday, March 23
มันยืดได้
1. วาด FK joint เริ่มที่ : Skeleton > Joint Tool เพื่อวาดแขน เราจะเปลี่ยนชื่อตามลำดับดังนี้
- shoulder_jnt / elbow_jnt / wrist_jnt
2. ตามมาด้วยการเชื่อม IK ไปที่ : Skeleton > IK Handle Tool แล้วจุดที่ shoulder_jnt และ wrist_jnt แล้วเปลี่ยนชื่อเป็น armIk_ikH
(ใน Option ให้รีเซ็ตค่าทั้งหมดเป็นมาตราฐานก่อนโดยเอา Autopriority กับ Sticky ออก)
3. ต่อไปก็สร้างตัวคอนโทรลไปที่ : Create > NURBs Primitives > Circle แล้วเปลี่ยนชื่อเป็น armIk_ctrl
4. ลำดับนี้ไปที่ : Edit > Delete by Type > History เพื่อสะสาง NURB Circle (armIk_ctrl) ของเราให้สะอาดหน่อย
5. จากนั้นเราจะให้ตัวคอนโทรล ไปอยู ณ wirst_jnt เพื่อให้มันทำหน้าที่ควบคุมส่วนนี้
ก่อนเคลื่อนย้ายตัวคอนโทรลให้กรุ๊ปรอบหนึ่งก่อนเพื่อรักษา Tranfrom เอาไว้ ดังนี้
- เลือก Circle เปลี่ยน Translate xyz ให้อยู่ในตำแหน่ง 0 แล้วกด Ctrl+G เพื่อกรุ๊ปมัน
- เปลี่ยนชื่อกรุ๊ปเป็น armIkCtrl_zGrp จากนั้นเลือก armDisc2_loc หรือ wrist_jnt ก็ได้เพราะอยู่ตำแหน่งเดียวกัน
แล้วกลับมาเลือก armIkCtrl_zGrp ไปที่คำสั่ง Contrain > parent
(ใน option เครื่องหมายถูกที่ช่อง Maintain offset ออกเพื่อละเว้นการรักษาระยะระหว่างวัตถุ)
- เพียงเท่านี้ ตัวคอนโทรลก็จะโดดไปอยู่ในตำแหน่งอ้างอิงแรกแล้ว แต่เพราะเราต้องการแค่ Snap เท่านั้น
การใช้คำสั่ง Parent ใน Contrain จะมีการสร้าง โหนด parentConstraint เพิ่มมาด้วยให้เราลบทิ้งไปซะโดยดี
6. แล้วก็เลือก armIk_ikH เลือก armIk_ctrl แล้วกด parent (p) เพื่อให้ตัวคอนโทรลเป็นตัวควบคุม IK Handle อีกทีหนึ่ง
7. ตามด้วยสร้างตัววัดระยะ : Create > Measure Tools > Distance Tool
- จะได้Locator 2 ตัวที่ต้นทางกับปลายทางที่ต้องการ พร้อมกับ Distance วัดระยะ 1 อีกตัว
- ให้เปลี่ยนชื่อซะดังนี้ (Locator 1 >armDisc1_loc)
(Locator 2> armDisc2_loc)
(distanceDimension > armDisctance)
8. จากนั้นก็ทำการยึด (shoulder_jnt เข้ากับ armDisc1_loc) และยึด (armIkCtrl_zGrp เข้ากับ armDisc2_loc)
โดยวิธีการไปที่ Constrain > Point เพื่อทำการยึดไว้ด้วยกัน
9. มาถึงตอนนี้ จะได้ Rig แขนเบื้องต้นสามารถใช้ armIkCtrl_zGrp ในการควบคุมการเคลื่อนไหวของแขนได้ในระดับหนึ่ง
10. จากนี้ให้ เลือก armDisc1_loc / armDisc2_loc / armDistance แล้วทำการกรุ๊ปในชื่อ armDisc_zGrp เพื่อจัดกลุ่มให้เข้าที่ซะหน่อย
11. โดยให้เปิด : Window > Hypergraph Hierarch ขึ้นมา ในที่นี้ลำดับแรกผมคิดว่าน่าจะตรวจสอบชื่อต่างๆให้ถูกต้องเสียก่อน
อย่างเช่นตอนนี้จะมี effector ของ joint บางตัวที่ยังใช้ชื่อเดิมอยู่ให้เราพาเค้าไปอำเภอเพื่อเปลี่ยนชื่อซะ
อย่างตอนนี้จะมี effector หนึ่งตัวที่ยังใช้ชื่อเดิมอยู่ให้เปลี่ยนเป็น arm_eff ซะเลยจะได้ไม่สับสนทีหลัง
12. เราจะทำงานในหน้า Hypergraph นี้โดยดูจากส่วนที่มีการ Connection ให้เลือกแถบเมนูของ Hypergraph ที่ชื่อ
Input and Output connections จะแสดงส่วนที่มีการเชื่อมโยงกันอยู่
13. ถึงตรงนี้เราจะสร้างเงื่อนไขเพื่อให้เกิดการ Stretch โดยใช้สองโหนดคือ MultiplyDivide และ Condition
วิธีการสร้างทำได้มากกว่า 1 วิธี คือ
- พิมพ์ช่อง Mel Script ดังนี้[ createNode multiplyDivide –n “armStretch_mdv”; ]
[ createNode –n “armStretch_mdv” “multiplyDivide”; ]
ต้องระวังเรื่องตัวใหญ่ เล็กหน่อยเพราะผิด 1 ตัวจะ Error ทันที และรูปแบบทั้งสองได้ผลเช่นเดียวกัน
- หรือจะเลือกที่ หน้า Hypergraph เลือกแถบ : Rendering > Create Render Node > Utilities แล้วเลือกชนิดโหนดที่ต้องการสร้าง
ก็จะปรากฏ MultiplyDivide Node ใน พื้นที่การทำงานเช่นเดียวกัน
14. เมื่อเราสร้างทั้ง 2 โหนดขึ้นมาแล้วลำดับต่อมาให้ Distance โหนด armDistance เข้ากับ armStretch_mdv
- คลิกขวาค้างที่ armDistance > Distance แล้วชี้เมาส์ ไปคลิกขวาค้างที่ armStretch_mdv > Input1 > Input1X
ในขั้นตอนนี้เป็นการส่งค่า Distance พื้นเข้าของ armStretch_mdv เข้าไปในค่า Input1X
- จากนั้นคลิกขวาค้างที่ armDistance > Distance ตามขั้นตอนเดิมเพื่อส่งค่าไปยัง armStretch_cnd > First Term
เพื่อส่งค่าแรกไปเก็บไว้
15. โหนด multiplyDivide จะใช้หาความยาวของกระดูกทั้งสองท่อนกลับค่าของ Distance เพื่อให้เกิดการ Stretch
16. และใช้โหนด condition เพื่อเปรียบเทียบเงื่อนไขดังกล่าว
17. จะเกิดการ Stretch ต่อเมื่อ armIkCtrl_zGrp ยาวกว่า ความยาวกระดูกแขนสองท่อนรวมกัน(A+B) โดยใช้โหนด condition เพื่อเป็นการเปรียบเทียบ
18. หลังจากที่เรา Connection โดยส่งค่า Distance ไปที่ First Term แล้วให้เรามาดูว่ากระดูกเป้าหมายของเรามีความยาวของแต่ละท่อนรวมกันเท่าไหร่ หาค่านี้ได้เรียบร้อยแล้วจดไว้
19. เข้าที่ Condition Attibute เมื่อ Connection เรียบร้อยแล้วจะ เห็นค่า Distance มาอยู่ในช่อง First Term ให้เราเอาตัวเลขความยาวของกระดูกรวมสองท่อนมาใส่ในช่อง Second Term เลยแล้วตรง Operatrion เปลี่ยนเป็น Greater Than (มากกว่าหรือเปล่า)
20. เช่นเดียวกันเข้าไปที่ MultiplyDivide Attibute ใส่ค่าความยาวรวมของกระดูกสองท่อนลงไปในช่อง Input 2 X และเปลี่ยน Operation > Divide เนื่องจากว่าหาตัว armIkCtrl_zGrp มีค่า Distance ในช่อง Input 1 X เกินจะการส่งค่าพิสูจน์ไปยัง Condition เพื่อหารค่าx ให้เท่ากับ Distance ทันที
21. ให้เรา OutputX จาก multiplyDivide ไปที่ armStretch_cnd > ColorIfTrue > ColorIfTrueR เพื่อส่งค่า X จากมัลติพายดิวาย ไปเก็บไว้ที่ colortIfTrueR ถ้าถูกต้องตามเงื่อนไข ทวนสูตร(โหนด MultiplyDivide จะส่งค่าOutputX ไปที่ armStretch_cnd )
22. จากนั้นให้ส่งค่าจาก armStretch_cnd > OutColor >ColorR ไปที่ shoulder_jnt และ elbow_jnt โดยให้คลิกขวาค้างไว้ที่_jnt ทีละตัวเลือก Scale > ScaleX เพื่อทำการส่งค่าทั้งหมดไปแสดงผลใน ScaleX ของ shoulder_jnt และ elbow_jnt
23. จบแล้วครับผม
Monday, March 22
จุดประกาย
ในที่สุดก็ได้เริ่มต้น เป้าหมายเล็กๆ นี้สักที ขอบคุณมาม้ามากๆ คาฟ..
ที่พูดมาไม่ใช่อะไรหรอกครับ นั่นก็คือ Keko TD Character Setup Class นั่นเอง
ว้าว ตื่นเต้นจัง นี่ถือเป็นสิ่งที่ผมจะสามารถทำได้ในขณะนี้
เรื่องของเรื่องที่สนใจเรียนในคลาสนี้หนะเหรอ...
ตอบไปเลย 2 เหตุผลครับว่า
- ทำงานประกวดโมเดลปั้นเสร็จไปแสนนานแต่ต้องมาติดแหง็กตอน Rigging เนี้ยแหละ
ปาเข้าไปครึ่งเดือนแถม Rig ออกมายังไม่สมประกอบอีก เพ้นเวดก็ไม่เป็น มันเลยเกิดอาการอยาก
อยากเอาชนะ อยากทำได้ อยากเป็น
- ช่วงที่ได้เริ่มหัดจากหนังสือรู้สึกว่ามันยากเหลือเกิน ผ่านไปร่วม2สัปดาห์ผลออกมาเห่ยสุดๆ แต่ก็เริ่มสนุกกับมัน
จังหวะที่เพิ่มเอกที่ได้ไปเรียนคลาสแอนิเมเตอร์มาก็ให้ข่าวว่าพี่ตุนจะเปิดคลาสริกกิ้ง เอาละไงเห็นทางสว่างละครับ
เอาละจังหวะที่กำลังจะเริ่มทำอะไรเป็นชิ้นเป็นอันก็เห็นคนนั่นนี้มีงานออกมาให้เห็นเป็นการจุดไฟโหมไปกันใหญ่ ตายเป็นตาย ไม่เริ่มตอนนี้จะไปเริ่มตอนไหนละ
เอาละวันนี้ไปเรียนมาได้อะไรบ้างนะ
Maya Architecture
- Node Based Architecture
คือในโปรแกรมมายาเนี้ยจะมีการทำงานในลักษณะของ Node ซึ่งจะมีความยืดหยุ่นสามารถ Connect
เพื่อให้เกิดผลลัพธ์สุดท้ายตามที่ต้องการได้
- Module Based
ส่วนในโปรแกรมอื่นๆเนี้ย อาทิเช่น ไลฟ์เวฟ จะมีการทำงานที่แยกจากกันเป็นโมดูล ทำงานแยกส่วนว่างั้น
โดยลำดับต่อมา
DAG = Directed Acyclic Graph > ไม่มีการเชื่อมต่อแบบทับซ้อน หรือเป็นการเชื่อมต่อทางเดียวไม่สามารถทำการเชื่อมต่อเป็นวงกลมได้
DG = Dependency Graph > มีการเชื่อมต่อที่เป็นอิสระต่อกัน วนไปเวียนมาเด้งหน้าเด้งหลัง(อันนี้ไม่ใช่) จนน่าเวียนหัวทีเดียวเชียว(นี่แหละพระเอกของเราเลย)
ทั้งนี้พี่เป๊ก(อาจารย์) ได้บอกให้เราปรับเปลี่ยนมุมมองในสายตาของริกเกอร์ซะหน่อย
จากที่เห็นโพลีกอน4เหลี่ยมธรรมดา ก็ให้มองในมุมของชาวริก
นั่นคือวัตถุหนึ่งชิ้นที่เห็นตรงหน้านั้นไม่ได้มีแค่ที่เห็น สรุปแล้วชาวริกทั้งหลายโปรดจงมองลงไปให้ลึก
ให้ซึ้งถึงหัวใจโพลีกอนกันเลย 55
สรุปได้ดังนี้
วัตถุ 1 ชิ้นจะประกอบด้วย 2 Node คือ
- Transform Node : ซึ่งจะทำการเก็บค่าการเคลื่อนไหวของวัตถุนั้นหรือตำแหน่งอ้างอิงพิกัดเป็นต้น
นั่นก็คือค่าของ Translate, Rotate, Scale, Pivot Point แล้วก็ไม่แน่ใจว่าจะมีอะไรเหนือจากนี้อีกรึเปล่า
- Shape Node : ในโหนดนี้ก็ตามชื่อเลย เก็บลักษณะรูปร่างรูปทรงของวัตถุชนิดนั้นๆ นั่นเอง วัตถุทุกชิ้นที่สร้างขึ้นมาจะต้องมีเชฟโหนดนี้อยู่ด้วยเสมอมา โดยข้อสังเกตุคือ เชฟโหนดนี้ไม่สามารถอยู่ได้อย่างโดดเดี่ยวเดียวดาย เรียกง่ายๆว่า ขี้เหงานั่นเอง
Utility Node
ในโหนดนี้เองโปรแกรมสร้างไว้เพื่อใช้กับ Shader หรือพวกการใส่พื้นผิวให้วัตถุนั่นแหละ (มั้ง) แต่เราจะนำเอามาปรับใช้ในการเล่นกับโหนดเพื่อ Rig กันให้เมามัน โดยตัวที่ใช้บ่อยๆ (พี่เป๊กสรุปมาให้) ก็คือ
- Condition (ไม่ใช่คอนดิชั่นเนอร์สำหรับบำรุงผม) ใช้เพื่อตรวจเช็คสภาพของเหตุการณ์ อย่างมีเงื่อนไข
- Distance Between อันนี้ยังไม่ชัวร์เว้นไว้ก่อน
- Multiply Divide วันนี้เจ้าคำสั่งนื้ถือเป็นพระเอกของผมเลยทีเดียว มันทำหน้าที่รับค่าและส่งออกไปยังที่ที่ระบุ ไว้จะมาทำความเข้าใจเพิ่มแล้วกันพ่อพระเอก
- Average ยังไม่ได้เข้าถึงแต่ก็คิดว่าน่าจะเป็นการคำนวณหาผลรวมตามความหมายนั่นแหละ
- Reverse ยังเป็นปริศนา แต่คิดว่าอนาคตต้องมีหมัดเด็ดแน่นอน
- Set Range ตัวละครลับ
- Vector Product ตัวละครลับ
เพิ่มเติมในส่วน Utility Node
- การเข้าถึงสามารถทำได้โดย คลิกขวาที่ Outliner > เพื่อทำการแสดง DAG
- อันนี้เบๆแต่จำไม่ค่อยได้สักทีบันทึกไว้ก่อน Hypergraph : ไปที่ windows > Hypergraph
ในสองส่วนด้านบนนี้จะมีความแตกต่างกันคือ (การทำงานริกเกอร์จะต้องใช้เป็นหลัก)
Outliner จะสามารถแสดงให้เห็นเฉพาะ DAG เท่านั้น ในทางกลับกัน
Hypergraph จะสามารถแสดงให้เห็นได้ทั้ง DG และ DAG ซึ่งคิดว่าการใช้งานน่าจะขึ้นกับความคล่องตัวเป็นหลัก
เกือบลืมการที่จะเลือกใช้ Utility Node ทำได้ 2 อย่างเท่าที่รู้ในตอนนี้คือ
- เปิด Hypergraph > Rendering > Create Render Node… จะเด้งหน้า Create Render Nodeมา
ให้คลิกเลือกที่ แท็บ Utilitys เพียงเท่านี้ก็พร้อมเสิรฟความปวดหัวให้เราแล้ว
- มั่นใจหน่อยก็ พิมพ์ในช่อง Mel Script ไปเลย สร้างตามชื่อตัวแปรที่ต้องการ
พูดถึงเรื่อง Mel ก็เข้าทาง Script Editor เพราะว่ายังไม่เข้าใจรูปแบบการเขียนเท่าไหร่ให้เราไปเช็คที่การใช้ตัวแปรได้ที่
Help > Mel Command Reference เท่านี้เราก็รีดความลับมาได้นิดนึงแล้ว
แทรกเกร็ดเล็กน้อย สำหรับ Expression ที่เราใช้เป็นสีม่วงๆ กันนั้น
พี่เป๊กบอกว่าเนื้อไม่ค่อยพิมพ์นิยมเท่าไหร่ เพราะเมื่อใช้จะมีการคำนวณทุกเฟรมทำให้การแสดงผลช้าแล้วก็มีคอมเม้นอีก... แต่ฟังไม่ทัน
มาถึงตรงนี้หน้าที่ของชาวริกคือ เราต้องเขียนพินัยกรรมให้เรียบร้อย อะ งงละสิ(กลับมาอ่านเองยังงง)
คร่าวๆในเบื้องต้นคือ
หลังจากที่เราได้ผ่านขึ้นตอนการเขียนพินัยกรรมเอ้ย ริก เพื่อที่จะเป็นมรดกให้ลูกหลานเอ้ยเพื่อนๆอนิเมเตอร์ต่อไปนั้น เราต้องสะสางให้เรียบร้อยตรวจเช็คว่ามีโหนดว่างกรุ๊ปว่าง หรือต่างๆนาๆ ที่ไม่จำเป็นรึเปล่า ตั้งค่าเลเยอร์แยกไปให้ดี ชื่อคอนโทรลเลอร์ก็ตั้งให้มันเข้าใจดูแล้วสากลรู้เรื่อง ไม่มีนะว่ากระดูกไหปลาร้า ถัดมาเป็นไหปลาหล่น เต้าเจี้ยว เอ่อไปกันไหญ่ แล้วก็พยายามสร้างคอนโทรลต่างๆให้เหมาะกับการใช้งานเพียงพอสำหรับขั้นตอนอนิเมท เค้าจะได้โพสท่ากันได้เนียนๆ
เอาละต่อไปเป็นตัวอย่างแล้วก็ทริปต่างๆที่คิดว่ามันจะมีประโยชน์ (เพิ่งรู้) ก็มีดังนี้
- สมมุติเราสร้าง Locator ขึ้นมาแล้วทำการ Duplicate ให้เราดูในหน้า Hypergaph สังเกตุว่า ตัว Locator ที่ก็อปเพิ่มนั้นจะยังไม่อัพเดท (อยู่ในรูปทรานฟอมโหนดแค่อันต้นแบบ) ให้เราอัพเดทวิธี คลิกขวาที่ว่างเลือก Graph > Rebulid เท่านั้นก็เป็นเรื่อง (เรียบร้อย)
- Array Attribute เคยคุ้นๆ เจ้าตัวนี้มาบ้างแล้วแต่สรุปสั้นประมาณว่า เป็นตัวใช้สำหรับ Input ตัวแปร โดยมีการประกาศต่อไปเรื่อยๆ เป็นลำดับ
- การตั้งชื่อ ตัวอย่าง Shoulder_jnt สังเกตุว่า ชื่อต้องสื่อให้ตรงกับตำแหน่งตามด้วย _jnt หมายถึงชนิดของวัตถุนั้นในที่นี้คือ กระดูก (jnt = joint) อีกตัวอย่าง armIk_ctrl ส่วนมากถ้าชื่อมีสองสื่อ จะให้คำแรกตัวเล็กหมด ต่อมาให้ตัวใหญ่เพื่อให้รู้ว่าเป็นอีกคำ แล้วก็ตามด้วย _ctrl ชนิดของวัตถุเหมือนเดิม สมควรฝึกตั้งให้เป็นนิสัย
- ในส่วนของคำสั่ง Parent Constraint Option จะมีช่องให้ติ๊กเจษฏาพรเอ้ย ติ๊กถูกช่อง Maintain Offset เมื่อเราเลือกจะเป็นการรักษาระยะห่างให้เท่าเดิมโดยมีการยึดวัตถุเข้าด้วยกันแต่อยู่ในตำแหน่งเดิม
- วิธี Snap ที่แม่นยำ ให้เราเลือก วัตถุทั้งสอง ไปที่ Constrain > Parent จากนั้นทำการติ๊กเอา Maintain Offset ออกซะ วัตถุทั้งสองจะได้เหนี่ยวแน่นหนึบไปตามกัน แล้วก็ถ้าไม่อยากให้มีผลจากการ Parent ของ constraint ก็ให้ลบ Parent Constraint ใน Outliner ออก เพื่อไม่ให้ Parent ทำงาน(ก็เราแค่จะSnapนิ)
- มาถึงตรงนี้ยังงงๆอยู่ ในทางสูตร A,B คือ Static(Second Term) C คือ Dynamic(First Term) โดยเงื่อนไขที่เรียนในคลาสมีดังนี้ IF C > (A+B) Than sx = C Else sx = 1….. (sx ย่อมาจาก ScaleX ถ้าเป็น tx ย่อมาจาก TranslateX เป็นต้น) เข้าใจว่าในสูตรนี้คือ ถ้า C ก็คือผลลัพธ์ มากกว่า A+B ให้ ScaleX = C ถ้าไม่ใช่ให้ ScaleX = 1
- Edit > parent ใช้กันทั่วไปสำหรับยัดสิ่งที่เลือกให้ไปอยู่ขึ้นบันได
ส่วน Contrint > parent เป็นการรวมเหมือนกันแต่จะทำให้ไฟล์หนักกว่าเดิม เพราะมีการเพิ่มโหนดเข้ามา ในส่วนนี้จะมีประโยชน์ในการทำริบบอนในคลาสต่อๆ ไป
- ทิ้งท้ายสำหรับครั้งนี้ได้รู้ว่ามายาใช้เป็นเครื่องคิดเลขได้แต่ใครกันหนอจะใช้ ไม่เป็นไรพิมพ์บันทึกไว้ก่อน การใช้ก็ไม่ยากมีความรู้สึกว่ามันคล้ายๆ ปาสคาลเลย ดังนี้ print ( number + number ); คิดเลขได้โอ้จริงๆ ด้วยนะจอร์จ
ส่วนแรงบันดาลใจเพิ่มเติมพี่เป๊กแนะนำให้ดูตามนี้.. ของเค้าดีจริง (อันนี้ยกมาทั้งประโยคจากต้นฉบับครับ)
1.http://jasonschleifer.com/ Link ของ Jason Schleifer เค้าเป็น Technical Artist ที่โด่งดังมากครับ เป็นผู้ทำ Animator Friendly Rig ซึ่งเป็น Training Rigging DVD ที่ผมคิดว่าดีที่สุดแล้ว
2.http://inspired3dadvancedrigging.blogspot.com/ เป็น Blog ของหนังสือที่เกี่ยวกับ Rigging ที่ดีเยี่ยมเลยครับ เล่มนี้ผมแนะนำให้หาซื้อมาอ่านกันนะครับ
3.http://www.davidgould.com/ Link ของ David Gould ผู้เขียน Complete Maya Programming ครับ เป็นหนังสือสอนเขียน MEL Script สำหรับผู้เริ่มต้นที่ดีอีกเล่มครับ
