Sabtu, 01 Juni 2019

Membuat Simulasi KA Menabrak Kendaraan di OpenBVE

Dengan memanfaatkan beberapa perintah gerak objek yang digunakan dalam file .animated, sebetulnya kita dapat membuat simulasi tabrakan antara KA dan kendaraan di openBVE, yang bisa cukup realistis, tergantung dari kreativitas kita. Kali ini, akan dijelaskan cara membuat semacam simulasi sederhana untuk menggambarkan kecelakaan semacam itu. Berikut ini langkah-langkahnya:

Menyiapkan objek kendaraan dan menentukan sumbu pusat rotasinya
Objek kendaraan yang sudah diatur sumbu pusat rotasinya
Langkah pertama yakni menyiapkan objek kendaraan dan juga mengatur letak sumbu pusat rotasinya. Caranya yaitu dengan menggeser letak objek yang sudah jadi, sehingga titik 0,0,0 terletak di tempat dimana objek akan berrotasi dengan pusat rotasi di titik itu. Cara menggesernya dengan menggunakan perintah TranslateAll, baik itu di file .b3d maupun .csv. Yang membedakan adalah penggunaan koma, yakni pada file .b3d ditulis TranslateAll x,y,z sedangkan pada file .csv ditulis TranslateAll,x,y,z.

Menyiapkan file .animated dan memasukkan perintah gerak
 
Perintah untuk mengatur gerak benda. Bagian yang digarisbaahi merah menunjukkan jarak KA dan benda ketika benda berrotasi, bagian yang dilingkari hijau adalah besar sudut. Bagian yang digarisbawahi biru diberi nilai negatif yang besar agar benda tidak kembali ke posisi semula setelah KA menjauh
Langkah yang kedua, yaitu membuat file .animated yang berisi objek kendaraan tadi beserta gerakannya. Dalam file .animated yang dibuat, tuliskan perintah sebagai berikut:

[Object]
States = [alamat file]

Dibawah perintah tersebut, silakan anda tambahi perintah gerak seperti berikut ini:

RotateXFunction = if[trackDistance[0]<[jarak benda saat rotasi] & trackDistance[0]>-5 ,[besar sudut],value*(trackDistance[0]>[jarak benda untuk kembali ke posisi awal] & trackDistance[0]<700)]
RotateXDamping = [tingkat kecepatan rotasi], 1

Jarak benda saat rotasi disesuaikan dengan panjang lokomotif dan lebar objek, besar sudut dituliskan dalam satuan radian, sedangkan jarak benda untuk kembali ke posisi awal dituliskan dengan nilai negatif yang besar, agar benda tidak kembali ke posisi semula setelah KA lewat. Untuk tingkat kecepatan rotasi, semakin besar angka yang dimasukkan, maka kecepatan sudut saat rotasi akan semakin besar.
Dibawah perintah RotateXFunction dan juga RotateXDamping tersebut, anda dapat juga memasukkan perintah RotateYFunction dan juga RotateYDamping, untuk membuat simulasi semakin realistis. Untuk lebih jelasnya, silakan lihat gambar diatas.

Memasukkan objek kedalam file rute
Perintah untuk memasukkan alamat objek ke rute
Langkah selanjutnya yakni memasukkan objek kedalam rute. Yang pertama yaitu memasukkan alamat file objek kedalam rute. Caranya, di bagian WithStructure, tuliskan perintah .FreeObj(no.objek) [alamat file]. seperti pada gambar diatas.
Perintah untuk memasukkan objek di lokasi yang diinginkan
Terakhir, anda tinggal memasukkan perintah untuk memunculkan objek di lokasi yang anda inginkan. Contohnya, semisal anda ingin memasukkan objek di posisi 27818 meter setelah awal rute, tinggal tulis 27818 di bagian WithTrack, lalu dibawahnya tulis perintah berikut ini:
.FreeObj [no.rel];[no.objek];[x];[y];

Selamat mencoba!

Berikut ini adalah video hasil dari simulasi yang dibuat



Rabu, 01 Mei 2019

Mengatasi Tekstur yang Hilang di OpenBVE Versi Baru

