วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2555

(ป๊อด11) ทำEnvironment สำหรับเกมที่ใช้Unreal Engine

1.รับงาน
           เมื่อหัวหน้า(Lead) จ่ายงานมาให้เรา(Environment Artist)  ก่อนที่เราจะเริ่มงานทุกครั้ง เราควรจะต้องเช็คสิ่งที่ควรรู้เกี่ยวกับงาน มันคือสเป็กของงานที่จำเป็นต้องถามให้ครบ  ได้แก่
- รูปภาพConcept Art หรือ Referenceที่เกี่ยวข้องกับงาน 
- ระยะเวลาในการทำงานแต่ละขั้นตอน หรือทั้งหมดที่ทางหัวหน้าตั้งไว้
- ชื่อไฟล์งาน อันนี้สำคัญ สะกดผิดเพียงเล็กน้อยมันจะพากันผิดทั้งหมด
- จำนวนPolyTrisของงาน(นับเป็นFace 3เหลี่ยม) , ตัวงานมีCollision หรือLOD หรือไม่ , ใช้Textureกี่แผ่น , ใช้Textureชนิดไหนบ้าง เช่น Diffuse Normal Specular Mask
- ขนาดความสูงกว้างยาวของModel(ถ้ามี) , ขนาดTexture ทั้งไฟล์PSD(ตัวต้นฉบับ) และไฟล์Targa(สำหรับงานจริง)  โดยส่วนมากไฟล์PSDจะใหญ่กว่าไฟล์Targa 1เท่า
- เทคนิคการทำงาน เพื่อให้งานออกมาเร็ว และเป็นไปในทิศทางเดียวกัน

2.หาข้อมูลเพิ่มเติม
           หลังจากรับงานแล้ว เราควรจะหาข้อมูลเกี่ยวกับงานเพิ่มเติมครับ  เพื่อทำให้เราจินตนาการถึงงานที่ชัดเจนรอบด้านยิ่งขึ้น  ซึ่งสมัยนี้มีInternet ทำให้เรามีช่องทางหาข้อมูลได้ง่ายขึ้น  จงใช้มันให้เกิดประโยชน์  โดยเริ่มจาก
- เอาชื่องานหรือคำที่เป็นKeywordของงาน ไปSearchหาข้อมูลหรือภาพที่เว็บGoogle  พยายามSaveเก็บไว้เยอะๆครับ ใช้เวลาประมาณ1-2ชั่วโมงก็พอ
- ถ้าเป็นงานจำพวกยานพาหนะต่างๆก็หาพวกBlueprintมาเสริมด้วยครับ  จะได้แกะแบบตามด้านหน้า ข้าง และบนไปเลย  เมื่อSaveภาพBlueprintมาแล้วยังใช้เลยไม่ได้นะครับ  ให้เราไปลองทาบเช็คสัดส่วนดูก่อนในโปรแกรมPhotoshop  ปรับแต่งภาพนิดหน่อยให้เรียบร้อย ก็OKแล้ว
- Textureก็สำคัญ  ให้เราหาคร่าวๆมาเลยครับ  การทำงานบางชิ้นอาจจะต้องMapping Textureไปก่อนแล้วตัดโมเดลตาม เช่นพวกใบไม้

3.ปั้นโมเดลBase
           โมเดลBase คือโมเดลที่เราปั้นโดยเน้นไปที่รูปทรงหลักๆทั้งหมด  ตามแบบหรือConcept Art  มีเหลี่ยมมุมชัดเจน มีส่วนเว้าส่วนโค้งได้รูปทรง  ขอบของโมเดลเป็นเหลี่ยม ยังไม่ต้องทำให้มน
           เป็นขั้นตอนที่สำคัญต้องตรวจเช็คแก้ใขรูปทรงให้OKมากที่สุด  พยายามสร้างโมเดลโดยให้เส้นEdgeยาวต่อกันเป็นLoop  เดินเส้นเผื่อตอนทำตัวโมเดลHighไว้เลย  ยังไม่ต้องลดPolygonเพราะเราจะใช้Faceเท่าไหร่ก็ได้  พยายามอย่าให้มีFace 3เหลี่ยมโดยไม่จำเป็นนะครับ

