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:
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..
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. |
attr draw delay | - Thời gian rút súng súng (ms) khi sử dụng luồng CB |
attr muzzle velocity | - Gia tốc đầu nòng (m/s). |
attr rate of fire | - Tốc độ bắn (rpm) |
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 |
attr recover time | - Thời gian súng được đưa về vị trí ban đầu sau mỗi phát bắn (ms) |
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. |
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: |
gun mechanic reload | Kiểu thay đạn của súng: |
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ề: |
gun viewoffset | - Độ lệch của súng khi không ngắm bắn - Mặc định là |
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 Hand và AB 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 |