วันจันทร์ที่ 2 กันยายน พ.ศ. 2556

Guide CH3 การสร้างแผนที่และนำไปใส่ในเกมส์

    หลังจากวนอยู่กับ FF VII อยู่นานตอนนี้เริ่มกลับมาเขียนต่อล่ะ การใช้ Nightmare ผมพอแค่นั้นก็แล้วกันที่เหลือลองไปศึกษาเอง(ผมก็ใช้เท่าที่เขียนแระ) เพราะนั่นมันหลักๆแล้ว นอกเหนือจากนี้ไปมันต้องไปรวมกับโปรแกรมอื่นๆด้วย ซึ่งการสร้างแผนที่และนำไปใส่ในเกมส์แบบนี้ก็เป็นการใช้ 3 โปรแกรมและหนึ่งในนั้นคือ Nightmare ด้วย เอาล่ะมาเริ่มกันเลย
   เปิดโปรแกรม Mappy GBA FE ขึ้นมา ถ้าจำไม่ได้มันคืออะไรก็ย้อนไปอ่าน Link นี้
พื้นฐานโปรแกรมต่างๆที่จำเป็น


    หลังจากนั้นคลิก File ----- New Map
2 ช่องแรก ช่อง Pixels wide กับ Pixels high ให้ใส่ 16 ทั้งคู่
2 ช่องด้านล่างคือความกว้างกับความสูงของแผนที่แล้วแต่จะกำหนด ผมใส่ไป 20x20
ด้านล่างติ๊ก Truecolour เหมือนเดิม
จากนั้นกด OK


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


    ต่อมาให้ไปที่ File ----- Import เพื่อนำเข้ากราฟฟิคที่เราจะสร้างแผนที่ (ผมนำเข้าภาค 7) ปกติมันจะอยู๋ใน Mappy GBA FE\FE7 tilesets แล้วลองเลือก 1C1D1E1F (จำไว้ด้วย สำคัญมาก)ทีนี้ตรงช่องด้านขวาก็จะได้กราฟฟิคเข้ามา อาจจะดูยากนิดนึงเพราะมันซ้อนกัน ให้ลองปรับขนาดโปรแกรมแล้วยืดมันออกดูจะทำให้ดูง่ายขึ้น มันจะเรียงกันเป็นระเบียบ แบบนี้


    เอาล่ะทีนี้วาดไปเลย อยากใส่อะไรก็ใส่ไป ภูเขา แม่น้ำ ปราสาท ตามสบาย ตรงช่องที่มันบั๊กเป็นตัวเลขก็ไม่ต้องไปสนใจมัน ผมวาดแบบนี้


    จากนั้นก็ไปที่ File ---- Save As เพื่อเซฟแผนที่ซะ ผมตั้งชื่อว่า TEST ปกติแล้วมันจะเป็นนามสกุล .FMP เพราะฉะนั้นไฟล์แผนที่ของผมคือ TEST.FMP
    หลังจากเซฟแล้วก็ต้องทำการ Export ด้วย เพราะการ Save ธรรมดาก็แค่เอาไว้เปิดแก้ไข เพิ่มเติมในโปรแกรมนี้เท่านั้น ยังไม่สามารถเอาไปใส่ในเกมส์ได้ ถ้าจะเอาไปใส่ในเกมส์ต้องทำการ Export ให้ไปที่ File ----- Export ติ๊กถูกตามลูกศรสีแดงตามรูป จากนั้นกด OK ทีนี้เราก็จะได้ไฟล์นามสกุล .MAR เอาไว้ใส่ในเกมส์แล้ว ส่วนอีกอันเป็นไฟล์รูปภาพไว้ดูเฉยๆ


    ทีนี้เราก็ไม่มีธุระกับโปรแกรมนี้แล้ว ปิดไปได้เลย