4.ปั้นโมเดลHigh       
           การปั้นโมเดลHigh  ก็แล้วแต่เทคนิคของแต่ละคนครับไม่จำกัด  บางคนอาจจะขึ้นด้วยZsphereในZbrush บางคนขึ้นตัวHighระดับแรกใน3Ds MaxหรือMaya  แล้วค่อยไปต่อที่ZbrushหรือMudbox 
           ส่วนผมจะขึ้นBaseให้เสร็จก่อน แล้วก็ทำตัวHighต่อเลย บางทีก็ใช้Maya บางทีก็ใช้3Ds Max แล้วแต่ลูกค้า  ตัวHighของผมก็คือทำขอบให้มนด้วยการเพิ่มเส้นEdge  และเก็บรายละเอียดเล็กๆให้หมด จนเสร็จ  พวกพื้นผิวเราจะใช้Crazy Bumpทำจะง่ายกว่า  ส่วนZbrushถ้าใช้ส่วนมากมักจะเอาไว้ทำพื้นผิวที่ขรุขระมากๆ หรือไม่ก็ของที่พังโดนDamaged  เมื่อเสร็จขั้นตอนตัวHighอย่าลืมเช็คเรื่องต่างๆได้แก่
- Faceห้ามเกิน3เหลี่ยม
- NormalของFaceหันหน้าถูกด้านหรือไม่
- เลือกโมเดลHighทั้งหมดแล้วSoftedge(ของMaya)  หรือเลือกโมเดลHighทั้งหมดแล้วSmoothing Group เป็น1(ของ3Ds Max)

5.ปั้นโมเดลLow
           ในขั้นตอนนี้ ให้เพื่อนๆเอาโมเดลBaseที่เราปั้นไว้แล้วมาใช้ต่อ  โดย
- ลบเส้นEdgeหรือเส้นLoopที่ไม่จำเป็นทิ้งให้หมด  พยายามเก็บโครงสร้างหลักๆไว้ให้เหมือนเดิมมากที่สุด
- ลดจำนวนเหลี่ยมของพวกรูปทรงกระบอกCylinder ให้เหลือ8เหลี่ยม หรือ6เหลี่ยม หรือ5เหลี่ยมถ้าจำเป็น  และถ้าเป็นพวกสายไฟหรือของที่มีขนาดเล็กก็ใช้4เหลี่ยม หรือ3เหลี่ยมก็ได้
- อย่าให้มีFaceเกิน4เหลี่ยม  ส่วนFace 4เหลี่ยมอันไหนที่บิดมากๆ จนเกือบจะเป็นเส้นตรงบ้าง หรือบูมเมอแรงบ้าง  ก็ให้เราตัดเป็น3เหลี่ยมไปเลย  พยายามตรวจดูให้ทั่วโมเดลครับ
- เอาโมเดลHighเข้ามาทาบกับโมเดลLowด้วย  เพื่อเช็ครูปทรงอยู่ตลอด  ขยับจุดและเส้นให้โมเดลLowใกล้เคียงตัวHighมากที่สุด
- พยายามบริหารจำนวนPolygon Tris อยู่ตลอด  สิ่งของที่สำคัญและมีความโค้งกลมจนเห็นเด่นชัด ก็ควรให้โควต้าPolygonมากหน่อย  ส่วนไหนที่ไม่สำคัญก็ลดLowสุดๆได้ตามสบาย

6.จุดPivot
           เช็คตำแหน่งโมเดลและตำแหน่งPivotครับ  โดยจุดPivotจะต้องอยู่ที่จุด0,0,0  จุดPivotนี้จะสำคัญมากสำหรับคนทำEnvironment แต่ละชิ้นตำแหน่งของจุดอาจจะไม่เหมือนกัน
- สิ่งของตั้งพื้นหรือตั้งบนโต๊ะธรรมดา  จุดPivotจะอยู่ตรงกลางฐานข้างล่างสุด
- ชิ้นส่วนกำแพงหรือสิ่งที่ต้องประกอบ  จุดPivotจะอยู่ตรงมุมฐานข้างล่างสุด(จะสะดวกเวลาsnapโมเดลต่อกัน)
- พวกที่ขยับหรือหมุนได้เช่น ลูกบอล จุดPivotจะอยู่ตรงกลางโมเดลเลย

7.Clean upโมเดล
           เมื่อจุดPivot  โอเคแล้ว  ก็ให้เราทำการCleanค่าของโมเดล  (ถ้าของ3Ds Maxก็ให้ไปที่แถบHierarchy กดReset Transform และReset Scale)  จากนั้นก็ให้เช็ค
