FiveM Ped คืออะไร ต่างจาก Player, NPC และ Custom Ped อย่างไร

FiveM Ped คือ Entity ประเภทตัวละครใน GTA V/FiveM ไม่ว่าจะเป็นคนเดินถนน NPC เจ้าหน้าที่ ตัวละครที่ Script สร้างขึ้น หรือ Ped ที่ผู้เล่นกำลังควบคุมอยู่ โดย Cfx.re อธิบาย CREATE_PED ว่าใช้สร้าง Ped ซึ่งเป็นตัวละครสองขา/คนเดินถนน/Actor ตาม Model, ตำแหน่ง และ Heading ที่กำหนด.

คำว่า Ped มาจากแนวคิด Pedestrian ของ GTA แต่ในงาน FiveM คำนี้ถูกใช้กว้างกว่าคนเดินถนนทั่วไป เพราะ Script สามารถสร้าง Ped เพื่อเป็นร้านค้า เจ้าหน้าที่รักษาความปลอดภัย หมอ ช่าง พนักงาน NPC หรือ Character สำหรับ Mission ได้

บทความนี้จาก comsiam จะอธิบายว่า FiveM Ped คืออะไร แตกต่างจาก Player, NPC และ Custom Ped อย่างไร รวมถึง Ped Model, Components, Props, Network ID และวิธีสร้าง Ped อย่างถูกต้อง

① FiveM Ped คืออะไร

Ped คือ Entity ประเภทตัวละคร

ตัวอย่างเช่น

คนเดินถนน
ตำรวจ NPC
หมอ NPC
พนักงานร้านค้า
Security
Gang NPC
Mission Character
Player Character
สัตว์บาง Model

Cfx.re มีรายการ Ped Models ของ GTA V แยกเป็นหลายกลุ่ม เช่น Ambient Male/Female, Animals, Gang, Multiplayer, Scenario และ Story Models.

② Ped กับ NPC เหมือนกันไหม

ไม่เหมือนกันเสียทีเดียว

Ped เป็นประเภท Entity

ส่วน NPC เป็นคำที่ใช้เรียก Character ที่ไม่ได้ถูกผู้เล่นควบคุม

ดังนั้น

Ped
├── Player Ped
└── NPC Ped

เป็นภาพจำที่เข้าใจง่ายกว่า

Ped ที่ Script สร้างด้วย CREATE_PED มักถูกใช้เป็น NPC แต่ Ped ไม่ได้หมายถึง NPC เท่านั้น.

③ Player Ped คืออะไร

Player Ped คือ Ped Entity ที่เป็นตัวละครของผู้เล่น

ใน Client Script มักพบ

local ped = PlayerPedId()

แล้วนำ Ped Handle ไปใช้กับ Native ต่าง ๆ เช่น

ตรวจตำแหน่ง
เปลี่ยนเสื้อผ้า
ตรวจ Interior
Animation
Weapon
Health

ดังนั้น Player และ Ped เป็นคนละ Concept แต่ Player มี Ped ที่ใช้เป็น Character ในโลกเกม

④ NPC Ped คืออะไร

NPC Ped คือ Ped ที่ไม่ได้ถูกผู้เล่นควบคุมโดยตรง

ตัวอย่าง

Shopkeeper
Police NPC
Doctor NPC
Mechanic NPC
Guard
Quest NPC
Dealer
Receptionist

NPC เหล่านี้อาจเป็น Population Ped ที่ GTA สร้างเอง หรือ Script-created Ped ที่ Resource สร้างขึ้น

⑤ Population Ped คืออะไร

Population Ped คือ Ped ที่ระบบ Population ของเกมสร้างขึ้น เช่นคนเดินถนนทั่วไป

FiveM มี Event populationPedCreating ซึ่งถูกเรียกก่อน Population Ped ถูกสร้าง และ Script สามารถเปลี่ยน Model, Position หรือยกเลิกการสร้างได้.

จึงต่างจาก Ped ที่ Resource สร้างเองด้วย CREATE_PED

⑥ Script-created Ped คืออะไร

คือ Ped ที่ Resource สร้างขึ้นเอง

ตัวอย่าง

local ped = CreatePed(
pedType,
model,
x,
y,
z,
heading,
isNetwork,
false
)

