📚 Docs

Mod Peta: Fase 2

Diperbarui dengan v252 - April 2020 Oleh Marcos Elias

Pengantar

Fase 2 dari sistem mod peta Proton Bus memungkinkan adanya penumpang, lalu lintas, dan hal-hal lain di dalam game! Ini membawanya ke tingkat lain, secara harfiah Anda dapat memisahkan Proton sebelum dan sesudah fitur ini. Hampir seperti game baru!

Peringatan: Karena keterbatasan waktu, dukungan individu tidak dimungkinkan dalam proses konversi dan pengeditan. Kami menyarankan untuk mencobanya sendiri, melihat bagaimana peta lain dibuat, dan menjelajahi struktur file. Lebih baik memposting pertanyaan dan masalah terkait di grup Facebook game, sehingga solusinya membantu semua orang, dan produser mod lain juga dapat membantu Anda.

Jika Anda belum berlangganan, bergabunglah dengan saluran produser: www.youtube.com/marquinhosxp. Beberapa video dan tutorial diposting di sana.

Halaman Resmi Facebook PBSU: https://www.facebook.com/protonbusoficial Dan PBSR: https://www.facebook.com/protonbusrod.oficial/

Grup di Facebook

Grup eksklusif untuk pembuat mod: https://www.facebook.com/groups/pbsmods/ Harap hindari bergabung jika Anda hanya pemain, agar tidak memadati dengan postingan di luar topik (yang akan dihapus)!

Grup untuk pengguna: Di sini, bebas memposting tangkapan layar, tips, video, berbagai tutorial, dll., dari sudut pandang pemain:

Tip situs bagus untuk mendapatkan tekstur untuk mod: http://www.textures.com


Catatan mengenai Fase 1

Sebelum memulai peta di Fase 2, Anda harus menguasai produksi tingkat dasar untuk Fase 1. Jika Anda belum terbiasa, jangan khawatir, Anda dapat mengikuti panduan ini bersama dengan peta contoh. Persyaratan terbesar adalah memiliki pengetahuan dasar Blender, karena kita akan menggunakannya untuk mengekspor peta.

Dokumentasi lama mengenai Fase 1 ada di sini, untuk peta: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Dan untuk bus: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Selalu baik untuk menggunakan versi terbaru game! Yang lama tidak lagi didukung, versi beta terus berkembang, jadi kami selalu mempertimbangkan yang terbaru. Anda dapat menemukan build terbaru di http://pbsu.busmods.com untuk perkotaan dan http://pbsr.busmods.com untuk jalan raya.

Pada dasarnya kami menggunakan Blender 2.79 untuk memproduksi pemandangan, mengekspor model dalam format 3ds, dan membuat struktur folder dan file untuk sistem Proton Bus.

PENTING: GUNAKAN BLENDER 2.79! Pengekspor yang diperlukan untuk format game saat ini tidak berfungsi dengan Blender 2.8, tampaknya sudah dihentikan dan tidak ada yang memperbaruinya hingga saat ini. Mungkin di masa depan akan berfungsi lagi, beberapa orang sedang mencobanya.

Anda dapat mengunduh Blender 2.79 di sini: https://download.blender.org/release/Blender2.79/ Versi terbaru biasanya yang memiliki "b" di namanya. Platform tidak masalah, itu akan tergantung pada sistem Anda (Windows, Linux, atau Mac) dan arsitektur (32 atau 64 bit).

Jika Anda sudah memulai peta di 2.8, rekomendasinya adalah mengekspor ke format perantara yang dapat dibuka oleh 2.79 dan kemudian mengekspor dari sana ke game.

PENTING: MODIFIKASI PENGEKSPOR 3DS UNTUK PROTON! Pengekspor 3ds default di Blender memotong nama objek dan tekstur pada 12 karakter. Kita biasanya akan membutuhkan lebih dari itu untuk menghindari kesalahan pada nama beberapa bagian dan/atau tekstur.