- faceห้ามเกิน3เหลี่ยม
- faceห้ามflip หมายถึง Normalของfaceจะต้องหันมาด้านหน้า  ห้ามพลิกกลับไปด้านหลัง
- ระวังโมเดลที่จุดรวมกันแล้ว  แต่เส้นยังแยกจากกันเป็น2อยู่
- ระวังFaceซ้อน ที่เกิดจากการCopyโมเดลขึ้นมาอีกตัว แล้วเผลอMergeจุดรวมกัน

8.กางUV
           Face4เหลี่ยมหรือ3เหลี่ยมที่ไม่บิดจะRelaxได้ดีที่สุดไม่เพี้ยน  ดังนั้นให้เราเช็คโมเดลก่อนกางUVด้วย  ว่าFaceทุกส่วนไม่บิดจนเกินไป  อันไหนไม่แน่ใจให้ตัดเส้นเป็น3เหลี่ยมไปเลย  จากนั้นเราก็กางUV  ซึ่งมีหลายวิธี ได้แก่
- กางด้วยโปรแกรมพื้นฐาน เช่น Maya และ3Ds Max
- กางด้วยScript เช่น PolyUnwrapper(3Ds Max)
- กางด้วยโปรแกรมกางUV เช่น Unfold3D
           เท่าที่ผมเคยลอง ถ้าเป็นพวกสิ่งของเหลี่ยมๆโครงสร้างแนวๆHardmodel  ผมจะกางใน3Ds Maxใช้กางแบบAuto  แล้วค่อยมาเย็บขอบUV  จากนั้นค่อยRelax  ส่วนถ้าเป็นโมเดลฟรีฟอร์ม ธรรมชาติ กลมๆโค้งๆมนๆแนวSoftmodel  ผมชอบกางด้วยUnfold3D  มันถนัดดีครับ  แค่ตัดเส้นให้มันแล้วก็คลี่ออกมาได้เลย
[***มีสอนการกางUVด้วยUnfold3DและRoadkillครับ***]

9.ทำSoftedge Hardedge
           ถ้าเป็นของโปรแกรมMayaจะเป็นการSoftedgeหรือHardedge  แต่ถ้าเป็นของโปรแกรม3Ds Maxจะเป็นเรื่องการSmoothing Groupเป็น1ทั้งหมดหรือSmoothing Groupแยกเป็น1 2 3 4 (ไม่ควรแยกเกิน4เลข)  การจะให้มันSoftหรือHardนั้นแล้วแต่เราจะเลือก  ซึ่งจะมีผลสำคัญกับโมเดลLowว่าจะรับแสงแบบไหน  ซึ่งส่วนมากผมจะดูตามUVที่เรากางครับ  คือ
- ส่วนไหนที่UVแยกจากกัน  เราสามารถให้เป็นSoftหรือHardก็ได้
- ส่วนไหนที่UVต่อกัน  เราจะต้องSoftได้อย่างเดียว  ห้ามHardเพราะจะเกิดเส้นขอบเมื่อใส่Normalmap (ยกเว้นเราจะไม่ให้มีNormalmap หรือเทสีค่ากลางในจุดนั้น)
           ตามหลักแล้วถ้าเป็น
- โมเดลCharacter  ส่วนมากจะให้Softทั้งตัวไปเลย
- โมเดลกล่อง4เหลี่ยม  หรือโครงสร้างตึกปูน เหล็ก ที่ขอบคมๆ  ผมจะให้Hard
- โมเดลไหนที่ต้องการPaint Textureต่อเนื่องกัน  UVจะต้องติดกัน  อันนี้ควรSoftดีกว่า
- ส่วนคมของดาบ เป็นHardครับ

10.Bake Texture
11.แก้Bake
12.Paint Texture
13.Link Material
14.Lightmap UV2
15.Collision
16.LOD
17.Export File
18.Importเข้าUnreal
19.Link Material
20.เทสแสงLightmap
21.Printscreen
22.ส่งงาน 
23.Renderงาน

เดี๋ยวจะกลับมาเขียนUpdateต่อเรื่อยๆ จนจบทุกขั้นตอนครับ

2 ความคิดเห็น:

  1. ไม่มีเขียนต่อแล้วหรอครับ

    ตอบลบ
    คำตอบ
    1. ทิ้งไว้นานจนลืมเลย ขอบคุณที่มาทักนะครับ เดี๋ยวจะกลับไปเรียบเรียงเอามาเขียนอัพเดทต่อครับ ไม่เกินสิ้นเดือนพฤศจิกายนนี้

      ลบ