忍者ブログ

slack diary

鉄道模型シミュレーター(VRM)を紹介するホームページ「CaldiaのVRM Room」の更新情報と、Caldia本人の日常ぐだぐだ日記。

VRMNXpy参戦!

VRMNXをやりたいだけのためにデスクトップPCを渋々Windows10にアップグレードしました。
遂にVRMNX参戦します。

と言っても本業のデスマーチは常時進行中で暇ができた訳ではないので、触るペースは非常にスローペースになると思われます。
仕事はOffice、息抜きにPythonと言った感じ。

ひとまずvrmapiの仕様把握とデバッグ体制の強化(内部変数の見える化など)を中心にやっていきます。
その後は自作メソッドのライブラリ化とデータのファイルIOぐらいは目処つけたいところ。



Pythonのお作法がよく分からんのですがJavaとかC#やってる身としてはvrmapiはちょっと見えにくい&取っつきにくい感じ。

例えば「ListCar」だとVRMでは

ls=list()
vrmapi.LAYOUT().ListCar(ls)

と書きますが、C#的なノリだと

ls = vrmapi.LAYOUT().ListCar()

って書きたい。
Pythonだとデータ型定義が無いので出来ないんかな?

また、普通のPythonのdict型やlist型はprint()で中身を表示できるのでステータス確認が楽ですが、vrmapi.LOGだとその手の出力はやってくれないみたいなので、自作メソッド作って何とかするかも。

とりあえず少しずつ触ってみたいと思います。



1/31追記

>ls = vrmapi.LAYOUT().ListCar()

よく考えたらこれは駄目だ。
これだとls内のデータ参照先はVRMが使用(保証)している値が入ってるので、ClearとかAddとかするのはNG。

ls=list()
vrmapi.LAYOUT().ListCar(ls)

これだと値のディープコピーでVRMから切り離された(保証外)の値になるので適当に扱っていい。
VRMにアクションする時はこれらの値をヒントにvrmapiを介して制御する。
これにより外部からの直接パラメータ書き換えを許さず、動作を保証する必要のあるVRMとフリーダムに扱っていいPythonの環境を分離して共存させているわけですな。
納得!すごーい!
PR

コメント

1. 無題

お待ちしてました!

2. 無題

お待たせしました。
実質一人でカリカリ記事アップしてくれてて、何というかありがとうです。

おそらくVRMやPythonに対するアプローチの仕方がそれぞれあると思うので、適時情報をアペンドしていきたいところです。
今後ともヨロシク!

最新コメント

[05/30 Caldia]
[05/19 C-PON]
[10/03 vrmkyobuilding]
[05/10 Caldia]
[05/04 USO800鉄道]