Cấu trúc Gun Data

1. Giới thiệu

Gun Data là tập hợp các thông số (gọi tắt là data) của một khẩu súng, được GDE đóng gói thành một file dữ liệu (gunname.dat), file này sẽ được sử dụng bởi cả main game và chính GDE.

Data được chuẩn bị thông qua 2 hình thức:

  1. Nhập bằng tay vào object trong Titan Engine Model Editor. Đây là các thông số ít thay đổi như tên súng, cách vận hành, chỉ số kỹ thuật, gia tốc đầu nòng, tốc độ bắn v..v..

  2. Nhập theo thời gian thực: Dành cho các thông số mang tính ước lượng, cần thay đổi để tìm ra trạng thái tốt nhất như hướng văng vỏ đạn, cảm biến thân súng, bố trí mount/attachment v..v..


2. Data nhập tay

Các vị trí nhập data được bố trí rải rác qua nhiều object, các object có mối liên hệ parrent-child. Tham khảo biểu đồ dưới đây để nhanh chóng nắm bắt cấu trúc object chứa data nhập tay.

2.1 Model CB Gun

Model vũ khí được import vào GDE, đặt tên là body, thuộc OBJ_GUN, bao gồm các nhóm data:

2.1.1 Nhóm cho luồng AB

Có thể bỏ trống nếu súng không sử dụng luồng AB

anim base gun

UID object model AB Gun

anim base hand

UID object model AB Hand

anim base sound

UID là file âm thanh sử dụng cho luồng AB (Hiện chưa sử dụng)

2.1.2 Nhóm thông số cơ bản

attr cost

Giá của khẩu súng với đơn vị Credit trong game

attr damage scale

- Tăng giảm tỉ lệ gây sát thương/1 phát bắn, giá trị càng cao, sát thương càng được nhân lên.
- Mặc định là 1, tương đương với sát thương của AK47
- Nếu nhập thông số là 2, thì sát thương của súng này sẽ gấp đôi AK47

attr draw delay

- Thời gian rút súng súng (ms) khi sử dụng luồng CB
- Nếu có luồng AB, thời gian rút súng sẽ phụ thuộc vào độ dài của animation weapon-in

attr muzzle velocity

- Gia tốc đầu nòng (m/s).
- Khuyến nghị nhập thông tin thực của súng, ví dụ AK47 là 715 m/s

attr rate of fire

- Tốc độ bắn (rpm)
- Khuyến nghị nhập thông tin thực của súng, ví dụ AK là 600 viên/phút

attr recoil

- Độ giật cơ bản, thông số này sẽ chịu tác động của nhiều yếu tố khác để có được độ giật cuối cùng trong game
- Mặc định là 0.07
- Số càng lớn, súng càng giật

attr recover time

- Thời gian súng được đưa về vị trí ban đầu sau mỗi phát bắn (ms)
- Mặc định là 80ms. Đây là con số phù hợp với hầu hết các loại súng.

2.1.3 Nhóm thông tin cơ bản

basic author

Điền tên tác giả (không bắt buộc)

basic gun code

- Đây là trường bắt buộc. Cần đảm bảo được tính duy nhất.
- Dạng chữ cái in thường, không dấu cách. Ví dụ ak47 (đúng), ak 47 (sai)
- Thường sẽ được đặt ngắn gọn theo tên súng như ak47, m4a1, mp5a3 v..v.. hoặc what_ever, myrandom_gun v..v..

basic intro en

Phần giới thiệu bằng tiếng Anh

basic intro vi

Phần giới thiệu bằng tiếng Việt

basic name en

Tên tiếng Anh, ví dụ AK-47, FN-2000 v..v..

basic name vn

Tên tiếng Việt (thường là trùng với tiếng anh)

basic version

Phiên bản hiện tại (không bắt buộc)

2.1.4 Nhóm cho luồng CB

Đây là nhóm data bắt buộc

code base gun anim

UID object animation của CB Gun

code base hand anim

UID object animation của CB Hand

code base reload duration

Thời gian CB Gun thực hiện reload (model CB Gun sẽ ẩn khỏi màn hình trong quá trình reload)

code base sound

UID object sound của CBG

2.1.5 Nhóm chế độ bắn

firemode burst double

Chế độ bắn đôi (ví dụ AN94)

firemode burst triple

Chế độ bắn ba viên (3 rounds bust)

firemode full auto

Chế độ tự động (full automatic)

firemode single delay

Thời gian giãn cách giữa 2 phát bắn bán tự động, semi-auto (ms), giúp hạn chế người chơi click/bắn liên tục với các súng có độ giật cao như sniper rifle

2.1.6 Các data khác

gun built in suppressor

Đánh dấu nếu súng được tích hợp nòng giảm thanh (ví dụ MP5SD)

gun mag object

UID object băng đạn.

gun max shell

Số đạn tối đa có thể chứa trong súng dạng nạp đạn từng viên, không bao gồm viên có trong buồn đạn.

gun mechanic operation

Kiểu vận hành của súng:
- Bolt action (OPERATION_BOLT)
- Gas operation (OPERATION_GAS)
- Pump action (OPERATION_PUMP)
- Locked back action (OPERATION_PISTOL)

gun mechanic reload

Kiểu thay đạn của súng:
- Đặt từng viên (RELOAD_SINGLE_INSERT)
- Thay băng đạn (RELOAD_MAGAZINE)
- Stripper clip (RELOAD_STRIPPER_CLIP)

gun separated sight

Đánh dấu nếu súng có ironsight có thể tách rời, đây là súng có phần mesh ironsight (thước ngắm và đầu ruồi) gắn liền với CB Gun mesh, mesh ironsight sẽ được ẩn đi khi có attachment ống ngắm quang học lắp vào.

gun thumbnail image

UID object hình đại diện của súng

gun type

Chủng loại súng thuộc về:
- Súng trường tấn công (GUNTYPE_ASSAULT_RIFLE)
- Súng tiểu liên (GUNTYPE_SMG)
- Súng ngắn (GUNTYPE_PISTOL)
- Súng bắn tỉa (GUNTYPE_SNIPER_RIFLE)
- Súng bắn đạn hoa cải (GUNTYPE_SHOTGUN)
- Súng trung liên (GUNTYPE_LMG)
- Súng bắn góc (GUNTYPE_CORNERSHOT)

gun viewoffset

- Độ lệch của súng khi không ngắm bắn

- Mặc định là (0, 0, 0.13), hầu như được giữ nguyên cho mọi súng

2.2 Các object thuộc luồng AB

Phần này sẽ trình bày về các object thuộc lớp sâu hơn, được đề cập đến trong 2.1.1 Nhóm dành cho luồng

Cả 2 model AB HandAB Gun đều có riêng cho mình một object nằm bên trong, object này chứa tập hợp các animation, gọi là Animation set object OBJ_ANIM_BASE_GUN_ANIM). Trong đó, mỗi slot tương ứng với một animaton, được chia ra thành các nhóm

  • Nhóm liên quan tới băng đạn: magin, magin-dry, magout, magout-boltlock

  • Nhóm pose mount: mounted, mounted-fire, mounted-fire-dry, mounted-fire-dry-boltlock

  • Nhóm pose normal: normal, normal-fire, normal-fire-dry, normal-fire-dry-boltlock

  • Nhóm reload: reload, reload-dry, reload-fast, reload-fast-dry

  • Các animation khác: weapon-deploy, weapon-in, weapon-inspect, weapon-out

Tham khảo Danh sách animation luồng AB để đọc mô tả kỹ hơn cho từng animation

2.3 Các object dành cho luồng CB

Animation set

  • Dành cho CB Hand: mounted, normal, normal-left, shield

  • Dành cho CB Gun: dry, original, shoot

