หน้านี้เป็นสารบัญรวมข้อมูลเนื้อหาเกี่ยวกับโปรแกรม Autodesk Maya ซึ่งเขียนไว้ทั้งหมดในบล็อกนี้ เนื้อหาส่วนใหญ่จะเกี่ยวข้องกับการเขียนโค้ดภาษา python




maya-chan จากเรื่อง gochiusa ภายในโปรแกรม maya



maya python เบื้องต้น
บทความนี้เขียนขึ้นเพื่อเป็นพื้นฐานให้กับคนที่อยากจะเขียนโค้ดเพื่อใช้ในโปรแกรมมายาเพื่อจะสามารถใช้งานอะไรต่างๆได้
เหมาะสำหรับคนที่
- มีความรู้พื้นฐานด้านการเขียนโปรแกรมมาบ้างแล้ว อาจไม่จำเป็นต้องเป็นภาษาไพธอนก็ได้
- มีพื้นฐานโปรแกรมมายาอยู่แล้วบ้าง ไม่จำเป็นต้องรู้ลึก แต่อย่างน้อยต้องเข้าใจว่าควบคุมอะไรบนหน้าจออย่างไร
- กำลังไม่รู้จะเริ่มต้นจากตรงไหนดี

เนื้อหาจะไม่ได้เรียงตามหมวดหมู่อย่างเป็นระเบียบ แต่จะเรียงข้ามหมวดไปมาเพื่อให้สามารถทำความเข้าใจได้ไปเรื่อยๆทีละขั้น
ผู้เขียนไม่ได้เรียนทางด้านคอมพิวเตอร์หรือออกแบบกราฟิกมา อาศัยศึกษาด้วยตัวเอง ดังนั้นอาจละเลยบางแง่มุมไป จะเขียนจากมุมมองของตัวเอง เน้นที่ตัวเองเห็นว่าได้ใช้งานเป็นหลักมากกว่า
เนื้อหาเรียบเรียงจากประสบการณ์ตรงในการใช้ และข้อมูลอ้างอิงจากเว็บญี่ปุ่นเป็นหลัก

บทที่ ๑: บทนำ

บทที่ ๒: การสร้างรูปทรงพื้นฐาน
※ polyCube(); polySphere(); delete()
บทที่ ๓: การจัดวางวัตถุ
※ move()
บทที่ ๔: การทำซ้ำและตั้งเงื่อนไข
※ (พื้นฐาน python)
บทที่ ๕ : การสร้างโค้ดให้ทำงานเมื่อเริ่มโปรแกรม

บทที่ ๖ : การเลือกวัตถุ และการตั้งชื่อ
※ select(); rename()
บทที่ ๗: การใช้ลิสต์
※ (พื้นฐาน python)
บทที่ ๘: โครงสร้างรูปทรงแบบต่างๆ
※ polyCylinder(); polyCone(); polyPrism(); polyPyramid(); polyPlane(); polyTorus(); polyHelix()
บทที่ ๙: ค่าคืนกลับของฟังก์ชันในมายา