ต่อไปเราจะเอาแผนที่ที่เราทำนี้ไปใส่ในเกมส์ โดยโปรแกรมต่อไปที่จำเป็นที่ต้องใช้คือ HxD Hex Editor เอาไว้ใช้ดูตำแหน่งหรือแก้ไขข้อมูลเลขฐาน 16 ในเกมส์ การที่เราจะเอาแผนที่ไปใส่ในเกมส์นั้นเราจำเป็นต้องรู้ตำแหน่งที่จะต้องนำไปใส่ก่อน แล้วจะรุ้ได้ยังไงล่ะว่าต้องเอาไปใส่ในตำแหน่งไหน ? คำตอบคือใส่ตำแหน่งไหนก็ได้ที่มันว่างไม่มีข้อมูลอยู่ในเกมส์ (Free Space) ซึ่งตำแหน่งที่ว่างนี้มันจะแทนด้วย FFFFFF หรือ 000000
    เปิดโปรแกรม HxD ขึ้นมาก่อน จากนั้นเลือก File ---- Open แล้วเลือกเกมส์ Fire Emblem 7 จะได้ดังรูป


    ด้านซ้ายสุดเขาเรียกว่า Offset (ตัวเลขสีน้ำเงิน 8 ตัว) เอาไว้อ้างอิงตำแหน่ง วิธีดูคือดูแถวซ้ายก่อน แล้วตัวขวาสุดค่อยแทนด้วยแถวบน เช่น ตำแหน่ง 00000000 จะมีข้อมูลคือ 2E  ตำแหน่ง 0000001 จะมีข้อมูลคือ 00 ตำแหน่ง 00000003 จะมีข้อมูลคือ EA ตำแหน่ง 0000000A จะมีข้อมูลคือ A2 ตำแหน่ง 00000127 จะมีข้อมูลคือ E3 ถ้าเข้าใจตัวอย่างที่ยกมานี้ก็แสดงว่าดูเป็นแล้ว ใครยังไม่เข้าใจก็ค่อยๆอ่านดูอีกรอบ
    ด้านบนนั้นจะเห็นว่าข้อมูลมันอัดแน่นมาก ไม่มี Free space อยู่เลย ตัวอย่าง Free space จะเป็นแบบนี้
Search ---- Goto...  แล้วพิมพ์ DE9640 กด OK โปรแกรมก็จะพามาตำแหน่งตามภาพ


    พวกนี้คือ Free space หรือพื้นที่ว่าง ไม่มีข้อมูล เราสามารถนำแผนที่หรืออะไรก็ได้ที่เราทำเองสามารถนำมาใส่ในพื้นที่ตรงนี้ได้ แต่ผมไม่แนะนำเท่าไร เพราะบางทีจะสับสน ข้อมูลมันจะไม่เป็นระเบียบต้องคอยย้อนไปย้อนมาหาพื้นที่ว่าง ผมแนะนำให้ใส่ไว้ล่างสุดเลย เพราะยังไงก็เป็นพื้นที่ว่างอยุ่แล้ว ลองเลื่อนลงมาล่างสุดเลยคับจะเห็นตามรูป


    ตำแหน่ง 00FFFFFF จะมีข้อมูลคือ BF (ขวาล่างสุด) นั่นคือข้อมูลตัวสุดท้ายของเกมส์แล้ว หลังจากนี้จะเป็นพื้นที่ว่างทั้งหมด เราสามารถใส่อะไรก็ได้หลังจากนี้ โดยตั้งแต่ตำแหน่ง 01000000 ลงไปจะว่างทั้งหมด (นับเอาเองต่อจาก 00FFFFFF ก็คือ 01000000) ซึ่งผมแนะนำให้ใส่ตรงนี้มากกว่า จะได้เรียบเรียงง่าย ไม่ต้องไปยุ่งกับพื้นที่ด้านบนของเกมส์ด้วย เพื่อหลีกเลี่ยง Error 
    เอาล่ะต่อไปผมจะเอาแผนที่ที่เพิ่งได้มามาใส่ไว้ตรงตำแหน่ง 01000000 ปิดโปรแกรมนี้ไปก่อน จากนั้นให้เปิดโปรแกรม MAR array inserter เพื่อนำแผนที่ที่เราสร้างไปใส่ในเกมส์