Cfx.re ระบุว่า CREATE_PED สร้าง Ped ด้วย Model ที่กำหนด ณ Coordinates และ Heading ที่ระบุ และ Model ควรถูก Load ไว้ก่อน เช่นผ่าน REQUEST_MODEL.

⑦ Ped Model คืออะไร

Ped Model คือ Model ที่กำหนดรูปลักษณ์พื้นฐานของ Ped

ตัวอย่าง Model Categories ที่ Cfx.re แสดง ได้แก่

Ambient Male
Ambient Female
Animals
Gang
Multiplayer
Scenario
Story

รายการ Ped Models อย่างเป็นทางการของ Cfx.re ใช้สำหรับอ้างชื่อ Models ที่ GTA V รองรับ.

⑧ Ped Model กับ Ped ต่างกันอย่างไร

จำแบบนี้

Ped
= Entity ตัวละครที่มีอยู่ในโลกเกม

Ped Model
= Model/รูปลักษณ์ที่ Ped ตัวนั้นใช้

ตัวอย่าง

Ped Entity #1234
↓
Model = a_m_m_business_01

Ped Handle และ Model จึงไม่ใช่สิ่งเดียวกัน

⑨ Ped Handle คืออะไร

เมื่อ Script สร้างหรือค้นพบ Entity จะใช้ Handle ฝั่ง Script เพื่ออ้างถึง Entity นั้น

เช่น

local ped = CreatePed(...)

ค่าที่ได้ถูกใช้ส่งเข้า Native อื่น เช่น

ตั้ง Animation
ตั้ง Heading
ตั้ง Clothing
ตรวจ Health
ลบ Entity

Ped Handle เป็นการอ้าง Entity ใน Context ปัจจุบัน ไม่ควรใช้แทน Network ID สำหรับการอ้างข้ามเครื่อง

⑩ Network ID คืออะไร

FiveM แยก Local Entity Handle ออกจาก Network ID

Cfx.re ระบุว่า Network ID เป็น Integer 16-bit ที่แทน Networked Entity ในช่วงเวลาหนึ่ง และหากต้องอ้าง Entity ข้าม Clients หรือ Server ควรใช้ Network ID.

ดังนั้น

Local Handle
→ ใช้ภายในเครื่อง/Context

Network ID
→ ใช้อ้าง Entity ข้าม Network

⑪ Ped Local กับ Networked Ped ต่างกันอย่างไร

Local Ped

Ped ที่ไม่จำเป็นต้อง Sync ไปยัง Client อื่น

เหมาะกับบาง UI/Visual/Local Gameplay Use Cases

Networked Ped

Ped ที่ต้องมีตัวตนร่วมกันระหว่าง Clients

เช่น

NPC ร้านค้า
ตำรวจ NPC
Mission Ped
Boss NPC

ที่ผู้เล่นหลายคนต้องเห็นตัวเดียวกัน

ต้องออกแบบ Networking ให้เหมาะสม ไม่ใช่แค่ตั้ง Boolean แบบสุ่ม

⑫ isNetwork ใน CreatePed คืออะไร

CREATE_PED มี Parameter isNetwork

CREATE_PED(
pedType,
modelHash,
x,
y,
z,
heading,
isNetwork,
bScriptHostPed
)

Cfx.re Native Reference แสดง Parameter นี้โดยตรง.

ถ้า Ped ต้องใช้ร่วมกันหลาย Client ควรออกแบบ Network Ownership และ Entity Lifecycle อย่างถูกต้อง

⑬ OneSync เกี่ยวกับ Ped อย่างไร

OneSync คือระบบ State Awareness/Networking ของ FiveM และ Cfx.re ระบุว่าสามารถสร้าง Entities ฝั่ง Server ได้ เช่น

Peds
Vehicles
Objects

สำหรับ Server ที่ต้องการ NPC ที่มี Authority/State ระดับ Server การสร้าง Entity ฝั่ง Server เป็นอีกแนวทางที่ควรพิจารณา

⑭ Server-created Ped ต่างจาก Client-created Ped อย่างไร

Client-created Ped ถูกสร้างโดย Client Script

ส่วน Server-created Entity ภายใต้ OneSync สามารถถูกสร้างจาก Server

แนวคิด

Client-created
→ Client เป็นจุดเริ่มต้น

Server-created
→ Server เป็นจุดเริ่มต้น

การเลือกแบบใดขึ้นอยู่กับ

Persistence
Networking
Gameplay
จำนวนผู้เล่น
Ownership

