Home / 3D  / การออกแบบ Hex Map ของเกมด้วย Blender กับภาษา Python

การออกแบบ Hex Map ของเกมด้วย Blender กับภาษา Python

สำหรับสาย Level Design นั้นบางครั้งเราจะได้รับโจทย์ของการออกแบบเกม สไตล์ Hex Map มักจะมีความปวดหัวประมาณนึงที่ต้องออกแบบ Mesh 6 เหลี่ยมแล้ว Copy วางเรื่อยๆ ใน Blender จะมีเทคนิคนึงที่จะทำให้ง่ายขึ้น

สำหรับคนที่คิด Hex Map ไม่ออกให้นึกถึงเกมแนว Turn-Based Strategy เก่าๆ อย่าง Heroes 3 หรือ ใหม่หน่อยก็ War Load ดังภาพ:

สำหรับสาย 3D ออกแบบ ที่ใช้ Blender เป็นหลักจะมีเทคนิคนึงคือ ออกแบบ Mesh 6 เหลี่ยม แล้ว Shift D จัดเรียงไปจนครบ Map แต่สำหรับใครที่ต้องการตัวช่วยง่ายๆ เร็วๆ ให้ลองเปิดโหมด scripting ของ blender ที่จะมี Console ให้ใส่ภาษา Python ลงไป:

เปิด Blender ขึ้นมาแล้วก็ปรับโหมดการทำงานเป็น Scripting

เราจะเจอหน้าจอการทำงาน ดังภาพข้างล่าง ประกอบไปด้วยส่วนของ console ให้เราใส่ code ภาษา Python ลงไป

แต่วิธีที่ดีที่สุดคือการสร้างไฟล์ Script นามสกุล .bpy ขึ้นมาโดยการคลิกที่ปุ่ม New จะทำให้เราพิมพ์คำสั่งได้ยาวกว่า และสะดวกกว่าพิมพ์ผ่าน Console:

จะเห็นว่าเราจะสามารถพิมพ์คำสั่งได้ยาวๆ ในส่วนของ Editor ด้านบนซ้ายใหญ่ได้เลย

คำสั่งข้างต้นคือการประกาศ Header ของ Blender Python และ การเรียก Match มาใช้งาน

ส่วนการเลือกวัตถุทุกชิ้น หรือ Mesh ทุกชิ้น (เทียบเท่าการกดปุ่ม Ctrl+A) คือ

และทำการลบทุกวัตถุในฉาก เหมือนกดปุ่ม X เพื่อ delete

เราสามารถเรียกคำสั่งการสร้าง Mesh ขึ้นมาโดยเราจะเลือก cylinder แต่ปรับ Vertices เป็น 6 จากคำสั่งใน Library คือ

โดยการทำงานคือการ รันวน Loop ซ้อน และทำการคำนวณ Cylinder วัตถุ Vertices 6 ชิ้นให้ปรากฏต่อเนื่องกันดังนี้:

Loop แรกจะเป็นการวนสลับฟันปลาให้สร้างงวัตถุ 5 ชิ้นเรียงกัน จากระยะ -5 ไปถึง 5 ส่วน Loop ที่สองคือการวนสลับในร่องฟันปลาในการวนจำนวนเท่ากัน ผ่านสมการ

ผลลัพธ์คือ:

จัดแสงหน่อยก็สวยละ

เสร็จเรียบร้อย!

Comments

POST TAGS:

daydevthailand@gmail.com

<p>อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์<br /> ,ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)</p>

Review overview
NO COMMENTS

Sorry, the comment form is closed at this time.

%d bloggers like this: