Fairy's Studio制作ブログ

精霊とSimutransアドオン置き場

Simutrans Advent Calendar 2020 Day05 融合~まあじ~

どうもこんにちは!
アドカレ参加したいけどネタがないって言ってたら、2個目のネタが出てきてしまったかみやんです。(7日の記事が先に書かれていて、こっちは2回目なんですよね……)
今回は 

japanese.simutrans.com

をみながら、高速化pakを作る時にやったこと、mergeについて書いていこうと思います。
まず大前提
今回の解説では、「128japan」を使います。絶対にバックアップを取りましょう。バックアップを取らないと、万が一に失敗した場合に戻せなくなってしまうので気を付けましょう。(できないことはないですが、一部のファイルで失敗するかもしれないので、やっぱり取っておきましょう)

 

①Makeobjを入手

makeobjを仕入れてきましょう。pakと同じく、source forgeにあります。
まぁ、こういうことをする人はあらかじめ持っていると思いますから、みみにたこかもしれませんね……
②Makeobjをフォルダに配置する

なんでもいいんで、作業するフォルダを新しく作りましょう。
絶対そうしてください。じゃないと、ごっちゃになっちゃって大変なことになります。

f:id:I_doing_drive_with_fairy:20201130010206p:plain

↑ドライブ直下でもどこでもいいけど、とりあえず絶対に小分けにしようね
③pakをコピーして配置しよう

さっき作ったフォルダに、高速化したいpakを持ってこよう。
基本的に、たった1つを除いて全部1つにしてしまって問題ないですが、日本語化wikiにも書いてある通り、1つだけ注意点が。
ground.Outside.pakだけは抜いてください。

これをmergeさせたら最後、取り返しがつかなくなるので絶対にこれだけは抜いてください。

f:id:I_doing_drive_with_fairy:20201130010657p:plain

すべて選択ボタンですべて選択し、そのあとでいらないものを排除していく方が楽です。Ctrlをおしながら選択すれば、選択を解除できます。

f:id:I_doing_drive_with_fairy:20201130010932p:plain

↑ground.Outside.pakの除外に関しては、貼り付けてから検索して引っこ抜いてしまう方が楽かもしれません。まぁなにはともあれ、④に移る前に排除しましょう。

④makeobjを開く
ここまでの作業で、すべてのパーツをさっきつくったファイルに移送することができました。
で、今度はそれを繋げます。
難しくありません、簡単です。
Shiftを押しながら右クリックすると、

f:id:I_doing_drive_with_fairy:20201130011656p:plain

こんな感じに、PowerShellコマンドプロンプトを開くボタンが追加されると思うので、そこから開きます。

f:id:I_doing_drive_with_fairy:20201130011917p:plain

↑プライバシーの問題で一部隠してますが、「makeobj」ファイルから開いたので、こんな感じになってると思います。
⑤mergeする

さぁ、mergeしましょう。
さっきコピーしてきたファイルをすべてmergeするので、日本語化wiki例2を使用します。
ですが、1つ注意。PowerShellの仕様上、.\makeobj(実際には円マークです)と打たないと跳ねてしまいます。なので

.\makeobj merge ○○.pak *.pak

と(○○の部分は名付けたいファイル名にして)打ち込んであげましょう。(今回は、newにします。)
そうすれば、mergeが始まります。

f:id:I_doing_drive_with_fairy:20201130012823p:plain

↑ドゥルルルルル……って感じに、よほど重くない限りは流れていくはずです。

f:id:I_doing_drive_with_fairy:20201130013022p:plain

↑この文章が警告なしででれば、mergeは終わりです。
renaming temporary file ○○.pak.tmp to ○○.pak
が出る前にpakを移動させないでください。正しく処理された状態でないと、データが使い物にならなくなるので気を付けましょう。
⑥入れ替える

最後は、入れ替えましょう。
楽な方法は、

f:id:I_doing_drive_with_fairy:20201130013724p:plain

全て選択した後で、makeobjだけを選択解除し、

f:id:I_doing_drive_with_fairy:20201130014119p:plain

一回全部上書きしちゃいましょう。

f:id:I_doing_drive_with_fairy:20201130014317p:plain

貼り付けたやつが全部選択されて出てくるので、さっきつくったpakだけ選択解除したら、

f:id:I_doing_drive_with_fairy:20201130014444p:plain

消します。

f:id:I_doing_drive_with_fairy:20201130014521p:plain

消します。(正解なので2回いいました)

f:id:I_doing_drive_with_fairy:20201130014637p:plain

上記の手段は、楽ですが容量と時間を食うので上記の通りしなくていいです。
最終的に上の図のように、

さっき作った.pak
ground.Outside.pak
compat.tab
textフォルダ
soundフォルダ
configフォルダ

になっていればokです(これは128jpを元にしているため、toolフォルダはありません。)

⑦起動するか確かめる

やったら、しっかりテレーするか確かめましょう。
テレーしなかった場合は、何かしらの問題があるので、バックアップを元にやりなおすなりしてください。

f:id:I_doing_drive_with_fairy:20201130015409p:plain

↑テレー

テレーして、何かが足りないぞって警報がでなければ終わりです。お疲れ様でした。

メリット
当たり前ですが、メリットがあります。じゃなかったらこんなめんどいことしません(
①高速化
起動を高速化することができます。ファイル数としてのpakの数が2個にへるので、その分早くなるかんじだとおもいますが、内部事情はよくわからないので、とりあえずそうなるよって程度。
②若干のサイズ軽量化
前述のとおり、ファイル数としてのpakの数が減るので、その分軽くなります。
塵も積もれば山となる理論ですが、場合によっては数MBほど容量を軽くできます。

上記の2つが主な点です。
まぁ、基本的にはそれ目的でやる人がほとんどでしょう。
ちなみに、失敗したらヤバイ、めんどくさい、(初心者には)むずかしい以外のデメリットは、分解できなくなるかもしれないことぐらいで、これはバックアップをとることで回避できることから、デメリットはほぼないでしょう。なお、NSの場合は、この作業を行うと(pak構成がかわってしまって)接続できなくなってしまいますから、鯖を管理してるユーザーと相談しながらやりましょう。今日のアドカレは以上です。

引用:simutrans日本語化wiki(2020年11月現在の情報)
使ったもの:128japan(120)


この記事は、Simutrans Advent Calendar 5日目の記事です。
Simutrans Advent Calendar:

adventar.org