Unduh plugin Blender yang dimodifikasi untuk mengekspor (file untuk Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

TUTORIAL TENTANG CARA MENGUBAH PLUGIN: https://youtu.be/0EokFmSjGdA

Jika Anda mau, alih-alih mengunduh ini, ubah file export_3ds.py di folder scripts\addons\io_scene_3ds Blender Anda. Cari [:12] dan ubah 12 menjadi angka yang jauh lebih besar, seperti 999. Itu adalah batas karakter. Tanpa ini, mengekspor ke game mungkin gagal.

TIP: SAAT MENGUNDUH BLENDER ANDA DAPAT MEMILIH VERSI ZIP "PORTABLE", UNTUK MENYIMPAN BEBERAPA VERSI SEKALIGUS.


Struktur file mod peta

Peta di Proton terdiri dari beberapa file txt (teks biasa), dan beberapa folder. Struktur utama yang penting adalah txt definisi peta dan folder, keduanya berada di dalam folder maps, yang pada gilirannya berada di folder mod game.

Contoh struktur di PC:

Struktur Folder

Txt definisi peta harus berakhiran .map.txt (misalnya, Estrada Longa.map.txt). Namanya harus unik!

PENTING: JANGAN PERNAH GUNAKAN AKSEN, CEDILLA, ATAU KARAKTER KHUSUS DALAM NAMA FILE MOD!

Di dalam txt ini kita akan memiliki struktur dasar:

[map]
baseDir=Estrada Longe 
; Folder dasar peta, yang ada di maps bersama dengan .map.txt

modelsDir=Rota 1 
; Folder model, yang ada di dalam folder tiles

textures=textures 
; Folder tekstur

mapModVersion=2 
; Gunakan nomor 2 di Fase 2!

preview=preview.png 
; Gambar layar pemilihan (16:9, mis: 640x360)

Di dalam folder dasar peta harus ada folder lain:

Folder Dasar

  • dest: Menyimpan tanda dan pelat.
  • skins: Menyimpan kulit bus peta (di dalam skins/0/pbc).
  • textures: Menyimpan tekstur. Hindari JPG, gunakan PNG!
  • tiles: Harus memiliki nama ini secara wajib. Di dalamnya ada folder model (modelsDir).

PENTING: MOD PETA PROTON BUS DIMUAT SELURUHNYA! TIDAK BOLEH TERLALU BERAT. JIKA ANDA AKAN MEMBUAT BEBERAPA JALUR PANJANG, BAGILAH MENJADI BEBERAPA BAGIAN.

Di dalam folder yang ditentukan di modelsDir, terdapat file .3ds yang diekspor dan konfigurasi:

Folder Tiles

Struktur internal folder model:

Subfolder Model

  • aipeople: Pengaturan pejalan kaki.
  • aitrains: Pengaturan kereta api.
  • aivehicles: Pengaturan lalu lintas.
  • busstops: Pengaturan halte bus.
  • entrypoints.txt: Pengaturan titik masuk lanjutan.
  • entrypoints_list.txt: Daftar sederhana titik masuk.

PENTING: MOD TIDAK DILINDUNGI! SECARA TEKNIS TIDAK ADA GAME YANG DILINDUNGI. SATU-SATUNYA CARA AGAR MOD ANDA TIDAK DIEDIT ATAU BOCOR ADALAH DENGAN TIDAK MERILISNYA.


Mengonfigurasi titik masuk

Titik masuk menentukan di mana bus muncul saat memulai permainan. Mereka harus memiliki nama unik (misalnya, 351F-10 TP, Garagem Central).

PENTING: JANGAN PERNAH GUNAKAN AKSEN ATAU KARAKTER KHUSUS DALAM NAMA-NAMA INI! JANGAN GUNAKAN GARIS MIRING JUGA.

entrypoints_list.txt

Daftar sederhana, satu nama per baris.

Daftar Entrypoint

entrypoints.txt

Menentukan posisi dan rotasi fisik di peta.

Konfigurasi Entrypoint

Ingat: Di Blender Y adalah depan/belakang dan Z adalah tinggi. Di Unity (game), Y adalah tinggi dan Z adalah depan/belakang. Balikkan Y dan Z saat menyalin koordinat!

Untuk mengetahui koordinatnya, gunakan objek Empty di Blender:

Empty di Blender

Tanda dan Tujuan

Di folder dest, buat folder dengan nama yang PERSIS sama dengan entrypoint yang ditentukan dalam txt.

Folder Dest

Di dalam setiap folder tujuan terdapat gambar:

Gambar Tujuan

PENTING: HINDARI GAMBAR LEBIH BESAR DARI 2048 PIKSEL UNTUK PONSEL!

Nama file yang disarankan untuk tanda:

  • 1.png, 2.png, 3.png (Tanda elektronik 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Tanda rollband)
  • placa1.png, placa2.png, placa3.png (Pelat samping dan depan)

Mengonfigurasi penumpang

Setiap pemberhentian harus memiliki nama unik dalam 3D (misalnya, zzPonto1).

Di Blender (3D)

Pemberhentian terdiri dari:

  1. Kubus tak terlihat (pemicu/trigger) yang disebut namapemberhentian_trigger.
  2. Objek kecil (bidang/kubus) untuk posisi penumpang, disebut namapemberhentian.000, namapemberhentian.001, dll.

Pemberhentian di Blender

TIP: Gunakan bidang sederhana untuk penumpang guna menghemat poligon.

Trigger yang Benar:

Trigger Benar

Contoh trigger yang diposisikan dengan baik:

Contoh Trigger

Contoh trigger yang posisinya buruk (tidak boleh!):

Trigger Salah

Tumpang tindih (tidak boleh!):

Trigger Tumpang Tindih

Benar di pemberhentian yang berlawanan:

Pemberhentian Berlawanan

Visualisasi dalam Debug:

Mode Debug

Dalam file .txt (busstops)

Buat txt di folder busstops dengan nama yang sama dengan pemberhentian.

Txt Busstop

[busstop]
name=Halte Alun-alun
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: Harus sama persis dengan nama yang digunakan dalam 3D (sebelum .000).
  • defPaxRotY: Rotasi standar penumpang (uji 0, 90, 180, -90).

Mengonfigurasi pejalan kaki

Bekerja mirip dengan pemberhentian: urutan objek yang mendefinisikan jalur (path). Contoh: xxCalcada1.000, xxCalcada1.001, dll.

Jalur Pejalan Kaki Blender Pejalan Kaki

Buat txt di folder aipeople:

Txt Pejalan Kaki

[automatic_setup]
enabled=1
loop=0
reverse=0

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Titik terakhir terhubung ke titik pertama (melingkar).
  • loop=0: Jalur berakhir di titik terakhir (linear).

Mengonfigurasi kendaraan lalu lintas

Sama persis dengan pejalan kaki! Folder aivehicles.

Txt Lalu Lintas

  • isBusSpawner=1: Untuk memunculkan bus.
  • spawnInterval: Tingkatkan untuk mengurangi lalu lintas.
  • speedMultiplier: Ubah kecepatan (mis: 0.5 setengah, 2 ganda).

Mengonfigurasi kulit bus peta

Tempatkan kulit (PNG) di skins/0/pbc. Game memilih secara acak. Basis kulit PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Mengonfigurasi kereta api

Logika yang sama, folder aitrains. Rekomendasi: isSpawner=0 di defaults, dan tentukan spawner manual dengan jarak tertentu.

Txt Kereta

  • randomTimeToWaitAtStart=1: Mulai pada waktu acak.
  • spawnTimeInterval: Interval antar kereta (mis: 120 detik).

PENTING: KERETA TIDAK BERHENTI! MEREKA MENABRAK SEGALANYA. JANGAN MEMBUAT PERLINTASAN SEBIDANG.


Perintah dan nama khusus dalam model 3D

  • Transparansi: Gunakan _transparent_ pada nama objek (mis: grade_transparent_).
  • Collider: Gunakan _gencol_ untuk menghasilkan collider otomatis (jalan, trotoar). Gunakan dengan hemat!
  • Collider Tak Terlihat: Gunakan _gencol_invisible_ (mis: barreira_gencol_invisible_).
  • Emissive: Gunakan _emissive_ untuk objek yang selalu menyala.
  • Zona Kecepatan Rendah: Objek _low_speed_zone_ untuk terminal (menghindari keluhan).

Low Speed Zone

  • Paksa Keluar: Objek _force_exit_ di dekat pemberhentian terakhir.

Force Exit

  • Detail Ekstra: Akhiri file 3DS dengan _det1.3ds (mis: arvores_det1.3ds). Hanya dimuat jika pengguna mengaktifkan "Detail Ekstra".

Konfigurasi tekstur berkilau

Untuk menghindari tekstur berkedip (z-fighting/flickering) di tanah, buat file .config.txt di sebelah tekstur. Cth: aspal.png.config.txt.

Config Txt


Ekstra - Tips pengoptimalan

  • Tekstur Kecil: Gunakan 256x256 atau 512x512 untuk tekstur berulang.
  • MAX 2048px: JANGAN PERNAH gunakan tekstur lebih besar dari 2048px untuk seluler!

Peringatan Tekstur

  • Collider: Hindari collider yang kompleks. Gunakan _gencol_ hanya di tanah dan dinding utama.
  • Material: Hindari banyak material pada objek yang sama.
  • Gabungkan Objek: Gabungkan pohon terdekat dengan material yang sama untuk mengurangi draw call.

Sekian untuk saat ini! Selamat bersenang-senang!