ช่อง MAR File ให้เลือกตัวแผนที่ที่ Export จากโปรแกรมก่อนหน้านี้
ROM ใส่ Rom เกมส์ท่ต้องการ (ผมใส่ FE7)
Map size ใส่ขนาดที่กำหนดไว้ตั้งแต่แรกก่อนที่จะเริ่มสร้างแผนที่
Offset ตำแหน่งที่จะใส่ ผมใส่ไปในตำแหน่ง 1000000
จากนั้นกด Run แล้วจะขึ้นกล่องข้อความมาว่า Finshed ก็กดปิดโปรแกรมได้


ทีนี้หลังจากใส่แล้วลองไปเช็คในโปรแกรม HxD ดู ให้เปิด HxD ขึ้นมาแล้วโหลด Rom FE7 ตัวที่เราใส่แผนที่ลงไป แล้วเลื่อนลงมาล่างสุดเลยจะเห็นว่าตำแหน่งล่างสุดต่อจาก 00FFFFFF คือ 1000000 จะมีข้อมูลใหม่ปรากฏขึ้นมา ซึ่งนั่นก็คือข้อมูลแผนที่ที่เราใส่ไปนั่นเอง

    หลังจากดูเสร็จก็ปิดโปรแกรม HxD ไปได้เลย ทีนี้ต่อไปเราจะไปกำหนดค่าใน Nightmare Program ให้มันแสดงแผนที่นี้ออกมาในเกมส์
     เปิด Nightmare Program ขึ้นมาแล้วโหลด Rom FE7 ที่เราใส่แผนที่เข้าไป จากนั้นไปที่ Modules ---- Load Modules แล้วเข้าไปในโฟลเดอร์ตามนี้ GBA Nightmare Modules\GBA Nightmare Modules\FE7 Nightmare Modules\Event Modules เลือก FE7 Event References.nmm 
    พอโหลด FE7 Event References.nmm มาแล้วทีนี้เราจะไปเปลี่ยนตำแหน่งให้แสดงแผนที่ใหม่ที่เราใส่ไป ช่องที่สองให้เลือก Prologue map 
ช่อง Pointer ให้ใส่ 0x9000000 
ตำแหน่งแผนที่ใหม่ของเราคือ 1000000 แต่เวลาใส่ต้องใส่ 0x8 + 1 = 0x9000000
เหตุที่ใส่เป็น 0x9 ก็เพราะต้องเอาตัวเลขหลักที่สองไปบวกกับ 0x8 ทุกครั้ง ก็เลยได้ใส่เป็น 0x9
ตำแหน่งแผนที่เต็มๆคือ 01000000 จะเห็นว่าหลักที่สองมันเป็น 1 ก็เลยเอาไปบวก 8 = 9 เพราะฉะนั้นข้อมูลทั้งหมดที่เราจะใส่ต่อจากนี้ไปเวลาเปลี่ยนก็ต้องเป็น 0x9 ทั้งหมด (ข้อมูลตั้งแต่ 01000000 ขึ้นไป) ส่วนตัวหลังก็ใส่ตามเดิม เช่น ข้อมูลตำแหน่งใหม่คือ 010000044 เวลาใส่ก็ต้องใส่เป็น 0x9000044 เป็นต้น
จากนั้นก็กด Apply Change แล้ว Save Rom 


    ช่องที่สองที่เขียนว่า 0x03-0x04 Prologue Map คือ Event แผนที่ ถ้าเริ่มด่าน Prologue จะโหลดแผนที่ที่ตำแหน่งนี้ทุกครั้ง
    เอาล่ะทีนี้ลองเล่นดู จะเห็นว่าปราสาทหาย พื้นน้ำแปลกๆ ช่องดำๆคืออะไร ? ทั้งๆที่ตอนวาดก็วาดแผนที่ปกติ 

    ที่เป็นแบบนี้ก็เพราะว่า Object และ Palette มันไม่ตรงกัน เลยทำให้แสดงผลผิดพลาด เอาล่ะทีนี้ก็เปิด Nightmare Program อีกรอบ แล้ว Load Modules ChapterDataEditor.nmm 


    สี่ช่องที่ผมขีดแดงไว้พวกนี้จะต้องเปลี่ยนเพื่อให้แผนที่แสดงกราฟฟิคออกมาได้ถูกต้องตามที่เราสร้าง ในตอนเริ่มสร้างแผนที่ตอนกด Import Tileset แล้วผม Import 1C1D1E1F เข้ามา ตัวเลขพวกนี้แระที่เราต้องเปลี่ยนแทนที่อันเก่า ถึงบอกไปตั้งแต่ต้นไงว่าตัวเลขพวกนี้จำเป็นต้องใช้ ต้องจำให้ดีว่าเรา Import อะไรเข้ามา เพราะจำเป็นต้องใช้ปเลี่ยน
    จากตัวอย่าง