ไม่ใช่ว่าแบบใดดีกว่าทุกกรณี

⑮ Ped Persistence คืออะไร

Persistence หมายถึงการออกแบบให้ Entity อยู่ต่อในช่วงเวลาที่ Gameplay ต้องการ

Cfx.re OneSync Documentation ยกตัวอย่างการสร้าง Server Entity และใช้ Entity Orphan Mode เพื่อช่วยจัดการ Entity Lifecycle.

ดังนั้นถ้าสร้าง NPC สำคัญ เช่น Dealer หรือ Mission Character ควรคิดเรื่อง Lifecycle ตั้งแต่ต้น

⑯ Ped หายเมื่อเดินไกลเกิดจากอะไร

ต้องแยก

Local Entity
Network Ownership
Population Management
Script Cleanup
Resource Stop
Entity Scope

ออกจากกัน

อย่าแก้โดยสร้าง Ped ใหม่ทุก Frame เพราะอาจสร้าง Entity ซ้ำจำนวนมาก

⑰ Ped Spawn ซ้ำหลายตัวเกิดจากอะไร

Pattern ที่พบบ่อยคือ Script มี

while true do
Wait(0)
CreatePed(...)
end

หรือ Event ถูก Trigger ซ้ำโดยไม่มี State Check

ผลคือ

NPC 1
NPC 2
NPC 3
NPC 4
...

ควรสร้าง Ped เมื่อจำเป็นและเก็บ Handle/Network ID ไว้

⑱ ก่อน CreatePed ต้องโหลด Model ไหม

ควร

Cfx.re Native Documentation ระบุว่า Model ควรถูก Loaded ก่อน CREATE_PED เช่นใช้ REQUEST_MODEL.

แนวคิดคือ

Model Hash
↓
Request Model
↓
รอ Model Loaded
↓
CreatePed

ไม่ควร Create Ped ก่อน Model พร้อม

⑲ ตัวอย่าง Request Model ก่อนสร้าง Ped

ตัวอย่างพื้นฐาน

local model = `a_m_m_business_01`

RequestModel(model)

while not HasModelLoaded(model) do
Wait(0)
end

local ped = CreatePed(
4,
model,
0.0,
0.0,
72.0,
0.0,
false,
false
)

แนวทางนี้สอดคล้องกับ Cfx.re CREATE_PED Reference ที่ระบุว่า Model ควรถูก Load ก่อน.

⑳ หลังสร้าง Ped ควร Release Model ไหม

เมื่อ Script ไม่จำเป็นต้อง Hold Model ไว้แล้ว ควรจัดการ Model Streaming State อย่างเหมาะสมตาม Workflow ของ Resource

โดยเฉพาะ Script ที่สร้าง NPC หลาย Models ไม่ควร Request Models ซ้ำตลอดเวลาโดยไม่มีการจัดการ State

㉑ pedType คืออะไร

CREATE_PED มี Parameter pedType เป็น Integer.

แต่สำหรับ FiveM Scripts ทั่วไป ไม่ควรเลือกค่าจาก Tutorial เก่าแบบสุ่มเพียงเพราะเห็น Code ตัวอย่าง

สิ่งสำคัญกว่าคือ Model, Network State และ Behavior ของ Ped ที่ Resource ต้องการ

㉒ Heading คืออะไร

Heading คือทิศที่ Ped หันตอนถูกสร้าง

เช่น

0°
90°
180°
270°

CREATE_PED รับ heading เป็น Parameter โดยตรง.

ถ้า NPC หันหลังให้ Counter หรือหันผิดทาง ให้ตรวจ Heading ก่อนย้าย Coordinates

㉓ Ped Coordinates สำคัญอย่างไร

Ped ถูกสร้างที่

x
y
z

ตาม Parameters ของ CREATE_PED.

ถ้า Z ต่ำกว่าพื้น อาจเห็น Ped จม

ถ้าสูงเกิน Ped อาจตกลงมา

ถ้าอยู่ใน MLO ต้องตรวจ Collision และ Interior Position ด้วย

㉔ Ped Spawn ใต้พื้นแก้อย่างไร

ตรวจ

Z Coordinate
Map Collision
MLO Collision
Interior Position

ก่อน

อย่าเพิ่ม Z ทีละ 10 แบบสุ่มหาก Map มีพื้นหลายระดับ

สำหรับ NPC ร้านค้า ควรใช้ Coordinates ที่ทดสอบจาก Map จริง

㉕ Ped ลอยเหนือพื้นเกิดจากอะไร

อาจเกิดจาก

  • Z สูงไป
  • Collision ยังไม่พร้อม
  • Map Asset ผิด
  • Spawn Position ไม่ตรง Floor

ถ้า NPC ทุกตัวใน Map เดียวกันลอย ควรตรวจ Map/Collision เพิ่ม

㉖ Ped กับ Custom Ped ต่างกันอย่างไร

Ped เป็นคำทั่วไปสำหรับ Character Entity

ส่วน Custom Ped หมายถึง Ped Model ที่เพิ่มหรือปรับแต่งขึ้นมาเอง

ดังนั้น

Ped
├── Vanilla GTA Ped
└── Custom Ped

Custom Ped ยังถูกสร้างและจัดการในฐานะ Ped Entity เช่นเดิม

㉗ Custom Ped ไม่เหมือน Custom Clothes

ต่างกันชัดเจน

Custom Ped
→ เปลี่ยน Character Model ทั้งตัว

Custom Clothes
→ เปลี่ยน Clothing Components/Props ของ Ped ที่รองรับ

Custom Ped บางตัวอาจไม่ได้รองรับ Clothing Variations แบบเดียวกับ Multiplayer Freemode Ped

㉘ Ped กับ EUP ต่างกันอย่างไร

Ped
= ตัวละคร

EUP
= Uniform/Clothing Assets

EUP ถูก Apply บน Ped Models ที่รองรับ Clothing Variation

ดังนั้น EUP ไม่ใช่ Ped Model โดยตัวมันเอง

㉙ Ped Components คืออะไร

Ped Models ที่รองรับ Clothing Variations สามารถมี Drawable Components เช่น

Torso
Legs
Shoes
Undershirts
Tops
Armor
Accessories

FiveM มี Collection-based APIs สำหรับ Drawable Components และ Props โดยตรง.

㉚ Props คืออะไรใน Ped

Props เป็น Accessory Data ที่แยกจาก Drawable Components

Cfx.re ระบุว่า Ped Drawable Components และ Props ถูกจัดเก็บเป็น Named Collections และมี Indexing Mechanism คล้ายกัน.

จึงควรแยก

Components

กับ

Props

ใน Character System

㉛ Ped Collections คืออะไร

FiveM อธิบายว่า Ped Drawable Components และ Props ถูกเก็บใน Named Groups เรียกว่า Collections.

นี่สำคัญกับ

Custom Clothes
EUP
Add-on Clothes
Props

เพราะ Custom Collections สามารถใช้ Local Index ที่เสถียรกว่า Global Index หลัง Title Updates

㉜ Ped ทุกตัวรองรับ Clothes เหมือนกันไหม

ไม่

Clothing Variations ขึ้นกับ Ped Model

Ped Story Character หรือ NPC Model บางตัวไม่ได้มี Component Structure แบบ Freemode Character

จึงไม่ควรใช้ Clothing IDs จาก Ped หนึ่งกับ Ped อื่นโดยอัตโนมัติ

㉝ Ped Model List หาได้จากไหน

Cfx.re มีหน้า Ped Models ซึ่งรวบรวม Working Ped Models ของ GTA V แยกเป็น Categories เช่น Ambient, Gang, Multiplayer, Scenario และ Story.

สำหรับ Development ควรใช้ชื่อ Model ที่ตรวจสอบได้แทนการเดา Hash

㉞ Model Hash คืออะไร

Native CREATE_PED รับ

Hash modelHash

เป็น Parameter.

ใน Lua มักเห็นรูปแบบ

local model = `a_m_m_business_01`

หรือการ Hash ชื่อ Model ก่อนใช้

㉟ Ped Model ไม่ถูกต้องจะเกิดอะไร

หาก Model ไม่ใช่ Model ที่ใช้ได้หรือยังไม่ถูก Load การสร้าง Ped สามารถล้มเหลวหรือไม่ได้ผลตามต้องการ

ดังนั้นก่อน Create ควร

ตรวจ Model
↓
Request Model
↓
รอ Load
↓
Create Ped

ตาม Requirement ที่ Cfx.re ระบุ.

㊱ Ped ไม่ Spawn ควรตรวจอะไร