Ada kalanya ketika suatu rute openBVE yang dibuat untuk openBVE dengan versi sebelum 1.4, ketika dibuka dengan openBVE versi 1.4 dan seterusnya mengalami bug yang ditandai dengan hilangnya beberapa objek maupun tekstur dari objek yang ada didalam rute tersebut. Penyebab dari masalah ini adalah adanya perbedaan dalam menerjemahkan alamat file yang tertulis dalam objek. Berikut ini adalah cara yang dapat digunakan untuk mengatasi masalah tersebut.

Simpan laporan dari masalah yang ada dari Route Viewer
Cara menyimpan masalah yang ditemukan didalam rute
Yang pertama perlu dilakukan adalah dengan menyimpan laporan masalah yang muncul pada Route Viewer. Caranya dengan membuka Route Viewer, lalu tekan F9, kemudian klik "Save report". Tujuan dari menyimpan laporan masalah yakni untuk mengetahui apa saja file yang hilang di rute tersebut, sehingga lebih mudah mengetahui apa saja file yang perlu diedit.
Isi dari laporan masalah, salah satunya daftar file objek yang kehilangan tekstur
Setelah di-save, lalu buka file laporan tersebut, disitu anda akan menemukan file mana saja yang mengalami masalah berupa kehilangan tekstur maupun masalah lainnya.

Mengedit file objek yang bermasalah
Editing yang dilakukan berkaitan dengan sistematika alamat file
Yang perlu dilakukan selanjutnya yaitu mengedit file-file objek yang bermasalah. Masalah yang timbul pada file tersebut adalah kesalahan dalam penulisan alamat file. Hal ini terjadi karena adanya perbedaan sistem alamat pada openBVE versi 1.4 dan sebelumnya. Perbedaan tersebut ada pada penggunaan tanda titik berulang sebagai perintah untuk keluar dari folder objek tersebut, dimana pada openBVE versi lama, tanda titik berjumlah 3 (...\) dan dua (..\) akan mempunyai arti yang sama, yakni naik 1 tingkatan folder. Sedangkan pada openBVE versi baru, tiga titik (...\) akan diartikan sebagai (..\..\), atau naik dua tingkatan folder. Sehingga, yang perlu dilakukan adalah mengganti seluruh penulisan ...\ menjadi ..\ dengan fasilitas find and replace di notepad. Lakukan hal ini pada seluruh file yang bermasalah. Apabila sudah selesai, hasilnya dapat dilihat di Route Viewer maupun di openBVE.

Selamat Mencoba!

Senin, 01 April 2019

Menyusun Rangkaian KA di OpenBVE

Ada kalanya di openBVE kita ingin menyusun sendiri dari awal rangkaian KA yang ingin kita gunakan dalam openBVE. Untuk membuat rangkaian sendiri, caranya tidak begitu sulit. Cukup ikuti langkah-langkah berikut ini:

Menentukan jumlah kereta/gerbong
Misalkan, pada rangkaian yang anda buat, anda ingin membuat rangkaian KA ketel Tegal-Maos yang membawa 2 kereta ekonomi serta 14 gerbong ketel, maka buka file train.dat di folder rangkaian yang akan dibuat, lalu di baris keempat setelah perintah #CAR, tuliskan angka 16, karena jumlah rangkaian yang dibawa ada 16 kereta/gerbong.
Jumlah rangkaian yang digunakan
Menyusun extension
Untuk menyusun urutan rangkaian yang anda gunakan, anda perlu menyusun file extension.cfg yang ada didalam folder rangkaian tersebut. Secara umum, bentuk perintah dalam file extension.cfg yang banyak digunakan adalah sebagai berikut:

[car<no>]
Object = <alamat>
Lenght = <panjang objek>
Axles = <letak gandar>

Contoh:
[car1]
Object = ..\Lok\CC 206 70.animated
Lenght = 16.1
Axles = -6, 6

Tuliskan perintah tersebut secara berurutan dari car0 hingga nomor yang sesuai dengan keinginan anda.
Memasukkan objek lokomotif

Memasukkan objek kereta penumpang

