FiveM YBN คืออะไร ใช้ทำ Collision อย่างไร และแก้ปัญหาเดินทะลุหรือตกพื้น
ถ้า FiveM Custom Map หรือ MLO มองเห็นอาคารครบ แต่ผู้เล่นเดินทะลุกำแพง ตกพื้น รถทะลุสิ่งปลูกสร้าง หรือชนกำแพงที่มองไม่เห็น หนึ่งใน Asset สำคัญที่ต้องตรวจคือไฟล์ .ybn
YBN เกี่ยวข้องกับ World Collision ของ GTA V/FiveM โดย Cfx.re มีขั้นตอนอย่างเป็นทางการสำหรับเลือก Collision ใน CodeWalker, หา Filename .ybn, Export เป็น XML, แก้ใน Blender/Sollumz และ Export กลับออกมาเป็น .ybn โดยตรง นอกจากนี้ยังมี Collision อีกประเภทที่สามารถฝังอยู่ใน Drawable หรือ Embedded Model Collision ได้ด้วย
บทความนี้จาก comsiam จะอธิบายว่า FiveM YBN คืออะไร แตกต่างจาก YDR, YTD, YTYP และ YMAP อย่างไร รวมถึงวิธีวิเคราะห์ปัญหาเดินทะลุ ตกพื้น Invisible Wall และ Collision Conflict แบบเป็นขั้นตอน
FiveM YBN คืออะไร
YBN คือไฟล์ที่ใช้กับ World Collision Data ของ GTA V/FiveM
เข้าใจง่าย ๆ ว่า Collision เป็นสิ่งที่กำหนดว่า
ผู้เล่นเดินตรงไหนได้
รถชนอะไร
พื้นรองรับผู้เล่นตรงไหน
กำแพงขวางอยู่ตรงไหน
Cfx.re ระบุขั้นตอนแก้ World Collision โดยให้เลือก Collision ใน CodeWalker แล้ว Copy ชื่อไฟล์ .ybn ก่อน Export และแก้ไข Asset นั้นใน Blender
① YBN ไม่ใช่ตัว Model
นี่เป็นจุดที่ต้องแยกให้ออก
YDR
เกี่ยวข้องกับ Model/Drawable ที่ผู้เล่นมองเห็น
YBN
เกี่ยวข้องกับ Collision
ดังนั้นสามารถเกิดเหตุการณ์
YDR ปกติ
+
YBN หาย
=
เห็นอาคาร แต่เดินทะลุ
หรือกลับกัน
YBN ยังอยู่
+
Visual Model หาย
=
ชนกำแพงล่องหน
Cfx.re แยก World Collision Editing และ Embedded Model Collision ออกจาก Visual Map Placement อย่างชัดเจนใน Asset Workflow
② YBN ต่างจาก YMAP อย่างไร
YMAP
ใช้จัดวาง Entities และตำแหน่งของ Assets ในโลก
YBN
เป็น Collision Data
Official Map Workflow ของ Cfx.re ใช้ YMAP สำหรับเพิ่ม Entity, เปลี่ยน Archetype และ Transform ตำแหน่ง Object ส่วน Collision มี Workflow แยกสำหรับ .ybn
ดังนั้นถ้าอาคารอยู่ผิดตำแหน่ง ให้ตรวจ YMAP ก่อน
แต่ถ้าอาคารอยู่ถูกตำแหน่งแล้วเดินทะลุ ให้ตรวจ Collision
③ YBN ต่างจาก YTYP อย่างไร
YTYP
เกี่ยวข้องกับ Archetype Definition
YBN
เกี่ยวข้องกับ Collision
YTYP ช่วยให้ Custom Asset ถูกนิยามและนำไปใช้งานใน Map ส่วน Collision กำหนดพื้นผิวที่ Entity/ผู้เล่นสามารถชนได้
ดังนั้นถ้า Custom Object หายทั้งชิ้น อย่าเริ่มด้วย YBN
ให้ตรวจ
YDR
YTYP
YMAP
ก่อน แล้วค่อยตรวจ YBN เมื่อ Visual Asset แสดงแต่การชนผิด
④ YBN ต่างจาก YTD อย่างไร
YTD
Texture
YBN
Collision
อาการสองแบบต่างกันชัดเจน
ผนังขาว
แต่ชนได้
→ Texture/YTD
กับ
ผนังสวยครบ
แต่เดินทะลุ
→ Collision/YBN
การแยกสองอาการนี้ได้จะช่วยลดเวลาการ Debug อย่างมาก
⑤ YBN ใช้กับอะไรบ้าง
YBN สามารถเกี่ยวข้องกับ World Collision ของสิ่งต่าง ๆ เช่น
พื้น
ถนน
กำแพง
อาคาร
Map Terrain
สิ่งปลูกสร้าง
Custom Map
พื้นที่ MLO บางส่วน
World Geometry
Cfx.re Documentation ให้ CodeWalker เปลี่ยน Selection จาก Entity เป็น Collision เพื่อค้นหา Collision ใน World โดยตรง ก่อน Copy Filename .ybn
⑥ World Collision คืออะไร
World Collision คือ Collision ที่สัมพันธ์กับพื้นที่ของโลก มากกว่าจะเป็น Collision ที่ฝังอยู่กับ Drawable Object หนึ่งตัว
ตัวอย่างเช่น
พื้นถนน
พื้นอาคาร
กำแพงใหญ่
Landscape
World Geometry
ใน Official Workflow ผู้สร้างสามารถเลือก World Collision ใน CodeWalker แล้ว Export .ybn เพื่อแก้ไขได้
⑦ Embedded Collision คืออะไร
FiveM/GTA V Asset Workflow ยังรองรับ Embedded Model Collision
Cfx.re ระบุให้เลือก Drawable แล้วไปที่
Collisions
→ Create Bounds
→ Create Bound
จากนั้นเปลี่ยน Bound เป็น Bound GeometryBVH และเพิ่ม Collision Mesh หรือ Primitive Shapes เข้าไปภายในโครงสร้าง Drawable
ดังนั้น Asset ไม่ได้จำเป็นต้องมี YBN แยกทุกชิ้นเสมอไป
⑧ YBN กับ Embedded Collision ต่างกันอย่างไร
จำแบบง่ายได้ว่า
YBN
เป็น World Collision Asset แยก
Embedded Collision
Collision อยู่ร่วมกับ Drawable Asset Structure
Cfx.re Documentation แยกทั้งสองหัวข้อเป็น Editing World Collisions และ Embedded Model Collisions โดยตรง
ดังนั้นเวลา Debug ต้องรู้ก่อนว่า Asset ต้นฉบับใช้ Collision แบบไหน
⑨ Props ทุกตัวต้องมี YBN ไหม
ไม่
Props จำนวนหนึ่งสามารถใช้ Embedded Collision ภายใน Drawable
Cfx.re World Editor ยังระบุว่าการ Patch Existing Objects ใน World Editor ปัจจุบันจำกัดกับ Objects ที่มี Embedded Collisions เพราะ Collision ของอาคารบางประเภทเป็นส่วนหนึ่งของ Global Collision Mesh
จึงไม่ควรมองว่า
1 Object
=
1 YBN
เสมอไป
⑩ อาคารใหญ่สามารถใช้ World Collision ได้ไหม
ได้ และนี่เป็นจุดสำคัญมาก
Cfx.re World Editor ระบุว่าการย้ายอาคารบางประเภทมีข้อจำกัด เพราะ Collision เป็นส่วนหนึ่งของ Global Collision Mesh และ World Editor ยังไม่สามารถแก้ Global Collision นั้นผ่าน Patch Workflow ปัจจุบันได้
ดังนั้นการย้าย Visual Building อย่างเดียวอาจทำให้ Model กับ Collision ไม่อยู่ตำแหน่งเดียวกัน
⑪ ทำไมย้ายอาคารแล้วมีกำแพงล่องหนอยู่ที่เดิม
ตัวอย่าง
Visual Building เดิม
↓
ย้ายไปตำแหน่งใหม่
แต่ World Collision
↓
ยังอยู่ตำแหน่งเดิม
ผลคือพื้นที่เก่าอาจยังมี Invisible Collision
ขณะเดียวกันอาคารใหม่อาจเดินทะลุได้
ข้อจำกัดนี้สอดคล้องกับที่ Cfx.re ระบุว่า Buildings บางชนิดใช้ Collision ใน Global Collision Mesh ไม่ใช่ Embedded Collision ที่ย้ายตาม Object ได้ง่าย ๆ
⑫ เดินทะลุกำแพงเกิดจากอะไร
สาเหตุที่ควรตรวจ เช่น
YBN หาย
Embedded Collision หาย
Collision Mesh ไม่ครอบกำแพง
Collision ถูก Export ผิด
Collision Position ไม่ตรง Visual
Collision Asset ถูก Replace หลัง Merge
Resource Stream Asset ไม่ครบ
Map อื่น Override/Conflict
อย่าแก้ Texture เมื่อปัญหาคือผู้เล่นเดินทะลุ
⑬ ตกพื้นใน MLO เกิดจากอะไร
ถ้า
มองเห็น Floor
+
Texture ปกติ
+
เดินแล้วตก
ให้เน้นตรวจ Collision
อาจเป็น World Collision หรือ Embedded Collision ตามโครงสร้าง Asset
Official Cfx.re Collision Workflow แสดงทั้งการแก้ .ybn และสร้าง Embedded Bounds โดยตรง
⑭ รถทะลุกำแพงแต่คนเดินชนได้ เกิดจากอะไร
อาการนี้ซับซ้อนกว่าการไม่มี Collision ทั้งหมด และควรตรวจ
Collision Material
Collision Flags
Bound Type
Asset Setup
Cfx.re ระบุว่า Collision Objects ต้องมี Sollumz Type ที่ถูกต้อง และมี Collision Material ที่เหมาะสม รวมถึงต้อง Parent ไปยัง Bound GeometryBVH ที่มี Flags ถูกต้อง
ดังนั้น Collision “มีอยู่” ไม่ได้หมายความว่าจะตั้งค่าถูกทุกอย่าง
⑮ Collision Material คืออะไร
Collision Mesh ไม่ได้มีเพียง Geometry
Official Workflow ของ Cfx.re ระบุว่าหากเพิ่ม Collision Object ใหม่ ต้องสร้าง Collision Material ให้แต่ละ Mesh และกำหนด Sollumz Type ให้ถูกต้อง
Material ช่วยกำหนดลักษณะ Collision Surface ตาม Asset Pipeline
จึงไม่ควรสร้าง Mesh แล้ว Export โดยไม่กำหนด Collision Material
⑯ Bound คืออะไร
Bound คือโครงสร้าง Collision ของ GTA V Asset
ใน Embedded Collision Workflow Cfx.re ให้สร้าง Bound Composite จาก Drawable ก่อน จากนั้นเปลี่ยนเป็น Bound GeometryBVH และสร้าง Bounds ภายใน
เข้าใจแบบง่ายคือเป็นโครงสร้างที่ใช้จัด Collision Geometry ของ Asset
⑰ Bound Composite คืออะไร
ใน Workflow ของ Cfx.re เมื่อเลือก Drawable แล้วใช้ Create Bounds ระบบจะสร้าง Bound Composite ขึ้นมาเป็นขั้นตอนแรก ก่อนที่ผู้สร้างจะเปลี่ยนเป็น Bound GeometryBVH ตามขั้นตอนของ Tutorial
ผู้เริ่มต้นไม่ควร Rename หรือย้ายโครงสร้าง Bounds แบบสุ่มหากยังไม่เข้าใจ Hierarchy
⑱ Bound GeometryBVH คืออะไร
ใน Official Workflow ผู้สร้างต้องเปลี่ยน Bound Composite เป็น
Bound GeometryBVH
แล้วสร้าง Collision Mesh หรือ Basic Primitive Shapes ภายใต้ BVH นั้น
นี่เป็นส่วนหนึ่งของโครงสร้าง Collision ที่ Sollumz ใช้สำหรับ Asset Pipeline
⑲ Bound Poly Mesh คืออะไร
Cfx.re ระบุว่า Collision Geometry ประเภท Mesh ต้องตั้ง Sollumz Type เป็น
Bound Poly Mesh
ขณะที่ Collision แบบกล่องใช้ Bound Poly Box
ดังนั้นต้องเลือก Type ตามรูปทรง Collision ที่กำลังสร้าง
⑳ Bound Poly Box คืออะไร
เป็น Primitive Collision แบบ Box
Official World Collision Workflow ระบุว่า Object Collision ใหม่แบบกล่องควรตั้ง Sollumz Type เป็น
Bound Poly Box
และ Parent ไปยัง Bound GeometryBVH ที่ถูกต้อง
เหมาะกับพื้นที่ที่ไม่จำเป็นต้องมี Collision Geometry ซับซ้อน
㉑ Collision จำเป็นต้องละเอียดเท่า Visual Model ไหม
ไม่จำเป็น
สำหรับหลาย Asset การใช้ Collision Geometry ที่ง่ายกว่าตัว Model ช่วยให้ Collision Structure ไม่ซับซ้อนเกินความจำเป็น
Official Embedded Collision Workflow รองรับทั้ง
Collision Mesh
และ
Basic Primitive Shapes
เช่น Box ภายใต้ BVH
ดังนั้นไม่จำเป็นต้อง Copy Visual Geometry ทุก Polygon มาทำ Collision เสมอ
㉒ ใช้ Visual Model เป็น Collision ทั้งหมดดีไหม
ไม่ควรทำเป็น Default
Visual Model อาจมีรายละเอียด เช่น
รอยขอบเล็ก
Decoration
Bolt
เส้นตกแต่ง
Geometry ภายใน
ซึ่งผู้เล่นไม่ต้องชนทุกจุด
Collision ควรให้ Gameplay ถูกต้องโดยใช้โครงสร้างที่เหมาะสม และ Official Workflow เปิดให้ใช้ Primitive Collision สำหรับพื้นที่ที่ไม่จำเป็นต้องซับซ้อน
㉓ Collision ซับซ้อนเกินไปมีผลไหม
Collision Geometry ที่ซับซ้อนโดยไม่จำเป็นทำให้ Asset Structure หนักขึ้นและดูแลยากขึ้น
แนวทางที่เหมาะกว่าคือใช้
Box
Simple Mesh
Primitive Shapes
สำหรับพื้นที่ที่สามารถ Approximate ได้
และเก็บ Collision Detail เฉพาะตำแหน่งที่ Gameplay ต้องการความแม่นยำ
㉔ บันไดต้อง Collision ละเอียดทุกขั้นไหม
ขึ้นอยู่กับ Gameplay และ Asset Design
ในบางกรณีการทำ Collision ให้เรียบกว่า Visual Steps อาจให้การเคลื่อนไหวที่ลื่นกว่า
แต่ถ้าต้องการให้ Character/Vehicle สัมผัสแต่ละขั้นจริง อาจต้องละเอียดขึ้น
ไม่มีสูตรเดียวสำหรับทุก Asset
สิ่งสำคัญคือ Collision ต้องสอดคล้องกับประสบการณ์ที่ต้องการ
㉕ โต๊ะหรือ Counter ต้องมี Collision แบบไหน
ถ้าเป็น Surface ที่ผู้เล่นต้องชนหรือวางตัวได้ อาจใช้ Geometry ที่ครอบรูปทรงหลัก
ไม่จำเป็นต้องทำ Collision ให้ตรงกับ Decoration เล็กทุกส่วน
เช่นโต๊ะหนึ่งตัวอาจต้องการเพียง
Top
+
Leg Area
ในรูปแบบ Simplified Collision ตาม Design
㉖ ต้นไม้ต้องมี Collision ทุกกิ่งไหม
โดยทั่วไปไม่จำเป็น
ผู้เล่นต้องชนกับลำต้นหลักมากกว่ากิ่งเล็กทุกกิ่ง
นี่เป็นตัวอย่างว่าทำไม Primitive หรือ Simplified Collision มีประโยชน์
㉗ Invisible Wall คืออะไร
Invisible Wall คือกรณีที่ผู้เล่น
เดิน
↓
ชนบางอย่าง
↓
แต่ไม่มี Model ให้เห็น
สาเหตุอาจเป็น
Collision เก่ายังอยู่
Visual Asset ถูกลบ
Map Resource ซ้อน
YBN ตำแหน่งผิด
Model ไม่ถูก Stream
Collision จาก Vanilla Map ยังอยู่
ต้องแยกว่า Invisible Collision มาจาก Custom Resource หรือ World เดิมก่อน
㉘ วิธีหา Invisible Wall
เริ่มจาก
ปิด Map Resource ใหม่
ทดสอบตำแหน่งเดิม
ถ้า Collision หาย → อยู่ใน Resource ใหม่
ถ้ายังชน → อาจมาจาก Vanilla/Resource อื่น
เปิด Maps ทีละ Resource
วิธี Isolation ช่วยแยก Conflict ได้เร็วกว่าการแก้ YBN หลายไฟล์พร้อมกัน
㉙ Collision ซ้อนกันมีปัญหาไหม
ได้
ถ้า MLO/Map สองตัวมี Collision อยู่ในพื้นที่เดียวกัน อาจเกิด
เดินติด
รถเด้ง
Invisible Wall
Collision ไม่ตรงพื้น
ขึ้นบันไดไม่ได้
ดังนั้น Map Conflict ไม่ได้มีเพียง Geometry หรือ Texture ซ้อน แต่ Collision ก็สามารถ Conflict ได้
㉚ MLO สองตัวตำแหน่งเดียวกันควรทำอย่างไร
อย่าเปิดพร้อมกันหากทั้งสองแทน Interior/Building จุดเดียวกัน เว้นแต่ Developer ระบุว่า Compatible
ทดสอบ
MLO A ON
MLO B OFF
จากนั้น
MLO A OFF
MLO B ON
ถ้าทั้งคู่ปกติแยกกัน แต่เสียเมื่อเปิดพร้อมกัน แสดงว่าควรตรวจ Map/Collision Conflict
㉛ YBN อยู่ผิดตำแหน่งเกิดได้ไหม
ได้หาก Collision ถูกแก้หรือ Export ด้วย Transform/World Coordinates ผิด
Official Cfx.re World Collision Workflow ระบุว่าเมื่อต้องเพิ่ม Collision Objects ใหม่ ต้องวาง Object ใน World Coordinates ก่อน Export .ybn
ดังนั้น Position/Transform เป็นเรื่องสำคัญมากสำหรับ World Collision
㉜ World Coordinates สำคัญอย่างไร
สำหรับ World Collision YBN ตำแหน่ง Collision ต้องสัมพันธ์กับพื้นที่ใน World
ถ้า Collision Geometry ถูกย้าย Origin หรือ Transform ผิด
Visual Map อาจอยู่
X = จุด A
แต่ Collision อยู่
X = จุด B
ทำให้เกิดทั้ง
เดินทะลุจุด A
Invisible Wall จุด B
ได้พร้อมกัน
㉝ YBN Export ผิด Scale มีอาการอย่างไร
ถ้า Scale ของ Collision ไม่ตรงกับ Visual Model อาจเกิด
ชนก่อนถึงกำแพง
เดินเข้าไปในกำแพงบางส่วน
Collision ใหญ่กว่าตึก
Collision เล็กกว่าตึก
พื้นบางจุดไม่มี Collision
ควรเทียบ Collision Overlay กับ Visual Asset ใน Editor ก่อน Export
㉞ Collision Rotation ผิดมีอาการอย่างไร
ตัว Model อาจหันถูก แต่ Collision หมุนไปอีกทิศ
ตัวอย่างประตูหรือกำแพง
Visual = แนวเหนือ-ใต้
Collision = แนวตะวันออก-ตะวันตก
ทำให้ผู้เล่นชนพื้นที่ที่ดูเหมือนไม่มีอะไร
ดังนั้น Transform ของ Collision ต้องสัมพันธ์กับ Visual
㉟ Door Collision ต้องระวังเป็นพิเศษ
Dynamic Door มีทั้ง Model, Bone/Armature และ Collision ที่ต้องสัมพันธ์กัน
Cfx.re Door Creation Guide ระบุว่าหากแก้ Collision Scale หรือ Transform ต้องสร้าง Bound Composite ใหม่และ Parent Collision เข้าไป มิฉะนั้น Collision Behavior อาจเสียในเกม
ดังนั้นประตู Visual หมุนถูกไม่ได้รับประกันว่า Collision จะหมุนถูกตาม
㊱ ประตูเปิด แต่ชน Collision เดิมอยู่
นี่เป็นอาการคลาสสิกของ Door Collision ที่ไม่สัมพันธ์กับ Door Transform
ตรวจ
Embedded Bounds
Bound Composite
Collision Parent
Armature
Door Setup
Cfx.re เตือนโดยตรงว่าหลังแก้ Collision Scale/Transforms หากข้ามขั้นตอนสร้าง Bound Composite ใหม่ Collision Behavior สามารถพังในเกมได้
㊲ รถติดทางเข้า Garage ทั้งที่ประตูเปิด
ถ้าประตูเปิดแล้วแต่รถยังชน ให้ตรวจ Collision มากกว่า Door Script
อาจเป็น
Door Model เปิด
+
Collision ยังค้างตำแหน่งปิด
หรือมี World Collision/Map อื่นซ้อน
อย่าแก้ Animation ก่อนยืนยัน Collision
㊳ Collision Material ผิดมีผลอย่างไร
Official Workflow ระบุว่าทุก Collision Object ควรมี Collision Material ที่เหมาะสม
ดังนั้นเมื่อสร้าง Collision ใหม่ต้องตั้ง Material ตาม Surface/Asset Design ไม่ควรปล่อย Default แบบสุ่มโดยไม่ตรวจ
㊴ Flags สำคัญไหม
สำคัญ
Cfx.re ระบุว่า World Collision Object ต้อง Parent ไปยัง Bound GeometryBVH ที่มี Proper Flags และ Embedded Collision Workflow ยังให้ใช้ Apply Flag Preset กับ BVH ก่อนสร้าง Collision Geometry
จึงไม่ควร Copy Mesh แล้ว Export โดยไม่ตรวจ Flags
㊵ Apply Flag Preset คืออะไร
ใน Embedded Collision Workflow หลังสร้าง Bound GeometryBVH Cfx.re ให้เลือก BVH แล้วใช้
Apply Flag Preset
ก่อนสร้าง Collision Mesh/Primitive ต่าง ๆ
นี่เป็นอีกเหตุผลว่าทำไมการสร้าง Collision ไม่ใช่เพียงวาดกล่องแล้ว Export
㊶ YBN แก้ด้วย CodeWalker ได้ไหม
CodeWalker ใช้สำหรับค้นหาและ Export World Collision
Official Workflow คือ
CodeWalker World View
↓
Selection = Collision
↓
เลือก Collision
↓
Copy .ybn Filename
↓
RPF Explorer
↓
Export .ybn as XML
จากนั้นนำไปแก้ใน Blender และ Export กลับเป็น .ybn
㊷ Blender ใช้แก้ YBN ได้ไหม
ได้ตาม Official FiveM Assets Manual
Cfx.re ระบุให้ Import XML ที่ Export จาก YBN เข้า Blender จากนั้นแก้ Collision แล้ว Export .ybn ออกมาใหม่
Workflow นี้ใช้ Sollumz สำหรับ Asset Types และ Collision Materials
㊸ วิธีสร้าง Collision Object ใหม่
สำหรับ World Collision Cfx.re ระบุว่า
วาง Collision Object ใน World Coordinates
สร้าง Collision Material
ตั้ง Sollumz Type
Parent เข้า
Bound GeometryBVHตรวจ Flags
Export YBN
ดังนั้นต้องดูทั้ง Geometry, Material และ Hierarchy
㊹ Primitive Collision ดีกว่า Mesh Collision ไหม
ขึ้นอยู่กับรูปทรง
Box
เหมาะกับ
กำแพงเรียบ
กล่อง
Counter
พื้นผิวตรง
Mesh
เหมาะกับ
รูปทรงซับซ้อน
ทางลาด
Geometry ที่ Primitive Approximate ไม่ดี
Official Workflow รองรับทั้ง Bound Poly Box และ Bound Poly Mesh
㊺ Collision ของทางลาดควรใช้ Box ไหม
ถ้าทางลาดเอียงและต้องการความแม่นยำ อาจใช้ Mesh ที่สัมพันธ์กับ Surface มากกว่า Box ธรรมดา
แต่ไม่จำเป็นต้อง Copy Geometry รายละเอียดสูงของ Visual Asset มาใช้ทุก Polygon
หลักคือเลือก Collision Representation ที่ง่ายที่สุดแต่ Gameplay ยังถูก
㊻ Collision ของพื้นไม่ครบแก้อย่างไร
ถ้าตกเฉพาะบางจุด
ให้หา Pattern
พื้นที่ A = ปกติ
พื้นที่ B = ตก
พื้นที่ C = ปกติ
จากนั้นเปิด Collision ใน Editor และตรวจว่าพื้นที่ B
ไม่มี Collision Mesh
Mesh มีรู
Transform ผิด
Material/Bound Type ผิด
หรือไม่
ไม่จำเป็นต้องสร้างพื้น Collision ใหม่ทั้งอาคารหากเสียเพียงโซนเดียว
㊼ Collision Mesh มีรูได้ไหม
ได้ถ้า Geometry ไม่ต่อเนื่องหรือถูกสร้างผิด
ผลคือผู้เล่นเดินบนพื้นได้ส่วนใหญ่ แต่ตกเฉพาะจุดเล็ก ๆ
ตรวจ Collision Geometry ด้วย Wireframe/Editor จะเห็นได้ง่ายกว่าการเดินหาในเกมเพียงอย่างเดียว
㊽ Collision หายหลัง Merge Map
ถ้า
Map A เดี่ยว → Collision ปกติ
Map B เดี่ยว → Collision ปกติ
Merged → เดินทะลุ
ให้ตรวจ
YBN ถูก Copy ครบหรือไม่
Filename ซ้ำหรือไม่
YBN ถูก Replace หรือไม่
Collision Resource ถูกลบหรือไม่
Asset Structure ถูกย้ายผิด Folder หรือไม่
ก่อนแก้ Geometry
㊾ YBN ชื่อซ้ำกันอันตรายไหม
ถ้าคุณนำ Resource หลายชุดมารวม Folder แล้วมี YBN ชื่อเดียวกันแต่ Content ต่างกัน การกด Replace อาจทำให้ Collision ของอีก Map หาย
ตัวอย่าง
map_a/collision.ybn
map_b/collision.ybn
ถ้า Merge เหลือเพียงไฟล์เดียว Map หนึ่งชุดอาจเสีย Collision
จึงควรตรวจ Filename Conflict ก่อน Merge Assets
㊿ Rename YBN แก้ Conflict ได้ไหม
อย่า Rename แบบสุ่ม
Collision Assets สามารถสัมพันธ์กับ Map/World Setup และ Resource Structure
ควรทดสอบ Resource แยกก่อน และใช้ Tooling ตรวจ Reference/Asset Context ก่อนเปลี่ยนชื่อ
การเปลี่ยน File Name อย่างเดียวไม่ได้รับประกันว่า World หรือ Map Data ที่เกี่ยวข้องจะใช้ชื่อใหม่โดยอัตโนมัติ
51. YBN ต้องอยู่ใน stream หรือไม่
Official FiveM Map Resource Tutorial ระบุให้นำ Game Asset Files ไปไว้ใน stream Folder เพื่อให้ Assets โหลดอย่างถูกต้อง และ Resource ใช้ fxmanifest.lua พร้อม this_is_a_map 'yes' ในตัวอย่าง Map Resource
ตัวอย่างโครงสร้างอาจเป็น
custom_map/
├── fxmanifest.lua
└── stream/
├── map.ymap
├── map.ytyp
├── building.ydr
├── textures.ytd
└── collision.ybn
โครงสร้างจริงควรยึด Package ต้นฉบับเป็นหลัก
52. ต้องประกาศ YBN ทีละไฟล์ใน fxmanifest.lua ไหม
ใน Official Simple Map Resource Workflow Cfx.re ให้ย้าย Game Asset Files เข้า stream Folder และใช้
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
โดยไม่ได้ประกาศ Collision Asset ทีละไฟล์เหมือน Vehicle Data Files
ดังนั้นไม่ควรนำ data_file ของ Vehicle Meta มาใช้กับ YBN แบบเดาสุ่ม
53. this_is_a_map ซ่อม Collision ได้ไหม
ไม่ได้
this_is_a_map เป็นส่วนของ Map Resource Manifest ตาม Official Map Resource Example แต่ไม่ได้สร้าง Collision Geometry ที่หายขึ้นมาใหม่
ถ้า YBN เสียหรือ Collision Mesh ไม่มี ต้องแก้ Collision Asset เอง
54. YBN ทำให้ Map โหลดช้าได้ไหม
Map Resource ที่มี Collision จำนวนมากย่อมมี Content เพิ่มให้ Client จัดการ แต่ Performance ต้องดูภาพรวม ทั้ง
Collision Complexity
Model
Texture
Map Size
Resource Structure
อย่าตัดสินจากขนาด YBN เพียงค่าเดียว
55. Collision เยอะทำให้ FPS ตกไหม
Collision ไม่ใช่ Visual Texture/Geometry Rendering แบบ YDR/YTD แต่ Collision Complexity ยังเป็นส่วนหนึ่งของ Game World/Physics Workload
ดังนั้น Map Optimization ควรหลีกเลี่ยง Collision Mesh ที่ละเอียดเกิน Gameplay ต้องการ
และใช้ Primitive Shapes เมื่อเหมาะสมตาม Workflow ที่ Cfx.re รองรับ
56. YBN ทำให้ Server Lag หรือ Client Lag
Collision เป็น Game Asset มากกว่าจะเป็น Server Script Loop
หากอาการคือ
เดินเข้าพื้นที่แล้ว Physics แปลก
รถชนกระตุก
ให้ตรวจ Asset/Collision ฝั่งเกม
แต่ถ้า Server CPU สูง ให้ตรวจ Resource Scripts แยก ไม่ควรลด Collision Geometryโดยไม่รู้ต้นเหตุ
57. Collision ของ Custom Map ควร Optimize อย่างไร
หลักสำคัญคือ
ใช้ Geometry เท่าที่จำเป็น
อย่าตาม Visual Model ทุก Polygon
ใช้ Primitive เมื่อได้
เช่น Box
ใช้ Mesh เฉพาะส่วนที่ต้องการรูปทรงละเอียด
ตรวจ Collision Material
ตรวจ Flags
ตรวจ Bound Hierarchy
ตรวจ World Position
ทั้งหมดสอดคล้องกับ Official Collision Workflow ที่ใช้ Bound GeometryBVH, Bound Poly Mesh/Box และ Collision Material
58. Collision ที่ดีควรตรงกับ Visual 100% ไหม
ควรตรงในแง่ Gameplay
แต่ไม่จำเป็นต้องมี Geometry เท่ากันทุก Polygon
ตัวอย่างผนังตกแต่งอาจมีคิ้วและร่องจำนวนมาก
ผู้เล่นไม่จำเป็นต้องชนร่องทุกเส้น
Collision สามารถใช้ Surface เรียบกว่าขณะที่ยังให้ความรู้สึกว่าชนผนังถูกตำแหน่ง
59. วิธีทดสอบ Collision หลังแก้
อย่าทดสอบเพียงเดินผ่านหนึ่งจุด
ควรตรวจ
เดิน
วิ่ง
กระโดด
รถยนต์
รถใหญ่
บันได
ทางลาด
ประตู
มุมกำแพง
ชั้นบน
ขอบพื้น
และทดสอบหลายคนหากเป็น Production Map
60. ใช้ World Editor ตรวจ Collision ได้ไหม
World Editor ของ Cfx.re รองรับการเพิ่มและแก้ Objects แต่มีข้อจำกัดด้าน Collision โดยเฉพาะ Existing Buildings ที่ Collision อยู่ใน Global Collision Mesh
Cfx.re ระบุว่าปัจจุบัน Patches จำกัดกับ Objects ที่มี Embedded Collision เพราะ Global Collision ของอาคารยังไม่สามารถ Modify ผ่านระบบ Patch ได้โดยตรง
ดังนั้น World Editor ไม่ได้แทน CodeWalker/Blender Collision Workflow ทุกกรณี
61. ย้าย Object ที่มี Embedded Collision ง่ายกว่าหรือไม่
ในบริบท World Editor Cfx.re ระบุว่า Patch Objects ที่มี Embedded Collisions สามารถจัดการได้ ขณะที่ Objects ซึ่ง Collision อยู่ใน Global Collision Mesh มีข้อจำกัดมากกว่า
นี่เป็นเหตุผลว่าทำไม Prop เล็กบางตัวสามารถย้ายพร้อม Collision ได้ง่ายกว่า Building ใหญ่
62. YBN รองรับ Asset Escrow หรือไม่
เอกสาร Asset Escrow ของ Cfx.re ปัจจุบันระบุ File Types ที่รองรับคือ
Lua
YFT
YDD
YDR
และไม่ได้ระบุ YBN ในรายการนั้น ณ เอกสารปัจจุบัน
ดังนั้นไม่ควรสมมติว่า YBN ถูกป้องกันด้วย Asset Escrow เพียงเพราะอยู่ใน Resource ที่ซื้อมา
63. Commercial MLO Collision แก้ได้ไหม
ต้องดูว่า Creator อนุญาตให้แก้หรือไม่ และ Asset ถูก Package อย่างไร
แม้ YBN ไม่อยู่ในรายการ File Types ของ Asset Escrow ตามเอกสารปัจจุบัน แต่ License ของ Creator ยังอาจจำกัดการแก้ไขหรือ Redistribution ได้
จึงต้องดู License ควบคู่กับความสามารถทางเทคนิค
64. YBN ใช้กับ FiveM Enhanced อย่างไร
หากทำงานกับ Legacy/Enhanced Assets ควรตรวจ Compatibility ของ Resource ทั้งชุดตาม Workflow ของ Cfx.re
อย่างไรก็ตาม เอกสาร Alchemist ที่ค้นพบในชุดปัจจุบันระบุ Supported File Types สำหรับ Conversion เป็น YDR, YTD, YFT, YPT และ YDD และไม่ได้ระบุ YBN ดังนั้นไม่ควรใช้ Alchemist เป็นคำตอบอัตโนมัติสำหรับ YBN Collision Problem
ปัญหา Collision ยังคงควรตรวจผ่าน Collision Asset Workflow โดยตรง
65. อย่าใช้ Alchemist แก้ YBN แบบเดา
หากปัญหาคือ
เดินทะลุ
Invisible Wall
Collision Position ผิด
Bound ผิด
ควรใช้ CodeWalker/Blender/Sollumz Collision Workflow มากกว่า
Official Cfx.re Guide มีขั้นตอน YBN Editing โดยตรงอยู่แล้ว
66. วิธี Debug YBN แบบเร็วที่สุด
ทำตามลำดับนี้
ขั้นที่ 1
ยืนยันว่า Visual Model ขึ้น
ถ้าไม่ขึ้น ให้ตรวจ YDR/YTYP/YMAP ก่อน
ขั้นที่ 2
ระบุอาการ Collision
เดินทะลุ
ตกพื้น
Invisible Wall
รถชนผิด
ขั้นที่ 3
ปิด Map อื่นบริเวณเดียวกัน
ขั้นที่ 4
ทดสอบ Resource เดี่ยว
ขั้นที่ 5
ใช้ CodeWalker เลือก Collision
Cfx.re ให้เปลี่ยน Selection เป็น Collision ใน World View
ขั้นที่ 6
หา Filename .ybn
ขั้นที่ 7
Export YBN เป็น XML
ขั้นที่ 8
Import เข้า Blender
ขั้นที่ 9
ตรวจ Position/Scale/Rotation
ขั้นที่ 10
ตรวจ Bound GeometryBVH
ขั้นที่ 11
ตรวจ Collision Type
Bound Poly Mesh
Bound Poly Box
ขั้นที่ 12
ตรวจ Collision Material
ขั้นที่ 13
ตรวจ Flags
ขั้นที่ 14
Export YBN
ขั้นตอนเหล่านี้สอดคล้องกับ Official Collision Editing Workflow ของ Cfx.re
67. วิธีแยกปัญหาจากอาการ
อาคารหายทั้งหลัง
ตรวจ
YDR
YTYP
YMAP
อาคารขึ้นแต่ขาว
ตรวจ
YTD
Material
อาคารขึ้นแต่เดินทะลุ
ตรวจ
YBN
Embedded Collision
ชนกำแพงที่ไม่เห็น
ตรวจ
Collision เก่า
Visual Asset
Map Conflict
Door เปิดแต่ยังชน
ตรวจ
Embedded Bounds
Door Collision
Transform
Map เดี่ยวปกติ เปิดสองตัวแล้วชนผิด
ตรวจ
Collision Conflict
ตารางสรุปปัญหา FiveM YBN
| อาการ | จุดที่ควรตรวจ |
|---|---|
| เดินทะลุกำแพง | YBN / Embedded Collision |
| ตกพื้น | Floor Collision |
| รถทะลุอาคาร | Collision Mesh / Flags |
| Invisible Wall | YBN / Visual Asset / Conflict |
| ชนก่อนถึงกำแพง | Collision Scale/Position |
| Collision อยู่ผิดที่ | Transform / World Coordinates |
| ประตูเปิดแต่ยังชน | Door Embedded Collision |
| Garage เปิดแต่รถผ่านไม่ได้ | Door/World Collision |
| บันไดขึ้นไม่ได้ | Collision Geometry |
| ตกเฉพาะบางจุด | Collision Mesh มีช่อง |
| Merge แล้ว Collision หาย | YBN ถูก Replace/ขาด |
| เปิด Map สองตัวแล้วเดินติด | Collision Conflict |
| Model ไม่ขึ้นเลย | YDR/YTYP/YMAP ไม่ใช่ YBN จุดแรก |
| Model ขาว | YTD ไม่ใช่ YBN |
| Object อยู่ผิดตำแหน่ง | YMAP |
| Collision หนักเกิน | Simplify Mesh / Primitive |
ความสัมพันธ์ YBN กับไฟล์ FiveM Map อื่น
จำแบบนี้
YDR
→ Model ที่มองเห็น
YTYP
→ Archetype Definition
YMAP
→ ตำแหน่งในโลก
YTD
→ Texture
YBN
→ World Collision
Embedded Bounds
→ Collision ที่อยู่กับ Drawable
Official Cfx.re Asset Workflow แยก Map Placement และ Collision Editing เป็นคนละขั้นตอน และใน Collision Guide ยังแบ่ง World .ybn กับ Embedded Model Collision ออกจากกันด้วย
Collision ที่ดีควรเป็นอย่างไร
Collision ที่ดีควร
ตรงกับ Visual Asset ในจุดที่สำคัญ
ไม่มี Invisible Wall
ไม่มีรูที่ทำให้ตกพื้น
ไม่ละเอียดเกินความจำเป็น
ใช้ Primitive เมื่อเหมาะสม
Collision Material ถูก
Bound Type ถูก
Flags ถูก
Position/Scale/Rotation ถูก
ไม่ Conflict กับ Map อื่น
Cfx.re กำหนดให้ Collision Object มี Sollumz Type และ Collision Material ที่เหมาะสม รวมถึง Parent ไปยัง Bound GeometryBVH ที่มี Flags ถูกต้อง
ควร Optimize YBN ก่อนขึ้น Production หรือไม่
ควร โดยเฉพาะ Map ขนาดใหญ่หรือพื้นที่ที่มีผู้เล่นและรถผ่านจำนวนมาก
Workflow ที่แนะนำคือ
Original Collision
↓
Backup
↓
ตรวจ Visual Model
↓
ตรวจ Collision Overlay
↓
ลด Geometry ที่ไม่จำเป็น
↓
ตรวจ Material/Flags
↓
Export
↓
Test เดิน
↓
Test รถ
↓
Test Multiplayer
↓
Production
อย่า Optimize Collision หลายสิบ Map พร้อมกันโดยไม่มี Original Backup เพราะหากเกิด Invisible Wall หลังแก้ จะหาต้นเหตุยากมาก
สรุป FiveM YBN คืออะไร
FiveM YBN คือ Asset ที่เกี่ยวข้องกับ World Collision ของ GTA V/FiveM ซึ่งกำหนดพื้นที่การชน เช่น พื้น กำแพง และ World Geometry บางส่วน
Official Cfx.re Collision Workflow คือ
CodeWalker
↓
เลือก Collision
↓
หา .ybn
↓
Export XML
↓
Import Blender
↓
แก้ Collision
↓
ตรวจ Bound / Material / Flags
↓
Export .ybn
นอกจากนี้ FiveM Asset Pipeline ยังมี Embedded Model Collisions ซึ่งสร้าง Bounds ภายใน Drawable โดยใช้ Bound GeometryBVH พร้อม Collision Mesh หรือ Primitive Shapes ดังนั้นไม่ใช่ทุก Object ที่ต้องมี .ybn แยก
จำง่ายที่สุดว่า
YDR → Model
YTD → Texture
YTYP → Archetype
YMAP → ตำแหน่ง
YBN → World Collision
ถ้า เห็น Model แต่เดินทะลุ ให้ตรวจ Collision
ถ้า ตกพื้น ให้ตรวจ Floor Collision
ถ้า ชนกำแพงที่มองไม่เห็น ให้ตรวจ Collision เก่าหรือ Map Conflict
ถ้า ประตูเปิดแต่ยังชน ให้ตรวจ Embedded Collision/Bounds ของ Door
และถ้า ย้าย Building แล้ว Collision ยังอยู่จุดเดิม ต้องระวังว่า Buildings บางตัวใช้ Global Collision Mesh ซึ่ง Cfx.re ระบุว่า World Editor มีข้อจำกัดในการแก้ Collision ประเภทนี้โดยตรง
แนวทางของ comsiam คืออย่าแก้ YBN ด้วยการ Copy/Replace แบบไม่ตรวจ เพราะ Collision ผิดเพียงไฟล์เดียวอาจทำให้พื้นที่ทั้งโซนเดินไม่ได้หรือตกพื้นได้ ควรทดสอบ Visual และ Collision แยกกัน เก็บ Original Backup และแก้ทีละ Resource จะหา Root Cause ได้เร็วที่สุด
Comments
Post a Comment