Tham khảo thêm thông tin về các animation này tại Khái niệm Code-based và Animation-based

Sound set

Object này chứa tập hợp các file âm thanh có mức ưu tiên khác nhau và có thể thay thế cho nhau theo quy tắc: Outdoor > Indoor | 1p > 3p | normal > suppressed

Ví dụ về ưu tiên và thay thế: Nếu âm thanh indoor chưa được chuẩn bị, hệ thống sẽ sử dụng âm thanh outdoor để thay thế.

Riêng với cặp normal > suppressed mặc dù có áp dụng cơ chế ưu tiên, nhưng vì suppressed là một kiểu âm thành khác, nó khuyến cáo được chuẩn bị để tránh tình trạng bắn súng giảm thanh lại phát âm thanh khi chưa lắp giảm thanh.

Danh sách các slot âm thanh trong sound set

  • 1p fire indoor normal

  • 1p fire indoor suppressed

  • 1p fire outdoor normal

  • 1p fire outdoor suppressed

  • 3p fire indoor normal

  • 3p fire indoor suppressed

  • 3p fire outdoor normal

  • 3p fire outdoor suppressed

  • mag in

  • mag out

  • reload finish (thường là tiếng kéo bolt)

2.4 Model băng đạn và hình đại diện

  • Một số vũ khí không sử dụng băng đạn, tuy nhiên vẫn object chứa thông tin về băng đạn.

  • Hình đại diện của súng và các bước chuẩn bị sẽ được đề cập trong tutorial tương ứng.


3. Data nhập theo thời gian thực

Các data này không xác định bằng cách điền thông tin vào các ô nhập của object mà được điều chỉnh trực tiếp trong viewport của GDE, chúng đều là các thông số khó ước lượng, cần vừa quan sát vừa điều chỉnh, bao gồm 2 nhóm:

3.1 Vị trí neo trên súng

Cột CB và AB trong bảng mang ý nghĩa “Thông số được dùng trong…”

Điểm dữ liệu

Vai trò

CB

AB

Vị trí băng đạn (magPos)

Nơi model băng đạn rời được đặt vào súng.

x

Đầu nòng (muzzlePos)

Mốc đầu nòng súng, dùng làm gốc tính hiệu ứng và spawn đường đạn

x

x

Báng súng (buttPos)

Mốc báng súng ở phần đuôi súng, dùng để xác định chiều dài vật lý của súng

x

Vị trí vỏ đạn (shellPos)

Nơi vỏ đạn xuất hiện khi bắn

x

x

Hướng vỏ đạn văng (shellEjectDirPos)

Hướng vỏ đạn bay tới

x

x

Cảm biến (sensorBase, sensorSize)

Phục vụ cho cơ chế mount và block trong game

x

Offset AB Gun (animBaseGunOffset)

Độ lệch của model AB Gun với model CB Gun

x

Offset AB Hand (animBaseHandOffset)

Độ lệch của model AB Hand so với model AB Gun

x

3.2 Vị trí và loại attachment theo từng mount slot

Điểm dữ liệu

Vai trò

Loại mount (Optic/Barrel/Muzzle)

Quyết định nhóm attachment nào tương thích, gắn được vào mount đó

Vị trí gắn attachment

Nơi đặt attachment trên súng, lưu riêng cho từng luồng CB/AB vì hai luồng dùng hai model khác không gian

Chiều dài mount

Chiều dài dọc theo mount, dùng làm cơ sở tính vị trí mặc định của attachment trên mount đó

Tỉ lệ vị trí mặc định

Vị trí attachment sẽ nằm ở đâu dọc theo chiều dài mount khi chưa can thiệp gì thêm

Góc xoay attachment

Hướng xoay của attachment quanh trục mount

Vị trí rail (nếu có)

Vị trí gắn riêng cho rail, tách biệt với vị trí gắn của bản thân attachment


Was this article helpful?
© 2026 CSCD: Vietnam Mobile Police - Tiếng Việt