Memasukkan objek gerbong ketel
Menyesuaikan panjang kereta\gerbong
Setelah proses penyusunan extension dilakukan dan rangkaian dicek di openBVE, seringkali terjadi adanya kesalahan panjang. Untuk mengatasinya, maka nilai yang tertera di perintah .Length perlu diedit sebagaimana berikut:
Rangkaian yang panjang gerbongnya kurang sesuai
Cara mengeditnya adalah dengan mengubah nilai yang tertulis pada perintah Length: pada setiap car didalam extension hingga sesuai dengan kebutuhan.
Pengaturan length pada extension.cfg

Rangkaian yang panjang gerbongnya sudah tepat
Rangkaian yang sudah selesai dibuat dapat dicek dengan openBVE. Selamat mencoba!

Jumat, 01 Maret 2019

Membuat Efek Jalur Buntu di OpenBVE

Di beberapa rute openBVE, di akhir rute terdapat jalur yang dibuat buntu, seperti misalnya rute Purwosari-Wonogiri. Tetapi dalam rute tersebut belum ada efek yang membuat KA yang menabrak jalur buntu tersebut dapat anjlok. Karena itu, kali ini, akan dibahas bagaimana cara membuat efek jalur buntu di akhir rute openBVE. Caranya sangat mudah, tinggal ikuti langkah berikut:

1. Buka file rute, lalu temukan posisi yang akan diberi efek jalur buntu
Posisi yang akan diberi efek jalur buntu
Buka file rute dengan notepad dan route viewer. Pada lokasi tersebut, tuliskan perintah .buffer pada lokasi tersebut di file rute yang anda buka

2. Cek hasilnya dengan openBVE
Keadaan setelah diberi perintah .buffer, ketika ada KA yang lewat akan anjlok
Setelah diberi perintah .buffer, anda bisa langsung mencobanya di openBVE. Apabila berhasil, maka KA yang dijalankan akan langsung terhenti dan terguling ketika menabrak posisi dimana anda meletakkan badug tersebut.
Selamat Mencoba!

Jumat, 01 Februari 2019

Memasukkan Kabin Masinis 3D di OpenBVE

Umumnya rangkaian kereta api di openBVE menggunakan kabin atau panel sederhana yang hanya menggunakan foto kabin kereta api. Akan tetapi, di openBVE sebetulnya bisa juga menggunakan kabin 3D, yang mana dengan kabin tiga dimensi tersebut anda dapat merasakan simulasi yang lebih nyata karena bisa merasakan seperti didalam kabin betulan. Untuk menggunakan kabin 3D di openBVE, ikuti langkah-langkah berikut:

Menyiapkan objek interior kabin
Yang pertama, anda perlu menyiapkan objek interior kabin. Objek yang digunakan umumnya berformat .animated, karena didalamnya ada komponen yang bergerak ketika menambah throttle, mengunakan rem, maupun aksi lainnya. Contoh objek yang digunakan seperti misalnya dalam contoh berikut:

Contoh objek kabin 3D, dalam format .animated

Memodifikasi file panel
Silakan buka folder kereta api tersebut, disitu anda akan menemukan file panel.cfg. Yang perlu anda lakukan pertama kali yaitu menghapus file panel.cfg, kemudian membuat file animated dengan nama panel.animated. Setelah itu, buka file panel.animated tersebut, dan masukkan perintah [Include], dan dibawahnya masukkan alamat objek kabin yang anda inginkan.
Contoh perintah yang dimasukkan dalam file panel.animated, perintah position dibawahnya berfungsi untuk menyesuaikan posisi objek
Setelah itu, anda dapat mencobanya di openBVE. Selamat Mencoba!

Selasa, 01 Januari 2019

Mengatur Pemberhentian Kereta Api Lain di OpenBVE

Didalam menggunakan rute openBVE, ada rute tertentu yang cocok untuk diberi kereta api lain didepan kereta api yang dijalankan. Normalnya, kereta api lain tersebut akan berjalan dan berhenti sesuai dengan stasiun pemberhentian yang sama dengan kereta api yang dijalankan. Akan tetapi, kereta api yang lain tersebut dapat juga diberi pemberhentian yang berbeda dengan kereta api yang dijalankan. Berikut ini langkah-langkahnya.

