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

เริ่มจาก

  1. ปิด Map Resource ใหม่

  2. ทดสอบตำแหน่งเดิม

  3. ถ้า Collision หาย → อยู่ใน Resource ใหม่

  4. ถ้ายังชน → อาจมาจาก Vanilla/Resource อื่น

  5. เปิด 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 ระบุว่า

  1. วาง Collision Object ใน World Coordinates

  2. สร้าง Collision Material

  3. ตั้ง Sollumz Type

  4. Parent เข้า Bound GeometryBVH

  5. ตรวจ Flags

  6. 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 WallYBN / 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

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด