← Index
หน้านี้จะอธิบายวิธีการแก้ไขแผนที่ นี่เป็นคู่มือขั้นสูงสำหรับผู้สร้างม็อด
บทนำ
แนวคิดพื้นฐาน
- แผนที่ (map) คือโครงสร้างของภูมิประเทศ (เช่น น้ำ หน้าผา และพื้นดิน) ลักษณะภูมิประเทศ (เช่น พุ่มไม้) สิ่งก่อสร้าง เส้นทาง และทริกเกอร์สำหรับพื้นที่เฉพาะ เมื่อคุณไปถึงขอบของพื้นที่หรือเข้าอาคาร และหน้าจอจะค่อยๆ มืดลงระหว่างการเปลี่ยนฉาก นั่นคือคุณกำลังเคลื่อนที่ระหว่างแผนที่ต่างๆ
- แผนที่แต่ละแผนที่ประกอบด้วย เลเยอร์ (layers) หลายชั้นซ้อนกัน วัตถุในเลเยอร์ที่อยู่ด้านหน้าจะบดบังวัตถุในเลเยอร์ที่อยู่ด้านหลัง จากหลังไปหน้า เลเยอร์มาตรฐานคือ…
ชื่อเลเยอร์ เนื้อหาทั่วไป Back ภูมิประเทศ น้ำ และลักษณะพื้นฐาน (เช่น ทางเดินถาวร) Buildings ตำแหน่งสำหรับสิ่งก่อสร้าง (เช่น บ้านไร่) วัตถุใดๆ ที่วางในเลเยอร์นี้จะทำหน้าที่เหมือนกำแพง เว้นแต่คุณสมบัติของวัตถุจะมี “Passable” “T” Paths พื้นทางเดิน ทางเท้า หญ้า และเศษซาก (เช่น หิน วัชพืช และตอไม้จากแผ่นกระเบื้อง ‘paths’) ที่ผู้เล่นสามารถลบออกได้ Front วัตถุที่ถูกวาดทับสิ่งของที่อยู่ด้านหลัง เช่น ต้นไม้ส่วนใหญ่ วัตถุเหล่านี้จะถูกวาดทับผู้เล่นหากผู้เล่นอยู่ทางทิศเหนือของวัตถุ แต่จะอยู่ด้านหลังผู้เล่นหากผู้เล่นอยู่ทางทิศใต้ AlwaysFront วัตถุที่ถูกวาดทับเลเยอร์อื่นทั้งหมด รวมถึงผู้เล่นด้วย โดยทั่วไปจะใช้สำหรับเอฟเฟกต์เบื้องหน้า เช่น การปกคลุมด้วยใบไม้ - คุณสามารถเพิ่มจำนวนเลเยอร์แผนที่ได้โดยการเติมชื่อเลเยอร์มาตรฐาน (เช่น Back, Buildings, Front, หรือ AlwaysFront) ด้วยค่าออฟเซ็ต ตัวอย่างเช่น Back-1 จะถูกวาดก่อน/ใต้ Back และ Back2 จะถูกวาดหลังจาก/เหนือมัน คุณสามารถเพิ่มตัวเลขเพื่อเพิ่มเลเยอร์ได้อีก
สิ่งนี้มีผลเฉพาะกับการแสดงผลเลเยอร์เท่านั้น เลเยอร์ดั้งเดิมต้องใช้สำหรับคุณสมบัติของวัตถุและการชนกัน (เช่น วัตถุ Buildings ทำหน้าที่เป็นกำแพง) - (ใช้ Tiled) มีเลเยอร์ 2 ประเภทที่แตกต่างกัน นอกเหนือจากเลเยอร์หลัก 5 เลเยอร์ ได้แก่ Objects Layer (ไอคอนรูปเมฆ) และ Tile Layer (ไอคอนตาราง) Tile Layer คือที่ที่คุณทำการแก้ไขแผนที่ (วางและลบวัตถุ) และ Objects Layer คือที่ที่คุณเพิ่มและแก้ไขข้อมูลวัตถุ เลเยอร์ของคุณต้องตรงกับเลเยอร์ด้านบน โปรดทราบว่าขึ้นอยู่กับแผนที่ เลเยอร์ Paths หรือ AlwaysFront อาจหายไป
- แต่ละเลเยอร์ประกอบด้วย วัตถุ (tiles) จำนวนมาก ซึ่งเป็นสี่เหลี่ยมขนาด 16×16 พิกเซลที่วางเป็นตารางเพื่อสร้างแผนที่ที่มองเห็นได้ วัตถุแต่ละชิ้นสามารถมีคุณสมบัติ (เช่น ผ่านได้ / ถูกบล็อก) ตรรกะพิเศษ (เช่น การกระทำที่จะเกิดขึ้นเมื่อผู้เล่นเหยียบมัน) และรูปภาพที่จะแสดง รูปภาพแสดงด้วยดัชนีสไปรท์ (หรือดัชนีวัตถุ) ซึ่งคือตำแหน่งในแผ่นสไปรท์ที่เกี่ยวข้อง (ดูถัดไป)
- แผนที่แต่ละแผนที่มียูนิตสไปรท์ (หรือที่เรียกว่า tilesheets เมื่อพูดถึงม็อด) อย่างน้อยหนึ่งชุด ซึ่งมีวัตถุและรูปภาพที่มีอยู่ซึ่งนำมารวมกันเพื่อสร้างแผนที่ที่มองเห็นได้
พิกัดวัตถุ
วัตถุแต่ละชิ้นมีพิกัด (x, y) ซึ่งแสดงตำแหน่งบนแผนที่ โดยที่ (0, 0) คือวัตถุด้านบนซ้าย ค่า x เพิ่มขึ้นไปทางขวา และ y เพิ่มขึ้นลง ตัวอย่างเช่น:
คุณสามารถใช้ม็อด Debug Mode เพื่อดูพิกัดวัตถุในเกม
รูปแบบแผนที่
มีรูปแบบแผนที่สองแบบที่ใช้ในการสร้างม็อด Stardew Valley: .tmx (จากโปรแกรมแก้ไขแผนที่ Tiled) และ .tbin (จากโปรแกรมแก้ไขแผนที่ tIDE ที่เลิกใช้แล้ว) คุณสมบัติที่รองรับโดยทั้งสองรูปแบบเกือบจะเหมือนกัน แต่มีความแตกต่างเล็กน้อย:
| คุณสมบัติ | .tmx | .tbin |
|---|---|---|
| รูปแบบ | ✓ XML (โดยพื้นฐานคือข้อความ) | ✘ ไบนารี |
| แก้ไขใน Tiled | ✓ รองรับ | ✓ รองรับด้วยปลั๊กอิน |
| แก้ไขโดยตรง | ✓ สามารถเปิดในโปรแกรมแก้ไขข้อความได้ | ✘ ไม่รองรับ |
| การพลิกวัตถุ | ✓ รองรับ | ✘ ไม่รองรับ |
| การหมุนวัตถุ | ✓ รองรับ | ✘ ไม่รองรับ |
| การควบคุมแหล่งที่มา | ✓ การจัดเก็บที่มีประสิทธิภาพ สามารถเปรียบเทียบการเปลี่ยนแปลงได้ | ✘ การจัดเก็บไม่มีประสิทธิภาพ (ต้องคัดลอกไฟล์ทั้งหมดในการ commit แต่ละครั้ง) ไม่สามารถเปรียบเทียบการเปลี่ยนแปลงได้ |
แนะนำให้ใช้ .tmx ตามที่กล่าวไว้ข้างต้น แต่ทั้งสองรูปแบบก็ใช้งานได้ดี และคุณสามารถแปลงระหว่างกันได้ใน Tiled โดยคลิก File > Export As
Tilesets กับ Tilesheets
Tilesheets คือไฟล์ .png ที่ใช้เป็นรูปภาพต้นฉบับ Tilesheets ไม่มีภาพเคลื่อนไหว คุณสมบัติ ภูมิประเทศ หรือสิ่งอื่นใดนอกเหนือจากพิกเซลที่เกี่ยวข้องกับมัน พวกมันเป็นเพียงรูปภาพ Tilesets คือไฟล์ XML ของ Tiled ที่มีข้อมูลทั้งหมดเกี่ยวกับวิธีที่แผนที่ใช้รูปภาพต้นฉบับ ชื่อเหล่านี้สับสนและมักใช้สลับกัน
เริ่มต้นใช้งาน
มีสองวิธีหลักในการแก้ไขแผนที่ และสองวิธีหลักในการนำแผนที่ของคุณเข้าสู่เกม
การใช้ SMAPI
การสร้างม็อด SMAPI ต้องใช้การเขียนโปรแกรม แต่มีประสิทธิภาพมากกว่ามาก และม็อด SMAPI หลายตัวสามารถแก้ไขแผนที่เดียวกันได้ หากคุณต้องการใช้วิธีนี้:
- Create a SMAPI mod
- ดูที่ Making changes with SMAPI ด้านล่าง
ส่วนที่เหลือของคู่มือนี้จะสมมติว่าคุณใช้ Tiled แต่แนวคิดหลายอย่างสามารถนำไปปรับใช้ได้ และคุณสามารถใช้ทั้ง Tiled และ SMAPI (เช่น สร้าง/แก้ไขแผนที่ใน Tiled และโหลด/แก้ไขใน SMAPI)
การใช้ Tiled
Tiled เป็นโปรแกรมแก้ไขแผนที่ยอดนิยมที่สามารถใช้แก้ไขแผนที่ Stardew Valley ได้ โดยไม่ต้องเขียนโปรแกรม คุณต้อง Modding:Editing XNB files แก้ไขแผนที่ และสร้างม็อด Content Patcher หรือ SMAPI เพื่อโหลดแผนที่ของคุณ หากคุณต้องการใช้วิธีนี้:
- ติดตั้ง latest version of Tiled
- ตั้งค่าดังต่อไปนี้:
การตั้งค่า ค่า เหตุผล View > Snapping > Snap to Grid ✓ เปิดใช้งาน จำเป็นสำหรับการแปลงวัตถุกลับเป็นรูปแบบของเกม View > Highlight Current Layer ✓ เปิดใช้งาน ทำให้ชัดเจนขึ้นว่าคุณกำลังแก้ไขวัตถุใด - ดู Modding:Editing XNB files เพื่อขอความช่วยเหลือในการแกะและแพ็คไฟล์แผนที่
- ดูคำแนะนำด้านล่างสำหรับการเปลี่ยนแปลงแผนที่
การนำแผนที่ของคุณเข้าสู่เกม
เมื่อคุณใช้เคล็ดลับในหน้านี้เพื่อสร้างแผนที่ของคุณแล้ว คุณจะต้องทำให้มันปรากฏในเกม คุณสามารถทำได้โดยการแก้ไขตำแหน่งมาตรฐานเพื่อแทนที่/แก้ไขแผนที่ที่มีอยู่ด้วยแผนที่ของคุณเอง หรือโดยการเพิ่มตำแหน่งใหม่ หลังจากโหลดเซฟของคุณ คุณสามารถใช้คำสั่งคอนโซลนี้เพื่อไปยังแผนที่: debug warp YourLocationName
ม็อดส่วนใหญ่จะใช้ Content Patcher เพื่อเพิ่มแผนที่เข้าสู่เกม แต่ก็สามารถทำได้ด้วย C# เช่นกัน
คุณสามารถเพิ่มตำแหน่งใหม่ใน C# ได้ด้วยตนเอง แต่โปรดคำนึงถึงปัจจัยต่างๆ เช่น การคงอยู่ของวัตถุและการหาเส้นทางของ NPC ที่อาจผิดพลาดได้ง่าย หากคุณต้องการทำด้วยตนเองจริงๆ ให้ใช้ เหตุการณ์พิเศษ LoadStageChanged เพื่อเพิ่มตำแหน่งไปยัง Game1.locations ในระหว่างขั้นตอน CreatedInitialLocations และ SaveAddedLocations