Membuka File Rute yang Akan Diedit
Yang pertama, file rute yang akan diedit perlu dibuka dengan menggunakan Notepad dan juga Route Viewer. Kemudian, tentukan dimana saja stasiun yang akan diedit. Sebagai contoh, KA Taksaka Pagi dari Haurgeulis Cirebon berjalan langsung di Stasiun Arjawinangun, dan berhenti di Cirebon. Sedangkan KA Tegal Ekspres yang berjalan didepannya berhenti di Stasiun Arjawinangun dan berjalan langsung di Stasiun Cirebon. Maka, yang perlu dilakukan adalah mengedit perintah di Stasiun Arjawinangun dan Stasiun Cirebon.

Menentukan Perintah Stasiun yang Akan Diedit
Pada stasiun yang ada didalam rute openBVE, akan ada perintah .Sta yang akan menentukan keadaan stasiun tersebut.
Contoh perintah di stasiun sebelum diedit
Pada rute yang diedit, tampak pada perintah Stasiun Arjawinangun terdapat huruf 'p', yang artinya bahwa kereta api yang dijalankan berjalan langsung di stasiun tersebut. Sedangkan pada perintah Stasiun Cirebon, terdapat jadwal kedatangan kereta api.
Kondisi stasiun sebelum diedit pada Route Viewer. Tampak pada Stasiun Arjawinangun tertulis "pass" dan pada Stasiun Cirebon tertulis "stop".
Mengedit Perintah .Sta
Pada perintah .Sta, ada satu bagian yang perlu diedit untuk mengubah pemberhentian kereta api, yang menentukan kereta api mana yang berhenti di stasiun tersebut. Perintah tersebut tertulis pada kolom setelah nama stasiun. Sebagai contoh, pada Stasiun Arjawinangun, setelah kolom nama stasiun, terdapat huruf 'p' yang menjadikan semua kereta api yang lewat berjalan langsung. Sedangkan pada Stasiun Cirebon, disamping kolom nama stasiun, terdapat jadwal kedatangan, yang mana semua kereta api yang ada akan berhenti di stasiun tersebut.
Untuk mengatur kereta api yang berhenti di stasiun tersebut, ada beberapa pilihan yang bisa dipilih untuk mengisi kolom tersebut, yaitu:
p : Semua KA berjalan langsung
b : KA yang dijalankan berjalan langsung, KA lain berhenti
s:[jadwal] : KA yang dijalankan berhenti sesuai jadwal, KA lain berjalan langsung
[jadwal] : Semua KA berhenti
Maka dari itu, pada Stasiun Arjawinangun, karena KA Taksaka berjalan langsung, sedangkan KA Tegal Ekspres yang ada didepannya berhenti, maka ditulis huruf 'b' dan tidak lupa ditulis lama waktu berhentinya di kolom ketujuh setelah kolom tersebut. Sedangkan di Stasiun Cirebon, didepan jadwal kedatangan ditulis 'S:', karena KA Taksaka berhenti, sedangkan KA Tegal Ekspres berjalan langsung. Untuk lebih jelasnya, lihat gambar berikut.
Pada perintah Stasiun Arjawinangun, tertulis huruf 'b' yang menunjukkan bahwa kereta api yang dijalankan berjalan langsung, sedangkan kereta api yang lain berhenti. Angka 120 menunjukkan bahwa durasi KA berhenti di Arjawinangun selama 2 menit. Di perintah Stasiun Cirebon, didepan jadwal kedatangan dituliskan 'S:', yang menunjukkan bahwa kereta api yang dijalankan berhenti sesuai jadwal, sedangkan kereta api yang lain berjalan langsung
Setelah diedit, hasilnya dapat dilihat pada Route Viewer
Pada Stasiun Arjawinangun, tertulis "Player passes - others stop", yang maksudnya hanya KA yang dijalankan yang berjalan langsung. Sedangkan pada Stasiun Cirebon, tertulis "Player stops - others pass", yang menunjukkan bahwa KA yang berhenti adalah KA yang dijalankan saja.
Hasil editan tersebut akan sesuai dengan keadaan dimana KA Taksaka berjalan langsung di Arjawinangun, sedangkan KA Tegal Ekspres berhenti. Sedangkan di Stasiun Cirebon, KA Taksaka berhenti dan KA Tegal Ekspres berjalan langsung.