Object Set1 ผมใส่ 1C
Object Set1 ผมใส่ 1D
Palette ผมใส่ 1E
Tile Configuration1 ผมใส่ 1F
จะได้ตามรูป Tile Animation คือพวกภาพเคลื่อนไหว เช่น แม่น้ำ ลาวา อะไรพวกนี้


    จากนั้นกด Apply Change แล้ว Save Rom แล้วปิดโปรแกรม เอาล่ะทีนี้ลองเล่นเกมส์ใหม่อีกรอบ จะเห็นว่าปราสาทโผล่มาแล้ว จะได้แผนที่ตรงตามที่เราสร้างไว้ทุกอย่าง


    พอสร้างแผนที่และเอาไปใส่ในเกมส์แล้วคุณไม่ต้องกลัวว่าเราจะเดินทะลุได้ทุกอย่าง เรายังเดินติดกำแพง เดินข้ามน้ำไม่ได้เหมือนเดิม และพวกป้อมหรือหน้าปราสาทก็จะฟื้นฟู HP ได้ตามปกติ ส่วนถ้าสร้างมาแล้วศัตรูหรือฝั่งเรามันดันไปอยุ๋กลางน้ำหรือติดกำแพงก็สามารถใช้ Modules Chapter Unit Editor แก้ไขตำแหน่งเกิดของศัตรูได้ โดยที่ตำแหน่งซ้านบนสุดคือ x=0 , y=0 (นับเริ่มที่ 0) 
    แต่เวลาผมสร้างแผนที่เองแล้วเอาไปใส่ในเกมส์แบบนี้ผมก็ทำ Event เองด้วย เพราะจะได้กำหนดตำแหน่งเกิดของศัตรูและฝ่ายเราได้เลย โดยที่ไม่ต้องไปตามนั่งแก้ทีหลังว่าตัวไหนอยู๋ในน้ำบ้าง เพราะถ้าเราแค่เอาแผนที่ไปใส่เฉยๆแบบนี้ ตำแหน่งศัตรูกับฝ่ายเราจะอ้างอิงจากข้อมูลเดิมของ FE7 บางทีก็ไปเกิดบนน้ำ บนภูเขา ตามแก้กันวุ่นวาย
    ครั้งนี้ขอจบเพียงเท่านี้ก็แล้วกัน ไว้มาต่อกันครั้งหน้า เท่านี้ก็สามารถสร้างแผนที่แล้วเอาไปใส่ในเกมส์กันได้เองแล้ว ถึงจะต้องตามแก้ตำแหน่งเกิดทีหลังก็ตาม


ไม่มีความคิดเห็น:

แสดงความคิดเห็น