บทที่ ๑๐: ค่าองค์ประกอบต่างๆ และการปรับแก้ค่า
※ getAttr(); setAttr(); listAttr()
บทที่ ๑๑: การทำซ้ำด้วย for
※ (พื้นฐาน python)
บทที่ ๑๒: การทำภาพเคลื่อนไหวโดยใช้คีย์เฟรม
※ setKeyframe(); currentTime(); keyTangent(); selectKey()
บทที่ ๑๓: การทำภาพเคลื่อนไหวต่อเนื่องไปเรื่อยๆ
※ setInfinity(); playbackOptions()
บทที่ ๑๔: การใช้ฟังก์ชันที่เกี่ยวข้องกับคณิตศาสตร์
※ (พื้นฐาน python)
บทที่ ๑๕: การทำภาพเคลื่อนไหวด้วยเอ็กซ์เพรชชัน
※ expression()
บทที่ ๑๖: การหมุน
※ rotate()
บทที่ ๑๗: การปรับขนาดมาตราส่วน
※ scale(); makeIdentity()
บทที่ ๑๘: การรวมกลุ่ม
※ group(); ungroup()
บทที่ ๑๙: ความสัมพันธ์แบบพ่อแม่ลูก
※ parent(); spaceLocator()
บทที่ ๒๐: การตัดแต่งส่วนประกอบของโพลิกอน
※ polyEvaluate()
บทที่ ๒๑: การวิเคราะห์และคัดกรองส่วนประกอบของโพลิกอน
※ xform()
บทที่ ๒๒: การรวมและแยกโพลิกอน
※ polyUnite(); polyMergeFacet(); polySeparate()
บทที่ ๒๓: การสร้างและเพิ่มโพลิกอนจากจุด
※ polyCreateFacet(); polyAppend(); polyAppendVertex()
บทที่ ๒๔: แปลงรูปโพลิกอนอย่างอิสระด้วยการดันยื่นเข้าออก
※ polyExtrudeFacet()
บทที่ ๒๕: การปรับเส้นขอบโค้งมน
※ polyBevel()
บทที่ ๒๖: การสุ่ม
※ (พื้นฐาน python)
บทที่ ๒๗: การใส่สี
※ shadingNode(asShader=1); hyperShade()
บทที่ ๒๘: การใช้ดิกชันนารี
※ (พื้นฐาน python)
บทที่ ๒๙: การสร้างไอคอนบนเชลฟ์

บทที่ ๓๐: ทำความเข้าใจกับโครงสร้างโหนด
※ nodeType(); ls(); listConnections(); listRelatives()
บทที่ ๓๑: การสร้างเส้นโค้ง NURBS
※ curve(); circle()
บทที่ ๓๒: การสร้างพื้นผิว NURBS
※ nurbsPlane(); nurbsCube(); cylinder(); sphere(); cone(); torus(); nurbsToPoly(); nurbsToPolygonsPref()
บทที่ ๓๓: การสานพื้นผิวขึ้นจากเส้นโค้ง NURBS
※ loft()
บทที่ ๓๔: การใส่ภาพบนพื้นผิว NURBS
※ shadingNode('file',at=1); shadingNode('place2dTexture',au=1); connectAttr(); defaultNavigation()
บทที่ ๓๕: การใส่ภาพบนพื้นผิวโพลิกอน
※ polyProjection()
บทที่ ๓๖: การทำลายพื้นผิว
※ shadingNode('ramp',at=1)
บทที่ ๓๗: การทำพื้นผิวนูนเว้า
※ shadingNode('bump2d',au=1)
บทที่ ๓๘: การแต่งแสงและเงา
※ shadingNode(al=1); directionalLight()
บทที่ ๓๙: แสงแบบต่างๆ
※ spotLight(); pointLight(); ambientLight()
บทที่ ๔๐: การสำเนาวัตถุ
※ duplicate()
บทที่ ๔๑: การทำเบลนด์เชป
※ blendShape(); aliasAttr()



เนื้อหาเสริม
>> ลง numpy, scipy และชุดคำสั่งเสริมต่างๆใน maya
>> การลบโหนดวัสดุและเท็กซ์เจอร์ที่ไม่ใช้ทิ้งให้หมด
>> การใช้วัสดุ mia เพื่อจำลองวัสดุที่สมจริง
>> การสร้างวัสดุที่สมจริงโดยใช้ aiStandard ของ arnold



ลองทำดู
>> หอคอยฮานอย
>> วิมานพระอินทร์
>> การผจญภัยของอควาในเมืองร้าง

>> จิโนะ มายะ เมงุ チノ・マヤ・メグ
>> ร่มกระดาษน้ำมันจีน
>> แก้วไวน์ใส่น้ำ



อื่นๆ
>> ~ mmdpaimaya ~ แปลงโมเดล MMD มาใส่ในมายา
>> ~ mmdpaimaya ~ ส่วนแก้ไขเพิ่มเติมใน 1.2
>> ลองเปลี่ยนมาใช้ maya 2017 และเรนเดอร์ด้วย arnold