Selamat Mencoba!

Sabtu, 01 Desember 2018

Membuat Pintu Kereta Bisa Membuka di OpenBVE

Tentu saja apabila pintu kereta di OpenBVE bisa membuka saat berhenti di stasiun, akan membuat simulasi menjadi semakin mirip dengan kenyataan. Untuk membuat pintu yang dapat membuka sendiri, caranya ada berbagai macam, tergantung pada jenis pintu dan juga jenis kereta. Pada kesempatan kali ini, saya akan membagikan bagaimana cara membuat pintu yang bisa membuka sendiri dengan model pintu biasa (dengan engsel). Berikut ini langkah-langkahnya:

Menyiapkan objek kereta tanpa pintu dan objek pintu
Yang pertama harus disiapkan adalah dua jenis objek ini. Objek kereta tanpa pintu dapat dibuat dengan menghilangkan pintu yang sudah ada pada suatu objek dengan cara mengedit file teksturnya. Untuk itu, dengan software Paint pun dapat dilakukan. Sedangkan untuk menyiapkan objek pintu, mungkin anda perlu membuatnya sendiri. Untuk membuat objek pintu, anda dapat mempelajari dasar-dasarnya di sini
Objek kereta tanpa pintu
Objek pintu, sumbu y harus melekat pada objek sebagai engsel pintu
Menggabungkan objek kereta dan pintu
Untuk menggabungkan kedua jenis objek ini, caranya yakni dengan menggunakan file .animated. Caranya, yaitu dengan menuliskan perintah berikut ini didalam file .animated yang anda gunakan.

[Object]
States = <file>
Position = <x>,<y>,<z>

Contoh:
[Object]
States = pintu.b3d
Position = -1.4,1,-10.59

Pada pintu tertentu yang lokasi engselnya berlawanan, maka pintu tersebut harus diputar 180 derajat. Untuk melakukannya, caranya yakni dengan menuliskan perintah RotateYFunction dengan besar sudut sebesar π radian, atau sekitar 3,1416. Contohnya seperti berikut ini:

[Object]
States = pintu.b3d
Position = -1.4,1,12.59
Rotateyfunction = 3.1416

Objek kereta yang sudah digabungkan dengan pintu. Dalam kotak biru, tampak perintah yang digunakan untuk memasukkan objek pintu. Kotak merah menunjukkan perintah untuk objek pintu yang harus diputar 180 derajat.
Menambahkan perintah untuk memutar pintu
Untuk membuat pintu kereta dapat berputar ketika berhenti di stasiun, digunakan dua perintah yang dimasukkan kedalam file .animated. Berikut ini dua perintah yang digunakan untuk memutar pintu kereta.

RotateXDirection = 0, <-1 atau 1> , 0
RotateXFunction = <leftdoors atau rightdoors>*<sudut>

Contoh:
RotateXDirection = 0, 1, 0
RotateXFunction = rightdoors * 1.6

Angka 1 atau -1 yang dimasukkan pada perintah RotateXDirection menentukan arah putar pintu. Angka 1 menunjukkan arah putar pintu searah jarum jam, sedangkan arah -1 sebaliknya. Pada perintah RotateXFunction,  sudut yang dimasukkan adalah dalam satuan radian, bukan dalam derajat. Untuk membuat pintu kanan dan kiri terbuka sesuai posisi peron, anda perlu memasukkan rightdoors pada pintu kanan dan leftdoors pada pintu kiri.
Kotak merah menunjukkan penggunaan leftdoors dan rightdoors pada pintu kanan dan kiri. Sedangkan kotak biru menunjukkan perbedaan perintah RotateXDirection pada pintu dengan arah putar yang berlawanan
Setelah itu, anda tinggal men-save dan mengecek hasilnya dengan OpenBVE
Keadaan pintu sebelum kereta diberangkatkan
Keadaan pintu setelah kereta diberangkatkan











Selamat Mencoba!