shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

Simutransで, 信号場アドオン作成 / 駅アドオンの信号場アドオン化

Simutrans(http://japanese.simutrans.com)は, 素晴らしい.

駅は3タイプの積荷の取扱可否があります。
・旅客
・郵便
・貨物
で、何も取扱できなければ信号場になるはずです。

pak64では Signal Stop / 信号所セット アドオン/railtool - Simutrans日本語化・解説
pak128では Signal Stop / 木造信号所  Addon128/RailTools 1 - Simutrans日本語化・解説 が出てました。

増解結の本体改造に先立って、信号場の作り方を調べてみました。

[用語]
ここでは"信号場"とします。Wikipedia(信号場 - Wikipedia)に従って。
留置場、引き上げ線、検車場、操車場 ... いろいろあるので、何と呼称するべきか微妙なところ。
ソースコード場としては、enables が NOT_ENABLE : 0。
取扱を何もしないhaltestelle ~ 停車場 というだけです。

[アドオン素材の場所]
私はpak64でやっているので、pak64のアドオン素材の場所をメモ。
pak64の駅のソースの場所 : simutrans / Code / [r1997] /pak64/player
なぜ、駅が player っていうディレクトリにあるのだろう... わかりにくいなあ。

 

[アドオン datファイルの指定の仕方]
アドオン開発/datファイル記述リファレンス/building(建築物)2 - Simutrans日本語化・解説 より、

enables_pax= 1 駅用。このフラグが真(1)ならこの駅は乗客を集めることができます
enables_post= 1 駅用。このフラグが真(1)ならこの駅は郵便を集めることができます
enables_ware= 1 駅用。このフラグが真(1)ならこの駅は貨物の受け入れと集荷ができます

これらを削除 / コメントアウト(行頭に # )でOK。
何も指定しないと makeobj がエラーを出すかと思ったのですが、大丈夫でした。

 

[駅アドオンの信号場アドオン化]
バイナリエディタで、0x005E番目の32ビットを 00 に変更
ここが 01 だと旅客、02 だと郵便、03 だと旅客+郵便 ... 
とりあえず、バイナリエディタで見ると冒頭あたりに SimObjects 0.1.3exp って書いてあるアドオンなら、これでいけると思います。

Simutrans本体改造で学ぶC/C++ 〜 全駅強制旅客郵便貨物駅化

以下のような簡単な改造で、全駅強制旅客郵便貨物駅化できます!

f:id:shingoushori:20190202205357p:plain

Visual Studio Code での改造例

このように、enum は同じ数字に複数の愛称を持たせることができます。

同じセーブデータを改造前後のビルドで読み込ませると、こんな感じになります。

f:id:shingoushori:20190202211321p:plain

改造前後の動作比較 左:改造前 右:改造後

 

ピカブイ/ポケモンGO、xR

バーチャルであっても、いやバーチャル故に、肉体感覚
どうしようもなく、生身の身体的にもキャラクターにもバイタリティ的にも
肉体的なそれらでコントロール、それらがコンテンツかされている感じが
ヒシヒシとする

ポケモンレッツゴー ピカブイ で辛いのが、
ポケモンGOスタイルのボールを投げるモーションだ
どうしようもなくゲーム的運動神経が悪い私には、どうしようもなく苦しい
大好きだったはずの単純なレベル上げができない、どうしようもない絶望感
この肉体から解き放たれたいのに 忌々しい
運動神経が悪いのに絡みついた暗黒の私の小学生時代が、
夏草が草刈機で焦がされたような胃酸の味わいが、はらわたから煮えくり返ってくる

xR、VRであってもそれは変わらない

例えば、現実世界で出不精な私は、htc viveを購入して2週間目に入ろうとしても、
まだVRChatに出向けていない
パソコンのスペックから部屋のスペース不足、
如何しようも無い現実の人間関係の都合まで
Virtual であるとしたって所詮は現実の内側なんだ、陸続きでしかない

その怪しい敷居に、他の現実での旧来型の敷居と同様かそれ以上に苦しむものとして、
どうその苦しみを如何としていくのか
というあたりに、後発というどうしようもない身の程ゆえの弁えと度胸が問われるのだろう

Simutransのセーブデータ (非圧縮xml のみ) を読み込み->書き出し ~ 「passenger_factor」を設定

[趣旨]
Simutransのセーブデータ弄りであるとか、もちろん信号処理のなにやらづくりに向けて、デスクトップからファイルをドラッグする処理 〜 を準備します。

 

今回は、Simutransのセーブデータ (非圧縮xml のみ) をパースしてエディットして、また書き出しです。

ちょっとしたエディットとして、「passenger_factor」を設定します。

↓ Simutransのセーブデータ (非圧縮xml のみ) をドラッグアンドドロップすると、「ダウンロード」と書かれたリンクが追加されます。"output.sve"としてダウンロードできるはず。開発環境は、macchrome

Drop files here
passenger_factor :

                   

 

 

 

 

[参考文献]

クライアントサイドJavaScriptでXML文書のDOMをパースする

XML Parser

Blob - Web API インターフェイス | MDN

HTML非表示・使用不可メモ(Hishidama's disabled/visibility/display Memo)

JZZ.js

MIDIファイルをいじるWebコンテンツ on はてなブログ 〜 の検討
今回は、jazz-softさん作の、 JZZ.jsでやってみました

Drop files here

                                                                   

 

いろいろと多機能そう。
とりあえず、MIDIファイルのblobでの読み込み/書き出しはそれなりに簡単にできた。
ノートの追加がtickベースで、on/offそれぞれでも、長さ指定でもできそう。

MidiPlayerJS + MidiWriterJS

MIDIファイルをいじるWebコンテンツ on はてなブログ 〜 の検討
今回は、grimmdude (Garrett Grimm) さん作の、 MidiPlayerJS MidiWriterJS
でやってみました

Drop files here

                                                                     

MidiWriterJSの機能が最小限しかできていなさそう
同じ方が作ったものながら、
MidiPlayerJSとMidiWriterJSとではインターフェースが似て非なる
特に苦しいのが、各トラックにて複数ノートを同一時間に配置できるのが、
On/Offが全く同じタイミングの時のみ

<MIDIのライブラリのトレンド>
どうにも、MIDIファイルのblobでの読み込み/書き出しをやれる
JavaScriptのライブラリが意外にも全然見つかりません
見つかるのは次のようなものばかり
・楽器として演奏するためのMIDI信号いじり
・Playerとして再生する
・とりあえず何か書き出す

<CDN : Content Delivery Network>
はてなブログのようなところで
JavaScriptのライブラリを参照するにあたって壁になるのが、ファイル構成
画像しか置けない ましてやNode.jsのモジュールなんぞは置けない
ありがたいのが、CDN
CDNに対応できてるライブラリであれば、<script src="hoge">  で参照できる
できるライブラリを探すのにも困るわけだが ...
今回のライブラリで検討したのは、とりあえずCDNで参照できたから
そこが全てであったりする

midi-player-js CDN by jsDelivr - A CDN for npm and GitHub
midi-writer-js CDN by jsDelivr - A CDN for npm and GitHub

できそうでもやってみるとできないことばかり ...

 

mac で PHP を localhost でやり始めるにあたってのメモ

2018 -> 2019 の年越しは、PHP やりはじめとなりました。

で、はてなブログに埋め込みたいのだが、
.php ファイルとして別立てにする必要があるらしく、
それがはてなブログ単体ではできない。腰砕けである。

が、とりあえずローカルでやってみる。
すると、もっと腰砕けなことに。

Hello World が出ない。

PHP本家の最初のチュートリアルから確認。
PHP: PHP を使用する初めてのページ - Manual

<?php echo '<p>Hello World</p>'; ?>
これが、出ない。なんかコメントアウトされる。

↓ 調べてみたところ、
↓ /etc/apache2/ なんてところの httpd.conf なる、
↓ 書き込み制限がついてるようなファイルを vim で弄る羽目に

MacでPHPを有効にする方法 - Qiita

MacでApacheの設定ファイルを編集する - Qiita