เริ่มจาก

Model
Model Loaded?
Coordinates
CreatePed Return Value
Resource Error
Network Configuration

จากนั้นจึงตรวจ AI/Behavior

อย่าดู Animation ก่อนถ้า Ped ยังไม่ได้ถูกสร้าง

㊲ CreatePed คืน 0 หมายความว่าอะไร

หาก Native ไม่ได้คืน Entity Handle ที่ใช้งานได้ ควรถือว่าการสร้างไม่สำเร็จและตรวจ Model/Parameters/Environment ก่อน

อย่าใช้ Handle นั้นต่อกับ Native อีกหลายสิบตัว เพราะจะทำให้ Debug ซับซ้อนขึ้น

㊳ Ped ยืนเฉย ๆ ทำอย่างไร

NPC ร้านค้า/Receptionist มักต้องการให้ยืนอยู่ตำแหน่งเดิม

แต่ควรจัด Behavior ด้วย Task/Scenario หรือ Ped Behavior APIs ตาม Use Case แทนการ Teleport Ped กลับตำแหน่งทุก Frame

เป้าหมายคือให้ AI Behavior ทำงานเป็นระบบ

㊴ Ped เดินหนีเกิดจากอะไร

GTA Ped มี AI และ Event Responses ของตัวเอง

Ped อาจตอบสนองต่อ

  • การยิง
  • Vehicle
  • Player
  • Combat
  • World Events

ถ้า NPC ร้านค้าต้องยืนประจำตำแหน่ง ต้องกำหนด Behavior ที่เหมาะสม ไม่ใช่เพียง Spawn แล้วจบ

㊵ Ped ร้านค้าควรเป็น Invincible ไหม

ขึ้นกับ Gameplay Design

ถ้า NPC เป็น UI Anchor ที่ไม่ต้องถูกฆ่า อาจตั้ง State ป้องกัน Damage

แต่ถ้า Server ต้องการ Roleplay ที่ NPC สามารถถูกโจมตีได้ก็ไม่ควรบังคับ Invincible

นี่เป็น Design Choice ไม่ใช่ Requirement ของ Ped

㊶ Ped ควร Freeze Position ไหม

ขึ้นกับงาน

ตัวอย่าง

Receptionist
Shop NPC
Bank Clerk

อาจต้องอยู่ตำแหน่งตายตัว

แต่ Guard หรือ Patrol Ped ไม่ควรถูก Freeze หากต้องเดิน

อย่าตั้ง

Freeze = true

ให้ Ped ทุกตัวใน Server แบบเหมารวม

㊷ Ped สามารถเล่น Animation ได้ไหม

ได้

Ped เป็น Entity Character ที่สามารถถูกสั่ง Tasks/Animations ผ่าน GTA/FiveM Native APIs ได้

จึงพบ NPC เช่น

ช่างกำลังซ่อมรถ
หมอกำลังเขียนเอกสาร
พนักงานกำลังถือของ
NPC กำลังสูบบุหรี่

ใน Server Roleplay

㊸ Ped Scenario คืออะไร

Scenario เป็น Behavior/Activity สำเร็จรูปของ GTA ที่สามารถใช้กับ NPC บางประเภท เช่นยืน ทำงาน หรือนั่ง

Cfx.re Ped Model Reference เองยังจัด Ped Models บางกลุ่มเป็น Scenario Male/Female ซึ่งสะท้อนว่า GTA มีระบบ Population/Scenario Ped อยู่ใน World Population.

㊹ Ped สามารถถืออาวุธได้ไหม

ได้ใน Gameplay ที่ Script ออกแบบ

เช่น

Guard
Police NPC
Gang NPC
Mission Enemy

แต่ต้องออกแบบ

  • Weapon
  • AI Task
  • Relationship
  • Combat Behavior
  • Network State

ร่วมกัน

เพียง Spawn Ped ไม่ได้ทำให้ NPC กลายเป็น Combat AI ที่สมบูรณ์

㊺ Ped Relationship คืออะไร

GTA มีระบบ Relationships สำหรับกำหนดพฤติกรรมระหว่าง Groups

เช่น

Friendly
Neutral
Hostile

Custom NPC Combat Systems จึงมักต้องจัด Relationship Group ร่วมกับ Tasks

ไม่ควรสร้าง Armed Ped แล้วหวังว่า AI จะเข้าใจว่าใครเป็นศัตรูเอง

