More Related Content Similar to โครงงานพัฒนาเกม 8 (20) More from Aungkana Na Na (20) โครงงานพัฒนาเกม 81. "โครงงานประเภทการพัฒนาโปรแกรมประยุกต์ "(Game
Development)
โครงงานพัฒนาโปรแกรมประยุกต์ หรื อ โครงงานพัฒนาเกมโครงงาน
ประเภทนีเป็ นโครงงานพัฒนาซอฟต์แวร์ เกมเพือความรู้ หรื อเพือความ
เพลิดเพลิน เกมทีพัฒนาควรจะเป็ นเกมทีไม่รุนแรง เน้ นการใช้ สมองเพือฝึ กคิด
อย่างมีหลักการ โครงงานประเภทนีจะมีการออกแบบลักษณะและกฎเกณฑ์การ
เล่น เพือให้ น่าสนใจแก่ผ้ เู ล่น พร้ อมทังให้ ความรู้ สอดแทรกไปด้ วย ผู้พฒนาควร
ั
จะได้ ทําการสํารวจและรวบรวมข้ อมูลเกียวกับเกมต่างๆ ทีมีอยู่ทวไป และนํามา
ั
ปรับปรุงหรื อพัฒนาขึนใหม่ เพือให้ เป็ นเกมทีแปลกใหม่ และน่าสนใจแก่ผ้ เู ล่น
กลุมต่างๆ
่
ตัวอย่างโครงงานประเภทพัฒนาโปรแกรมประยุกต์
1. เกมผจญภัยกับพระอภัยมณี
2. เกมอักษรเขาวงกต
3. เกมเลือกตังสมาชิกสภาผู้แทนราษฎร
4. เกมผจญภัยกับภาษาอังกฤษ
5. เกมหมากฮอส
2. โครงงานการพัฒนาเกมคอมพิวเตอร์ 3 มิติ
บทคัดย่อ
ปั จจุบนเกมได้ เข้ ามามีบทบาทต่อสังคมไทยและเยาวชนไทยมากขึน แต่เกมส่วน
ั
ใหญ่ถกสร้ างและออกแบบมาในแนวทางของวัฒนธรรมต่างประเทศ อีกทัง
ู
รูปแบบเกมทีปรากฏให้ เห็นจะเน้ นเรื องการฆ่าฟั นและเอาชนะ ซึงอาจไม่เป็ นผลดี
ต่อวัฒนธรรมและสังคมไทย เนืองจากเกมสามารถเป็ นเครื องมือทีช่วยพัฒนา
ระบบวิธีการคิดวิเคราะห์ สร้ างจินตนาการ หรื อแม้ กระทังขัดเกลาจิตใจ
ปริ ญญานิพนธ์เล่มนีจึงได้ นําเสนอแนวเกมทีมุงเน้ นออกแบบและริ เริ มสร้ างสรรค์
่
เนือหาของเกมให้ ออกมาในรูปแบบ Simulation 3 มิติออนไลน์ที
สนุกสนานและมีความบันเทิง สอดแทรกความรู้ ต่างๆ เพือให้ มีความเหมาะสม
ต่อผู้เล่นทุกคน เกมจะเน้ นความเป็ นธรรมชาติของตัวละครทีสามารถตัดสินใจได้
ด้ วยตนเอง โดยนําความรู้ ทางด้ านปั ญญาประดิษฐ์ (Artificial
Intelligence) มาช่วยในการออกแบบเพือสร้ างตัวละครทีมีชีวิตชีวาและมี
ความใกล้ เคียงกับมนุษย์มากทีสุด จึงได้ รูปแบบเกมทีให้ ผ้ เู ล่นได้ รับทังความ
บันเทิงและได้ รับความรู้ไปพร้ อมๆกัน (Edutainment) ส่งเสริ มให้ ผ้ เู ล่นทํา
ความดี สร้ างมนุษยสัมพันธ์กบผู้เล่นคนอืนและอนุรักษ์ วฒนธรรมไทย
ั ั
นอกจากนียังเป็ นการส่งเสริ มการพัฒนาเกมไทยให้ มีความก้ าวหน้ าและมี
คุณภาพยิงขึนต่อไป
3. บทที 1 บทนํา
1.1 ความเป็ นมาและความสําคัญของปั ญหา
การพัฒนาเกมให้ มีความน่าสนใจ มีความสนุกสนานนัน แน่นอนสิงหนึงทีขาด
ไม่ได้ ทีจะทําให้ เกมมีชีวิตชีวามากขึน คือ NPC (Non Player
Character) ทีมีความฉลาด สามารถตัดสินใจได้ ด้วยตนเองอย่างเป็ น
ธรรมชาติ ซึงทําให้ ผ้ เู ล่นได้ ร้ ูสกว่า NPC มีชีวิตจริ งๆ ดังนันการพัฒนาต้ อง
ึ
อาศัยความรู้ ทางด้ านปั ญญาประดิษฐ์ (Artificial Intelligence) เป็ น
ทฤษฎีทีทําให้ NPC ทําหน้ าทีต่างๆ ได้ อตโนมัติ โดยกระทําสิงต่างๆอย่างมี
ั
เหตุผลจนบรรลุเปาหมายทีกําหนดไว้ โดยผู้จดทําโครงงานใช้ ทฤษฎีตรรกศาสตร์
้ ั
คลุมเครื อ (Fuzzy Logic) และ Finite State Machine ในการ
ออกแบบ NPC
ทังนีการเล่นเกมเพือความสนุกสนาน แล้ วได้ รับความรู้ไปพร้ อมๆกันนัน
(Edutainment) ย่อมเป็ นสิงทีดีและเหมาะกับยุคสมัยในปั จจุบน ดังนัน ั
ผู้จดทําโครงงานจึงจัดทําโครงงานการพัฒนาเกมคอมพิวเตอร์ 3 มิติทีถูก
ั
พัฒนาขึนเพือความบันเทิง โดยเกมเป็ นแนว Simulation 3 มิติออนไลน์ ที
จําลองรูปแบบชีวิตของสังคมไทยในสมัยก่อน เป็ นเกมแนวน่ารักสดใส เนือหาไม่
รุนแรง เหมาะสมกับผู้เล่นทุกเพศทุกวัย สอดแทรกความรู้ ทางด้ านวิชาการ เสริ ม
ทักษะด้ านคุณธรรม และหลักธรรมทางพระพุทธศาสนา พร้ อมทังนําเสนอ
วัฒนธรรมไทย การละเล่นไทย อีกทังเป็ นเกมออนไลน์ ผู้เล่นจึงสามารถสร้ าง
เพือน มิตรภาพใหม่ๆกับผู้เล่นคนอืนๆ รวมทังทําให้ ผ้ เู ล่นได้ สมผัสประสบการณ์
ั
ของสังคมไทยในอดีต
4. นอกจากนีการพัฒนาโครงงานการพัฒนาเกมคอมพิวเตอร์ 3 มิติ จะช่วยสร้ าง
เสริ มทักษะทังทางด้ านความคิดสร้ างสรรค์ การท างานอย่างเป็ นระบบ การ
วางแผนการทํางาน และเทคโนโลยีทางด้ านคอมพิวเตอร์ แก่ผ้ จดทําโครงงานเป็ น
ูั
อย่างมาก
1.2 วัตถุประสงค์ของโครงงาน
1. 1. เพือศึกษาและออกแบบการสร้ างเกม 3 มิติออนไลน์
2. 2. เพือศึกษาเทคนิคทางด้ านปั ญญาประดิษฐ์ สําหรับการพัฒนาเกม
3. 3. เพือศึกษาการสร้ างเกมออนไลน์ ทําให้ รองรับผู้เล่นได้ จํานวนมาก
4. 4. เพือศึกษาการใช้ งานและออกแบบโมเดล 3 มิติด้วยโปรแกรม 3Ds
Max8
5. 5. เพือศึกษาการเขียนโปรแกรมสร้ างเกมออนไลน์ 3 มิติด้วยภาษาไพ
ธอน (Python)
6. 6. เพือสร้ างเกมทีมีความบันเทิงและความสนุกสนานเหมาะสมกับผู้เล่น
ทุกเพศทุกวัย
1.3 ขอบเขตของการศึกษา
1. 1. NPC มีความฉลาดในการตัดสินใจเรื องต่างๆภายในเกม
2. 2. ผู้เล่นสามารถสร้ างความสัมพันธ์กบ NPC ได้
ั
3. 3. ผู้เล่นสามารถซือ/ขาย อาหาร และเพิมทักษะของตนเองจากการทํา
กิจกรรมต่างๆได้
4. 4. เกมสามารถออนไลน์ โดยผู้เล่นเข้ าใช้ ได้ ครังละหลายคน
1.4 ประโยชน์ทีคาดว่าจะได้ รับ
5. 1. เข้ าใจและสามารถออกแบบสร้ าง NPC ทีมีความฉลาด สามารถตัดสินใจ
ได้ อย่างเป็ นธรรมชาติโดยใช้ เทคนิคปั ญญาประดิษฐ์ ได้
2. เข้ าใจระบบการทําเน็ตเวิร์ค (Network) สําหรับเกมออนไลน์ และ
สามารถสร้ างเกมออนไลน์ทีรองรับผู้เล่นได้ ครังละจํานวนมาก
3. เข้ าใจและสามารถใช้ โปรแกรม 3ds Max8 ในการออกแบบสร้ างโมเดล
ตัวละครและฉากต่างๆได้
4. เข้ าใจและสามารถทําแอนนิเมชัน (Animation) เคลือนไหวตัวละคร 3
มิติได้
5. เข้ าใจภาษาไพธอนและสามารถใช้ Panda3D Engine ในการพัฒนา
เกมได้
6. เข้ าใจและสามารถเขียนโปรแกรมเพือใช้ สําหรับการติดต่อฐานข้ อมูลได้
1.5 ส่วนประกอบของปริ ญญานิพนธ์
ปริ ญญานิพนธ์เล่มนีประกอบไปด้ วยเนือหา 5 บท ดังนี
บทที 1 กล่าวถึงความเป็ นมาและความสําคัญของปั ญหา, วัตถุประสงค์ของ
โครงงาน, ขอบเขตของการศึกษา, ประโยชน์ทีคาดว่าจะได้ รับ, และ
ส่วนประกอบของปริ ญญานิพนธ์เล่มนี
บทที 2 กล่าวถึงทฤษฎีทีเกียวข้ องกับการทําโครงงาน ซึงประกอบไปด้ วย ทฤษฎี
ตรรกศาสตร์ คลุมเครื อ, Finite State Machine, การสร้ างโมเดล 3 มิติ
และการสร้ างแอนนิเมชัน, Client-Server ส าหรับเกมออนไลน์, และ 3D
Engine ทีนํามาใช้ ในการพัฒนาเกม
บทที 3 กล่าวถึงการออกแบบและการพัฒนาเกมส่วนต่างๆของเกม
6. บทที 4 กล่าวถึงผลการทดลอง โมเดลตัวละครผู้เล่น, โมเดลตัวละคร NPC
และการเล่นเกม
บทที 5 กล่าวถึงบทสรุปของโครงงาน ปั ญหาและอุปสรรค, แนวทางในการ
พัฒนาต่อ และข้ อสรุ ปของโครงงาน
บทที 2 ทฤษฎีทีเกียวข้ อง
2.1 ตรรกศาสตร์ คลุมเครื อ (Fuzzy Logic)
2.1.1 ความหมายของตรรกศาสตร์ คลุมเครื อ
ตรรกศาตร์ คลุมเครื อพัฒนาจากทฤษฏีเซตวิภชนัย (Fuzzy set) โดยเป็ นการ
ั
ใช้ เหตุผลแบบประมาณ ซึงแตกต่างจากการใช้ เหตุผลแบบเด็ดขาดในลักษณะ
ถูกผิด, ใช่ไม่ใช่ ของตรรกศาตร์ แบบฉบับ (Classical Logic) ตรรก
ศาตร์ คลมเครื อนันสามารถถือเป็ นการประยุกต์ใช้ งานเซตวิภชนัยเพือจําลองการ
ุ ั
ตัดสินใจของผู้เชียวชาญต่อปั ญหาทีซับซ้ อน
ตรรกศาสตร์ คลุมเครื อนันสามารถระบุความเป็ นสมาชิกของเซต (Set
membership values) ด้ วยค่าระหว่าง 0 และ 1 ทําให้ เกิดระดับกึงใน
ลักษณะของสีเทา นอกจากขาวและดําซึงมีประโยชน์ในการจําลองระดับ ซึง
สามารถระบุด้วยคําพูด “เล็กน้ อย” “ค่อนข้ าง” “มาก” โดยใช้ คาความเป็ น
่
สมาชิกของเซตบางส่วน ตรรกศาสตร์ คลุมเครื อนีมีความสัมพันธ์กบเซตวิภชนัย
ั ั
และทฤษฎีความเป็ นไปได้ (Possibility theory) ซึงคิดค้ นขึนในปี ค.ศ.
1965 โดยศาสตราจารย์ ลอตฟี ซาเดห์ (Lotfi Zadeh) แห่งมหาวิทยาลัย
แคลิฟอร์ เนีย เบิร์กเลย์
2.1.2 หลักการของตรรกศาสตร์ คลุมเครื อ
7. ตรรกศาสตร์ คลุมเครื อต้ องการตัวแปรทีเป็ นตัวเลขมากกว่าเพือการแสดง
ความสําคัญของข้ อผิดพลาดและให้ ความสําคัญเกียวกับอัตราการเปลียนแปลง
ใช้ ได้ ดีในระบบควบคุมหลายๆ ประเภท ขันตอนการดําเนินการของตรรกศาสตร์
คลุมเครื อนันประกอบไปด้ วย 3 ขันตอนดังรูปต่อไปนี
รูปที 2.1 Fuzzy rule-based inference
4vCrisp sets คือ หลักของคณิตศาสตร์ ทีสอนในโรงเรี ยน โดยมีนิยามว่า
“Object แต่ละอันต้ องเป็ นของ set ใด set หนึง หรื ออาจไม่เป็ นอย่าง
แน่นอน” ซึงใช้ ได้ สําหรับหลายๆปั ญหาเพราะหลายๆ object สามารถจัดเข้ า
พวกได้ อย่างถูกต้ อง เช่น เสียมก็ต้องเป็ นเสียม มันไม่มีทางทีบางส่วนจะเป็ น
เสียม บางส่วนจะเป็ นกรรไกรตัดหญ้ า เป็ นต้ น
Crisp sets ถูกใช้ เป็ นประโยชน์ แต่ก็เกิดปั ญหาในหลายครัง เช่น
universe ของ IQ โดยกําหนด set เป็ น Dumb, Average, and
Clever:
Dumb = {70, 71, 72, … 89}
Average = {90, 91, 92, … 109}
Clever = {110, 111, 112, … 129}
แสดงกราฟเส้ นดังรูปที โดย Degree of membership มีค่าเป็ น 0
หรื อ 1
รูปที 2.2 Degree of membership ของ IQ
2.1.2.1 Fuzzification
ขันตอนแรกของกระบวนการทีเรี ยกว่า fuzzification นันเป็ นการแปลง
ข้ อมูลอินพุททีชัดเจนให้ เป็ นข้ อมูลอินพุทแบบฟั ซซี รวมไปถึงการหา Degree
8. of membership ของข้ อมูลทีชัดเจน ในเซตของฟั ซซีทีได้ กําหนดเอาไว้
ตัวอย่างเช่น หากให้ นําหนักของคนๆหนึงในหน่วยปอนด์ เราสามารถหา
degree ได้ วา คนๆนีมีนําหนักตํากว่ามาตรฐาน มีนําหนักเกิน หรื อมีนําหนัก
่
มาตรฐานได้
อินพุททีเข้ ามายังระบบฟั ซซีนันอยู่ในรูปของตัวเลขทีชัดเจน เป็ นเลขจํานวนจริ งที
บอกถึงปริ มาณ ตัวอย่างเช่น คนหนัก 185.3 ปอนด์หรื อ คนสูง 6 ฟุต 1 นิว
เป็ นต้ น ในกระบวนการ fuzzification นันจะทําการเทียบข้ อมูลทีชัดเจนให้
เป็ น Degrees of membership ใน Qualitative fuzzy sets
ตัวอย่างเช่น 185.3 ปอนด์จะถูกเทียบให้ เป็ น “นําหนักค่อนข้ างเกิน”, 6 ฟุต
1 นิว ถูกเทียบให้ เป็ น “สูง” การเทียบนีจะใช้ Membership
functions หรื อเรี ยกอีกชือหนึงว่า Characteristic functions
5 Membership Functions
Membership Functions จะเทียบอินพุตให้ เป็ น Degree of
membership โดยถ้ า Degree of membership มีค่าเป็ น 1 จะ
บอกได้ ว่า อินพุทเป็ นจริ งโดยสินเชิง ถ้ า Degree of membership มี
ค่าเป็ น 0 จะบอกได้ วา อินพุทเป็ นเท็จโดยสินเชิง และถ้ า Degree of
่
membership มีค่าระหว่าง 0 และ 1 จะบอกได้ วา อินพุทเป็ นจริ งใน
่
ระดับหนึง Membership functions จะเทียบให้ ว่าระดับเท่าไหร่
2.1.2.2 Fuzzy Rules
ตัวดําเนินการทางตรรกะของฟั ซซีนันแตกต่างไปจากปกติ โดยตัวดําเนินการ
ต่างๆถูกนิยามเอาไว้ ดงนี ั
Truth (A OR B) = MAX(Truth(A),Truth(B))
9. Truth (A AND B) = MIN(Truth(A),Truth(B))
Truth (NOT A) = 1-Truth(A)
Truth (A) หมายถึง Degree of membership ของ A ในฟั ซซีเซต
เป็ นเลขจํานวนจริ งทีมีค่าอยู่ระหว่าง 0 และ1 ตัวอย่างเช่น สมมุติให้ คนๆหนึง
นําหนักเกินเป็ นดีกรี 0.7, สูงเป็ นดีกรี 0.3 จะได้ เป็ น
นําหนักเกิน AND สูง = MIN (0.7, 0.3) =0.3
น้ าหนักเกิน OR สูง = MAX (0.7, 0.3) =0.7
NOT นําหนักเกิน = 1-0.7 = 0.3
NOT นําหนักเกิน = 1-0.7 = 0.3
NOT สูง = 1-0.3= 0.7
NOT (นําหนักเกิน AND สูง) =1-MIN (0.7, 0.3) =1-0.3=0.7
Rule Evaluation
ในระบบฟั ซซีกฎทุกกฎจะถูกประเมินเพือหา Degree of membership
ของกฎนันๆ ซึงวิธีเลือกเอาท์พทแบบง่ายทีสุดก็คือให้ เลือกเอาท์พทของกฎทีมี
ุ ุ
Degree of membership สูงสุดเป็ นเอาท์พทของฟั ซซีตัวอย่าง
ุ
สมมุติ ระบบฟั ซซีมีกฎอยู่ดงนี
ั
If(in melee range AND uninjured)AND NOT hard
then attack
If(NOT in melee range) AND uninjured then do
nothing
If(NOT out of range AND NOT uninjured)AND( NOT
wimp) then flee
10. เมือค านวณหา Degree of membership ในเซตต่างๆ จากอินพุทที
รับเข้ ามา สมมุติได้ เอาท์พทเป็ น
ุ
Attack ดีกรี 0.2 Do nothing ดีกรี 0.4 Flee ดีกรี 0.7
ดังนัน เอาท์พทจึงเป็ น Flee
ุ
2.1.2.3 Defuzzification
Defuzzification เป็ นกระบวนการหาเอาท์พททีชัดเจนออกมาเป็ นตัวเลข
ุ
ซึงมีหลายเทคนิคทีสามารถน ามาใช้ งาน มีเทคนิคหนึงทีชือ singleton
output membership functions เป็ นเทคนิคทีมีประสิทธิภาพ
เทคนิคหนึง เนืองจากไม่ต้องใช้ การประมวลผลมากนัก โดยการคํานวณโดยใช้
สูตรดังต่อไปนี
เอาท์พท = (2.1)
ุ
โดย คือ Degree of membership, คือค่าเอาท์พททีชัดเจนของแต่ละ
ุ
เอาท์พท ตัวอย่างเช่น
ุ
Flee Do nothing Attack
= -10 =1 =10
เอาท์พท = ุ
ซึงอาจจะใช้ เอาท์พททีได้ เป็ นอัตราเร็ วของการหนี (Flee) เป็ น -2.5
ุ
(อัตราเร็ วการหนีสงสุด -10)
ู
2.2 Finite State Machine
Finite state machine เกิดขึนจาก เซต 2 เซต ได้ แก่
1. 1. เซตของสถานะ (States) ทีแสดงถึงเหตุการณ์ทีเป็ นไปได้ ทีจะ
เกิดขึนทังหมด
11. 2. 2. เซตของการเปลียนแปลง (Transitions) เป็ นเงือนไขทีเชือมต่อ
ระหว่างสถานะ 2 สถานะ ทีติดกัน
โดยสามารถพิจารณาการเปลียนแปลงระหว่างสถานะด้ วย If-Then
Conditionals เพือตรวจสอบเงือนไขหรื อกฎเกณฑ์ทีวางไว้
ข้ อดีของการใช้ Finite State Machine ในการออกแบบโมเดลเกม มี
ดังต่อไปนี
1. Coding ได้ ง่ายและรวดเร็ว
2. สะดวกในการท า Debugging
3. ไม่เปลืองทรัพยากรในการประมวลผล
2.3 การสร้ างโมเดล 3 มิติและการสร้ างแอนนิเมชัน
2.3.1 การออกแบบและกระบวนการสร้ างโมเดลตัวละครภายในเกม
โมเดลตัวละครในงาน 3 มิติ สามารถสร้ างได้ หลายวิธี เช่น สร้ างด้ วยเส้ นเนิร์บ
(Nurb) หรื อ สร้ างจากโพลีกอน (Polygon) แต่วิธีทีเป็ นทีนิยมแพร่ หลาย
มักจะเป็ นวิธีการสร้ างโมเดลแบบการปั นโดยใช้ โครงสร้ างโมเดลแบบโพลีกอน
เหตุผลทีวิธีนีเป็ นทีนิยมเพราะมีวิธีการขึนโมเดลทีง่ายในการสร้ างหรื อแก้ ไข
2.3.1.1 ความละเอียดของโมเดล
สําหรับการปั นโมเดลตัวละครประเภทตัวคนหรื อสัตว์ต่างๆ ด้ วยวิธีดงกล่าวนัน
ั
สามารถแบ่งชนิดย่อยๆ ได้ สองแบบคือ โมเดลแบบความละเอียดตํา (Low
polygon model) และโมเดลแบบความละเอียดสูง (High polygon
model)
- โมเดลแบบความละเอียดตํา
12. เป็ นโมเดลทีใช้ จํานวนโพลีกอนทีไม่มากนัก ข้ อดีของโมเดลแบบนีคือสร้ าง และ
แก้ ไขรายละเอียดเพิมเติมได้ ง่าย ประหยัดเวลาในการเรนเดอร์ (Render)
และเครื องคอมพิวเตอร์ ทํางานไม่หนัก และด้ วยความไม่หนักของโมเดลนีเองที
ทําให้ โมเดลชนิดนีมักจะเหมาะกับงานทีต้ องการความเร็วในการประมวลผลสูงๆ
เช่นโมเดลสําหรับเกมต่างๆ
- โมเดลแบบความละเอียดสูง
เป็ นโมเดลทีมีความละเอียดสูง จึงมีจํานวนโพลีกอนทีใช้ ในการท างานรวมทัง
ขนาดไฟล์ของโมเดลมากขึนตามไปด้ วย และเนืองจากความใหญ่และละเอียด
นีเองทีทําให้ โมเดลแบบนีต้ องใช้ เวลาในการประมวลผลต่างๆมากมาย ส่วนใหญ่
โมเดลแบบนีมักจะถูกใช้ ในงานประเภททีต้ องการความสมจริ งมากๆ เช่น ในงาน
ภาพยนตร์ งานโฆษณา หรื อในการเริ มเรื องทีเป็ นส่วนแอนนิเมชันสวยๆของเกม
ต่างๆ เป็ นต้ น
2.3.1.2 ขันตอนหลักในการขึนรูปโมเดล
ในการปั นโมเดลเราสามารถแบ่งขันตอนหลักๆ ได้ ดงนี ั
- เตรี ยมแบบร่างให้ พร้ อมสําหรับอ้ างอิงตําแหน่งต่างๆ
- ปั นโมเดลไปทีละส่วน เช่น ลําตัว แขน ขา และส่วนหัน แล้ วแต่ตามความถนัด
นําโมเดลทีปั นเรี ยบร้ อยแล้ วมาใส่รายละเอียดพืนผิว ด้ วยการวาดลวดลายที
ต้ องการในโปรแกรมตกแต่งและวาดภาพ
2.3.1.3 การเตรี ยมแบบร่างส่าหรับการขึนโมเดล
เนืองจากการสร้ างโมเดลความละเอียดต่ า จะต้ องใช้ วิธีดง ดัด หรื อย้ ายจุด
ึ
ต่างๆ ไปมากับ Polygon ดังนันในการทํางานจึงควรจะมีแบบร่างของโมเดล
ทีต้ องการสร้ างสําหรับใช้ อ้างอิงการย้ ายตําแหน่งด้ วยเหตุผล 2 ประการคือ
13. - ประการแรกคือสามารถขึนโมเดลได้ ง่าย เพราะการวาดในกระดาษให้
เรี ยบร้ อยจะทําให้ ได้ เห็นหน้ าตาตัวโมเดลก่อน และเมือเห็นหน้ าตาคร่ าวๆ แล้ ว
การปั น
โมเดลก็จะง่ายยิงขึน
- ประการทีสองคือใช้ สําหรับอ้ างอิงตําแหน่งจุดต่างๆ ทีเราจะใช้ อ้างอิงในการปั น
รูปโมเดล
2.3.2 เครื องมือหรื อโปรแกรมทีนิยมใช้ ในการสร้ างภาพ 3 มิติ
โปรแกรมทีนิยมใช้ ในการสร้ างงานโมเดลกราฟฟิ ก 3 มิติขึนมาโดยโปรแกรม
ระดับมืออาชีพทีได้ รับความนิยมในการสร้ างงานโมเดล 3 มิติ มีดงนี ั
2.3.2.1 3Ds Max
โปรแกรม 3D Studio Max นี เป็ นโปรแกรมกราฟฟิ กทีได้ รับความนิยม
มาก พัฒนาโดย Autodesk Media and Entertainment
ปั จจุบนออกถึงเวอร์ ชน 9 เป็ นโปรแกรมทีมีประสิทธิภาพในการสร้ างโมเดลสูง มี
ั ั
ปลักอินทียืดหยุ่น ใช้ งานง่าย และมีอยู่คอนข้ างมากใน
่
แพลตฟอร์ มของวินโดวส์โปรแกรมนีมักจะถูกนําไปใช้ ในการสร้ างวีดีโอเกม งาน
สถาปั ตยกรรมและการออกแบบ รวมไปถึงการทําสเปเชียลเอฟเฟค ใน
ภาพยนตร์ บางเรื อง
- ข้ อดีของโปรแกรม 3Ds Max
3Ds Max มีข้อดีคือใช้ งานง่าย เป็ นทีนิยมใช้ กนอย่างแพร่ หลาย มีข้อมูลและ
ั
สือ ให้ ศกษาจํานวนมาก ในประเทศไทยโปรแกรมนีเป็ นทีนิยม จึงสามารถหา
ึ
ข้ อมูลและสอบถามปั ญหาได้ ง่าย ส่วนความสามารถของตัวโปรแกรมนัน
เพียบพร้ อม ทังในเรื องการขึนโมเดลหรื อการสร้ างแอนนิเมชัน มีเทคนิคให้
14. เลือกใช้ มาก ซึงช่วยอํานวยความสะดวกได้ เป็ นอย่างดี และจุดเด่นทีสําคัญของ
3Ds Max คือแก้ ไขงานได้ ง่ายกว่าโปรแกรมอืน ตัวช่วยปลักอินมีให้ เลือกใช้
A
ปริ มาณมาก เช่น มี Character Studio ช่วยในการสร้ างงาน โปรแกรมนี
เหมาะกับงานหลากหลายระดับ และเหมาะกับการนําไปช่วยในการสร้ างตัว
ละครภายในเกม เพราะทําโมเดลแบบความละเอียดตําได้ ดี มีเกมจํานวนมากที
สร้ างโดยใช้ 3Ds Max ท าแอนนิเมชันได้ ดี และนิยมนําไปสร้ างงานด้ าน
สถาปั ตยกรรม เหมาะกับผู้เริ มต้ นทีต้ องการเป็ นมืออาชีพในอนาคต
- ข้ อเสียของโปรแกรม 3Ds Max
ใช้ ปลักอินเป็ นตัวช่วยทีมากเกินไป เพราะถ้ าต้ องการงานให้ เสร็จฉับไวนัน
A
จําเป็ นต้ องใช้ ปลักอินเป็ นตัวช่วย
A
2.3.2.2 Maya
Maya เป็ นโปรแกรมกราฟฟิ กสร้ างภาพ 3 มิติ เกิดจากบริ ษัท Alias
Systems Corporation แต่ปัจจุบนเป็ นของ Autodesk เดิมเป็ น
ั
ซอฟแวร์ ทีใช้ งานบนเครื อง Silicon Graphics (SGI) ทีใช้
ระบบปฏิบติการ (OS) Irix เท่านันแต่ก็ได้ มีการพอร์ ตมาใช้ กบเครื องพีซีทีใช้
ั ั
ระบบปฏิบติการ Windows NT และ XP และในปั จจุบนสามารถใช้ กบ
ั ั ั
เครื อง Mac ทีใช้ Mac OS X
ได้ อีกด้ วย Maya ทีถูกใช้ อย่างมากในอุตสาหกรรมหนังและ ภาพยนตร์ และมี
การใช้ บ้างในเกมคอมพิวเตอร์
Maya มีจดเด่นในเรื องของความยืดหยุ่นอย่างมากในการทํางาน โดยใช้ การท
ุ
างานแบบ Node-base เป็ นหลัก กล่าวคือฟั งก์ชนการท างานแต่ละแบบจะ
ั
ถูกเก็บเป็ น Node โดยแต่ละ Node จะมีอินพุทและเอาท์พทเราสามารถ ุ
15. เชือม Node เหล่านีเข้ าด้ วยกัน เพือให้ เกิดผลทีแตกต่างกันได้ นบไม่ถ้วน
ั
รวมถึงการใช้ งานสคริ ปท์ทีเรี ยกว่า MEL ซึงใช้ งานได้ ง่ายและมีประสิทธิภาพ
- ข้ อดีของโปรแกรม Maya
เป็ นโปรแกรมทีขึนโมเดลได้ รวดเร็ ว และเป็ นโปรแกรมทีครบครันทางด้ านงาน 3
มิติมากทีสุด ให้ ภาพ แสง และรายละเอียดได้ สมจริ ง มีจดเด่นในเรื องของความ
ุ
ยืดหยุ่นอย่างมากในการทํางาน นิยมนําไปใช้ ในการสร้ างภาพยนตร์ ทํา
ภาพยนตร์ การ์ ตน 3 มิติ
ู
- ข้ อเสียของโปรแกรม Maya
มีกระบวนการทีซับซ้ อนและ ไม่เหมาะกับผู้ทีไม่ชอบการคํานวณ และผู้ทีเพิง
เริ มต้ นกับงานทางด้ าน 3 มิติ และแก้ ไขงานในส่วนของโมเดลแบบความ
ละเอียดตําได้ ยากและซับซ้ อน
2.3.2.3 LightWave
LightWave 3D โปรแกรมทีนักสร้ างภาพ 3 มิติ (3D Animator) ทัว
โลกต่างยอมรับว่า เป็ นโปรแกรมทีสามารถสร้ างโมเดล ได้ ง่าย และรวดเร็ ว อีก
ทังยังเป็ นโปรแกรมทีเรนเดอร์ ภาพได้ สมจริ งทีสุดอีกด้ วย โดย LightWave
3D ได้ รับความนิยมสูง ในงานทีวี (โทรทัศน์) และงานภาพยนตร์ เช่น
Titanic, Star Trek VI ภาพยนตร์ แอนนิเมชัน 3 มิติอย่าง “Jimmy
Nouton” ในไทยเองผลงานทีสร้ างมาจาก LightWave ทีเห็นกันทัวไป
เช่น ตุ๊กตา China Doll, งานโฆษณาฟูจิ ชุด Smile
- ข้ อดีของโปรแกรม LightWave
16. Lightwave มีข้อดีคือเรื องของการขึนโมเดลทีขึนแบบฟรี ฟอร์ มได้ ง่าย แม้ จะ
มีเครื องมือให้ ใช้ น้อยแต่ก็เพียงพอแก่การทํางาน ผู้เริ มใช้ สามารถใช้ เวลาศึกษา
ได้ ไม่นาน ใช้ ทรัพยากรเครื องน้ อยกว่าโปรแกรมอืนมาก กําหนดค่าพารามิเตอร์
ต่างๆ ได้ ง่าย ไม่ย่งยากซับซ้ อน โปรแกรมนีก็เหมาะสําหรับผู้เริ มต้ นใหม่เพราะ
ุ
ง่ายและรวดเร็วในการศึกษา คําสังและเครื องมือต่างๆ มีไม่มาก แต่ก็สามารถ
สร้ างงานระดับมืออาชีพได้
- ข้ อเสียของโปรแกรม LightWave
การทําแอนนิเมชันของ LightWave ยังมีประสิทธิภาพทีด้ อยกว่าโปรแกรม
สร้ างภาพ 3 มิติรายอืนๆ เช่น การสร้ างกระดูกคนเพือนําไปสร้ างเป็ นตัวละคร
ของโมเดลยังทําได้ ไม่ดีพอ
2.3.3 โปรแกรมทีเลือกใช้ ในการสร้ างโมเดล 3 มิติในเกม
จากการสํารวจและรวบรวมข้ อมูล พบว่าโปรแกรมสร้ างภาพ 3 มิติแต่ละ
โปรแกรม มีทงข้ อดีและข้ อเสียแตกต่างกันออกไป ขึนอยู่กบผู้ใช้ จะเลือก
ั ั
โปรแกรมตัวไหนมาใช้ ให้ เหมาะสมกับงานประเภทนันๆ ซึงในการสร้ างเกม 3
มิติ จําเป็ นต้ องเลือกใช้ เครื องมือสร้ างภาพ 3 มิติ มาสร้ างตัวละคร, ฉาก และ
อุปกรณ์ต่างๆภายในเกม ดังนันจึงต้ องเลือกใช้ เครื องมือทีสร้ างโมเดลได้ ดี
โดยเฉพาะ การสร้ างโมเดลทีเป็ นแบบความละเอียดตํา คือโมเดลทีมีความ
ละเอียดของจํานวนโพลีกอนน้ อย เหมาะสมกับการนําไปประกอบภายในเกม
เพราะถ้ าความละเอียดสูงจะทําให้ การเรนเดอร์ ภาพออกมาทําได้ ช้า เกมเกิด
อาการกระตุก โปรแกรม 3Ds Max จึงเหมาะสมทีสุดในการทํางาน เพราะ
ทํางานกับโมเดลแบบความละเอียดตําได้ ดีทีสุด สนับสนุนไฟล์ 3 มิติได้
17. หลากหลาย มีแหล่งทรัพยากร เช่น ค้ นหาโมเดลต่างๆทีสร้ างจาก 3Ds Max
ได้ ง่าย และทีสําคัญเป็ นทีนิยมในการสร้ างกราฟฟิ ก 3 มิติภายในเกม
2.3.4 การใช้ งานโปรแกรม 3Ds Max ในการสร้ างโมเดลและแอนนิเมชัน
การใช้ โปรแกรม 3Ds Max สําหรับสร้ างโมเดลตัวละครและฉากต่างๆ
ภายในเกม รวมทังการสร้ างแอนนิเมชันให้ แก่ตวละคร มีกระบวนการพืนฐาน
ั
ต่างๆ ทีควรทราบดังนี
2.3.4.1 กระบวนการพืนฐานทีสําคัญในการสร้ างโมเดล
1) การย้ ายตําแหน่งของจุด (Vertex translation) ตามแนวแกน x, y
และ z ซึงใช้ สําหรับการปรับแต่งรูปร่างของโมเดลให้ ได้ รูปร่ างทีต้ องการ
2) การสร้ างเส้ นขอบบนโมเดล (Edge Creation) เพือเพิมรายละเอียด
โมเดล โดยส่วนใหญ่จะใช้ การสร้ างเส้ นระหว่างจุด 2 จุด
3) การหมุนโมเดลรอบแนวแกน x, y และ z ใช้ ในการเปลียนระนาบของวัตถุ
(Rotation)
4) การย่อและขยายโมเดล เป็ นการปรับขนาดของโมเดล สามารเลือกได้ ว่าจะ
ย่อขยายตามแนวแกนใด (Scaling)
5) การดึงหรื อผลักพืนผิวของโมเดลเพือสร้ าง Polygon ใหม่เพิมขึนมา หรื อ
ทําให้ เกิดช่องบนโมเดล (Extrude)
6) การแตกจุด (Break) และการเชือมจุด (Weld) บนโมเดล
7) การใส่รูปภาพพืนผิวให้ กบโมเดล (Texture mapping) ซึง
ั
กระบวนการนีใช้ สําหรับตกแต่งรายละเอียดพืนผิวของโมเดล
2.3.4.2 ส่วนประกอบหลักส่าหรับกระบวนการท่าแอนนิเมชัน
18. 1) กระดูก (Bone) เป็ นสิงทีใช้ ควบคุมพืนผิวของโมเดลให้ เคลือนไหวตาม
การเคลือนทีของกระดูกซึงเราสามารถกําหนดอาณาเขตการควบคุมพืนผิวโมเดล
ของกระดูกแต่ละชินได้
2) จุดศูนย์รวมจําลอง (Dummy) เป็ นจุดศูนย์กลางของกระดูกทังหมด ซึง
ถ้ าเราเลือนตําแหน่งของจุดศูนย์รวมจําลอง โมเดลทีถูกกระดูกควบคุมอยู่จะ
เลือนตามด้ วย
3) ส่วนเชือมต่อไอเค (IK Chain) เป็ นวัตถุทีใช้ กบกระดูกส่วนทีเป็ นข้ อพับ
ั
รูปที 2.27 การใช้ ส่วนเชือมต่อไอเค
4) คีย์เฟรม (Key frame) เป็ นการสร้ างแอนนิเมชันให้ ตวละครโดยการ
ั
กําหนดคีย์เฟรม ซึงใน 3Ds Max จะมีการสร้ างแอนนิเมชันระหว่างคีย์เฟรมที
กําหนดไว้ ให้ โดยอัตโนมัติ
2.4 Client-Server ส่าหรับเกมออนไลน์
2.4.1 เทคนิคและวิธีการของเกมเน็ตเวิร์ค
ในการเขียนเกมแบบ Multiplayer ทีสามารถเล่นผ่านระบบเครื อข่ายได้ มี
อยู่หลายรูปแบบ และหลายวิธีการเชือมต่อ ตัวอย่างของเกมทีเล่นผ่านเน็ตเวิร์ค
ได้ มีหลายเกมด้ วย เช่น RedAlert, Age of Empire, Warcraft
และเกมอืนๆ อีกหลายเกมทีไม่ได้ กล่าวถึงก็มีความสามารถด้ านเน็ตเวิร์คด้ วย
เช่นกัน
แหล่งอ้างอิง https://sites.google.com/site/adbandon/ng- ! -thekhnoloyi-sarsnthes-%/&-tawxyang-hawkhx-
khorng-ngan-khxmphiwtexr