㊻ Ped จำนวนมากทำให้ FPS ตกไหม

Ped แต่ละตัวมี

Model
Animation
AI
Physics
Clothing
Network State

ดังนั้นจำนวน Ped จำนวนมากสามารถเพิ่มภาระของ Client/Game Simulation ได้

แต่ต้องแยก

Rendering
AI Script
Networking

เพื่อรู้ว่าควร Optimize ด้านไหน

㊼ Spawn Ped หลายร้อยตัวพร้อมกันดีไหม

ไม่ควรทำโดยไม่มีเหตุผล

Server Roleplay ทั่วไปไม่จำเป็นต้อง Spawn NPC ทุกจุดของเมืองตั้งแต่ผู้เล่น Join

ควรคิดเรื่อง

Distance
Area
Player Presence
Entity Scope
Lifecycle

แทน

㊽ Distance-based Ped Spawn คืออะไร

แนวคิดคือ

ผู้เล่นเข้าใกล้พื้นที่
↓
สร้าง/เปิดใช้งาน NPC

ผู้เล่นออกจากพื้นที่
↓
จัดการ Entity ตาม Architecture

แต่สำหรับ Networked Shared NPC ต้องระวังไม่ให้ Clients หลายเครื่องสร้าง NPC ตัวเดียวซ้ำกัน

㊾ ทำไมผู้เล่นสองคนเห็น NPC คนละตัว

ถ้าแต่ละ Client สร้าง Local Ped ของตัวเอง

Client A → Ped A
Client B → Ped B

แม้พิกัดและ Model เหมือนกัน ก็ไม่ได้หมายความว่าเป็น Network Entity เดียวกัน

ถ้าต้องการ Entity เดียวที่อ้างข้ามเครื่อง ต้องใช้ Networking Design และ Network ID ตามแนวทางของ FiveM.

㊿ Network ID ควรเก็บใน Database ไหม

ไม่ควรใช้ Network ID เป็น Persistent Database Identifier ระยะยาว

Cfx.re ระบุว่า Network IDs สามารถถูก Reuse ได้เมื่อ Entity เดิมหมดอายุ แม้ ID จะไม่เปลี่ยนระหว่าง Lifetime ของ Entity นั้น.

ดังนั้น Database ควรเก็บ Logical NPC ID เช่น

shopkeeper_01
police_guard_01

แล้ว Map ไปยัง Network Entity ที่มีอยู่ใน Runtime

51. Entity Handle เก็บข้าม Client ได้ไหม

ไม่ควร

Cfx.re ระบุว่าหากต้องอ้าง Entity ระหว่าง Machines ควรใช้ Network ID ไม่ใช่ Local Handle.

ดังนั้นไม่ควรส่ง

local ped handle

จาก Client A ไป Client B แล้วคาดว่าจะอ้าง Entity เดียวกัน

52. Ped Resource Restart แล้ว NPC หาย

ถ้า Ped ถูกสร้างโดย Resource และ Resource Stop/Restart แล้ว Cleanup หรือ Script State ถูก Reset NPC อาจหายหรือถูกสร้างใหม่ตาม Resource Design

ดังนั้น Resource ควรมี Lifecycle ที่ชัดเจน

on start
→ create/register

on stop
→ cleanup

เพื่อป้องกัน Ped ซ้ำหรือ Entity ค้าง

53. Ped ซ้ำหลัง Restart Resource

เกิดได้หาก Resource สร้าง Ped ใหม่ทุก Start แต่ของเดิมไม่ได้ถูก Cleanup หรือยังมี Network Entity อยู่

ควรตรวจ

Existing Entity?
Network ID?
Cleanup?
Ownership?

ก่อน Create ตัวใหม่

54. populationPedCreating ใช้ทำอะไร

FiveM มี Event populationPedCreating ก่อน Population Ped ถูกสร้าง โดย Script สามารถ

เปลี่ยน Position
เปลี่ยน Model
Cancel การสร้าง

ผ่าน Setters/Event Handling ที่ Cfx.re ระบุ.

เหมาะกับการควบคุม Population มากกว่าการใช้กับ NPC Script ทุกตัว

55. สามารถปิด Population Ped ทั้งเมืองด้วย Event ได้ไหม

Event สามารถ Cancel Population Ped Creation ได้ตาม Documentation.

แต่การปิด Population ทั้งหมดมีผลต่อบรรยากาศโลกและ Gameplay

ควรตัดสินใจตาม Server Design ไม่ใช่ทำเพียงเพื่อหวังเพิ่ม FPS โดยไม่วัดผล

56. Ped กับ Object ต่างกันอย่างไร

Ped
→ Character Entity

Object
→ Prop/Object Entity

Ped มี Character-specific Systems เช่น

AI
Tasks
Animations
Weapons
Clothing
Health

จึงไม่ควรใช้ Ped เมื่อสิ่งที่ต้องการเป็นเพียง Static Decoration

57. Ped กับ Vehicle ต่างกันอย่างไร

ทั้งสามเป็น Entity Categories คนละประเภท

Ped
Vehicle
Object

OneSync Documentation ระบุว่าสามารถสร้าง Entities เหล่านี้จาก Server ได้.

แต่ Native และ Lifecycle ของแต่ละประเภทแตกต่างกัน

58. Ped ต้องใช้ ESX หรือ QBCore ไหม

ไม่

CREATE_PED เป็น GTA/FiveM Native ไม่ใช่ Function ของ ESX หรือ QBCore.

Framework จะเกี่ยวข้องเมื่อ NPC เชื่อมกับ

Job
Inventory
Shop
Quest
Database
Permissions

เท่านั้น

59. Ped ต้องใช้ OneSync ไหม

Local Client Ped ไม่ได้หมายความว่าต้องใช้ OneSync ทุกกรณี

แต่ถ้าต้องการ Server-created/network-aware Entity Architecture OneSync เป็นระบบที่เกี่ยวข้องโดยตรง และ Cfx.re ระบุว่าสามารถสร้าง Peds, Vehicles และ Objects ฝั่ง Serverได้.

จึงต้องเลือกตาม Networking Requirement

60. วิธี Debug FiveM Ped ไม่ขึ้น

ใช้ลำดับนี้

ขั้นที่ 1 — ตรวจ Model

ใช้ Ped Model ที่มีอยู่จริง

Cfx.re มี Ped Model Reference.

ขั้นที่ 2 — Request Model

Model ต้อง Load ก่อน CreatePed.

ขั้นที่ 3 — ตรวจ Coordinates

X
Y
Z
Heading

ขั้นที่ 4 — ตรวจค่า CreatePed ที่คืนมา

เก็บ Ped Handle ไว้

ขั้นที่ 5 — ตรวจ F8/Console

ดู Client Script Error

ขั้นที่ 6 — ถ้าเป็น Networked Ped

ตรวจ Network ID และ Ownership

Cfx.re แนะนำ Network ID สำหรับการอ้าง Entity ข้าม Machines.

ขั้นที่ 7 — ตรวจว่า Script สร้างซ้ำหรือไม่

ขั้นที่ 8 — ตรวจ Resource Restart/Cleanup

ขั้นที่ 9 — ถ้าใช้ OneSync Server Ped

ตรวจ Entity Creation Architecture ฝั่ง Server.

ตารางสรุปปัญหา FiveM Ped

อาการจุดที่ควรตรวจ
Ped ไม่ขึ้นModel / Model Loading
Ped Spawn ผิดจุดCoordinates
Ped หันผิดทางHeading
Ped จมพื้นZ / Collision
Ped ลอยZ / Map
Ped ซ้ำหลายตัวSpawn Logic
Ped หายหลัง RestartResource Lifecycle
ผู้เล่นเห็น NPC คนละตัวLocal vs Network Ped
Client อื่นหา Entity ไม่เจอNetwork ID
Ped เดินหนีAI Behavior
NPC ไม่ยืนประจำที่Tasks/Behavior
Clothes ไม่ขึ้นPed Model/Components
Custom Clothes ใช้ไม่ได้Ped Compatibility
NPC มากแล้ว FPS ลดPed Count / Assets / AI
Ped หายเมื่อออกระยะEntity Scope/Lifecycle
Custom NPC ไม่ SyncNetworking Architecture

FiveM Ped ที่ดีควรออกแบบอย่างไร

สำหรับ NPC Production ควรกำหนดให้ชัด

Ped Model
Coordinates
Heading
Local หรือ Networked
Behavior
Animation/Scenario
Invincibility
Interaction
Lifecycle
Cleanup
Logical NPC ID

อย่าสร้างเพียง CreatePed() แล้วเพิ่ม Native แบบสุ่มไปเรื่อย ๆ

ตัวอย่าง Architecture NPC ร้านค้า

แนวคิด

shopkeeper_01
↓
Model
↓
Coordinates
↓
Create Ped
↓
ตั้ง Behavior
↓
Register Interaction
↓
ผู้เล่นกดใช้งาน
↓
เปิด Shop UI

แยก

NPC Visual

ออกจาก

Shop Business Logic

จะทำให้ Debug ง่ายกว่า

ตัวอย่าง Architecture Networked Mission Ped

Server
↓
สร้าง/กำหนด Mission Entity
↓
Network ID
↓
Clients ใช้ Network ID อ้าง Entity
↓
Mission Logic
↓
Cleanup เมื่อจบ

FiveM ระบุว่า Network ID ควรถูกใช้เมื่ออ้าง Entity ข้าม Clients/Server และ OneSync รองรับ Server-created Entities.

Ped กับ Player กับ NPC ต่างกันแบบสั้นที่สุด

จำแบบนี้

Ped
= Character Entity

Player
= ผู้เล่นที่เชื่อมต่อกับ Server

Player Ped
= Character ที่ Player ควบคุม

NPC
= Character ที่ไม่ถูกผู้เล่นควบคุม

Custom Ped
= Custom Character Model

ดังนั้นคำเหล่านี้มีความสัมพันธ์กัน แต่ไม่ใช่สิ่งเดียวกัน

สิ่งที่ไม่ควรทำกับ FiveM Ped

หลีกเลี่ยง

CreatePed ทุก Frame
สร้าง NPC ซ้ำจากทุก Client
ใช้ Local Handle ข้าม Client
เก็บ Network ID เป็น Database ID ถาวร
Spawn Ped ก่อน Model Loaded
ใช้ Clothing IDs ของ Ped คนละ Model
สร้าง NPC หลายร้อยตัวโดยไม่วัด Performance
ไม่ Cleanup Entity หลัง Resource Stop

สิ่งเหล่านี้ทำให้ Server Debug ยากและสามารถสร้าง Entity/Performance Problems ได้

สรุป FiveM Ped คืออะไร

FiveM Ped คือ Entity ประเภทตัวละครของ GTA V/FiveM ซึ่งครอบคลุมทั้ง Player Character, Population NPC และ Script-created NPC

Cfx.re CREATE_PED ใช้สร้าง Ped โดยกำหนด

Ped Type
Model
X / Y / Z
Heading
Network State

และ Model ควรถูก Load ก่อน Create.

Ped Model เป็นตัวกำหนดรูปลักษณ์พื้นฐานของ Character โดย FiveM มีรายการ Models ตั้งแต่ Ambient, Animals, Gang, Multiplayer, Scenario ไปจนถึง Story Characters.

ถ้า Ped ไม่ Spawn ให้ตรวจ Model และ Model Loading

ถ้า Ped อยู่ผิดตำแหน่ง ให้ตรวจ Coordinates/Heading

ถ้า ผู้เล่นสองคนเห็น NPC คนละตัว ให้ตรวจ Local vs Networked Ped

ถ้าต้องอ้าง Ped ข้าม Clients หรือ Server ให้ใช้ Network ID เพราะ Cfx.re ระบุว่า Local Entity Handles ไม่ควรถูกใช้เป็นตัวอ้างข้าม Machines.

ถ้าต้องการสร้าง Entities จากฝั่ง Server FiveM OneSync รองรับ Peds, Vehicles และ Objects โดยตรง.

และถ้า Custom Clothes หรือ EUP ใช้กับ Ped ไม่ได้ ให้ตรวจ Ped Model ก่อน เพราะ Clothing Components และ Props ถูกจัดตาม Ped/Collections และไม่ได้เหมือนกันทุก Character Model.

แนวทางของ comsiam คือให้มอง Ped เป็น Entity ที่มีทั้ง Model, Behavior, Networking และ Lifecycle ไม่ใช่เพียง NPC ที่ตั้งไว้หน้าร้าน เพราะเมื่อออกแบบทั้ง 4 ส่วนให้ถูก การสร้าง Shop NPC, Mission Ped, Police NPC หรือ Character แบบ Networked จะเสถียรและขยายระบบต่อได้ง่ายกว่ามาก

Comments

Popular posts from this blog

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

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

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