AKAGI Rails

鉄道模型シミュレーターNXで遊んでいたはずが、気づいたらPythonなども。

細かいようで細かくないVRMの近郊型E231系

E231系

東海道線・高崎線・宇都宮線を中心に活躍する近郊型E231系は,VRMでは2 (+1)形態がリリースされています。すべて,V9Bパッケージでの収録です。

www.imagic.co.jp

  • 国府津所属 K24+S11編成
  • 小山車 U524+U105編成 (強化スカート交換後)
  • 小山車 U501編成(強化スカート交換前)

原型スカートが再現されているU501編成は「VRM4互換用」という位置づけのため,一部形式のみ。

小山車がいわゆる「前期型」のスタイルなのに対し,国府津車が「後期型」ということで, グリーン車組み込みに伴う組成変更,トイレの設置位置変更,9・10号車のセミクロスシート化,クーラーの大型化,車外スピーカー設置準備工事などがモデルでも大体再現されています。だいたい。

奥が国府津車(後期型)

後期型ではクーラーが大型化され,出力もアップ。夏場のラッシュ時には体感できる程度には効き目が違います。

1号車(熱海・伊東方)は電連がない

小山車の特徴は,客用扉に貼ってあるシールもそうなんですが,クハの編成番号表記がフロントガラス貼り付けではなく,運転室内に番号札がぶら下がっていることです。 U524+U105編成ではこの形態が再現されています。(製品紹介ページは修正前のまま載っている) ユーザーテクスチャでの書き換えにも対応。

しかしU501編成は,国府津車と同様の形態のまま修正されていません。

このほか,U524+U105編成も一部の車両に車外スピーカー設置準備工事の穴(を塞いだフタ)がモデルに残っているなどのエラーがあります。

細かいようで詰めが甘いE231系のラインナップです。という,宣伝ではなく嫌味でしたw

Lenovo Tab One TB305FU 使用感レビュー

YouTubeで動画を見るのと電子書籍を読むためにAndroidタブレットが欲しかったので,AmazonのセールでLenovo Tab One TB305FUを購入しました。セール時価格で¥21,300-。

第一に,コスパはかなり良い。 何を買っても高い昨今,2万円ちょっとでしっかり動くAndroidタブレットが手に入るのはありがたいです。

YouTubeを見るのにはあまり問題ありません。

スタンド付きケースが付いていたのも良いですね。すぐにテーブルの上にちょんと置いて使えます。 スタンド部分もすべてプラスチック製で,そのうち壊れないかが心配ですが。

一方でディスプレイは値段なりのもののようです。

ディスプレイ
画面サイズの単位 8.7 インチ
ディスプレイ最大解像度 1340x800
ディスプレイの種類 IPS
ネイティブ解像度 1340x800ピクセル
アスペクト比 16:10

8.7インチ画面なので1340x800(約180 dpi)は解像度不足を体感します。

視野角があまり広くなく,視界の正面に置かないと,画面の端っこが暗く見えたり,色味が変わって見える点も不満要素です。

・・・正直,これで電子書籍を読むのはしんどいかも。

iPad miniに匹敵する小型軽量・高解像度のAndroidタブレットがあったらよかったのですが,なかなかありませんねー。 (BPad GTはスペックと値段は悪くない・・・けど・・・)

カント付きフレキシブルレールとY字ポイントを出してくれー

大本営よりクロッシングレールとダブルスリップスイッチの予定が発表されました。

imagic.games

それもまあいつかは欲しいんですけども、それよりも先に出してほしいものが。

  • カント付きフレキシブルレール
    • 私にとっては緩和曲線の表現に必須。
  • Y字ポイント
    • ローカルシーンに必須の両開き分岐。木まくらぎレールをわざわざラインナップしているのに片手落ち。

Zio氏の意見に全く同じです。

緩和曲線コレクション

ダブルスリップスイッチは、鉄道模型では配線をコンパクトにまとめられて便利なんですけど、 リアル鉄道ではあんまり使われていないもんで、リアル志向のワイドバラストレールのラインナップとしては位置づけが微妙です。

そもそもクロッシングレールをわざわざ作るんであれば、クロスポイント(シーサース)もちゃんと作ってほしいところ。 鉄道模型でもリアル鉄道でも、ダブルスリップスイッチよりシーサースのほうが使うでしょ?!

シーサースクロッシング

果たしてカント付きフレキシブルレールとY字ポイントさえあればNXワイドバラストレールが売れるのかどうかは知りませんけど、 少なくとも私にとっては、この2つがないのではレールのシリーズとして満足できません。 (Y字ポイントはAdvanced Trackでも未収録だったかも?もう出てたら誰か教えて。)

ポイント部だけ木まくらぎにしても見た目が馴染むところが、唯一NXワイドバラストレールの利点です。今のところ。

・・・っつーか、1年前にも全く同じことを言ってます

しかし、普及しないものはラインナップも増えていかないと思い、NXワイドバラストレールも少しずつ使い始めています。 カーブはカント付きフレキシブルレールで緩和曲線を挿入するため、いまだにAdvanced Trackを混ぜて使っていますが。

逆に混ぜて使うのも悪くない?

100%満足して使っているわけではありませんからね。報われるといいんだがなー。

カント付きフレキシブルレール

Y字ポイント

大事なことなので2度書きました。出たら私が買うので。

HDNXモデルって実はアレの布石だったら…という妄想

VRMNXの新装システムパッケージHDNX01がデビューしましたが、分かりやすい真新しさがないからか、値段が高いからか、あんまりウケてないみたいですね。・・・まあ両方だろうという感じですけども。

で、その受け売りなんですが

HDNXシリーズ 鉄道模型シミュレーターNXの新しい超高精細ポリゴン車両モデルパッケージシリーズです。 国鉄時代の車両から現代の車両まで、いろいろな高精細車両モデルがシリーズ化されます。

このモデルデータは、新しいGPU水準に合わせて、従来モデルの数倍の高精細ポリゴンで制作しています。細部ディティールを精密なポリゴンで実装しています。(※VRM5互換部品は、除きます。)

さらに、HDNX01パッケージについては

鉄道模型シミュレーターV0のレール/ストラクチャーと同等品を収録しています。 システムパッケージとしてご利用いただけます。

とされています。

まずジャーゴンが多くて

  • HDNX」ってなんですか。(文字先行ではアルファベットのブランドはウケない。)
  • ポリゴン」ってなんですか。(・・・ポケモン?)
  • ディティール」これはまあ鉄道模型用語としては受容されてる
  • 「鉄道模型シミュレーターV0」←あんまり浸透してない
  • システムパッケージ」ってなんですか。

もちろん長らくVRMとお付き合いしていると何言ってるか分かるんですけれども、VRMNXの新装システムパッケージで狙っているであろうターゲット層・・・が仮にあるとして、その層にはまるで分かりそうにない言葉で訴求されています。

さて、本題。

なぜ同じ車両で高精細3Dモデルが出てきたのか。

LODへの布石だったら・・・?

  • LODとは
    • Level of Detail (ディティールの段階)の略で、3DCGの用語。
    • 同じモノでも、視点の近くにあるときは高精細モデルで、遠くのときは粗いモデルで表示する手法。
    • 高精細モデルは視点の近くにあれば有効だが、遠くに置いたら細かい凹凸や柄までは見えません。
    • 「遠くにあれば粗が目立たない」ことを逆手にとって、粗いモデルに切り替えて描画するというのがLODのテクニック。
    • 粗いモデルはCG描画の負荷が少ないので、ゲームなどをリアルタイムかつ高速に動かすには有効。
    • LODにより軽くなった分、より遠くのものを描画するのにパワーが割けます。
    • 遠くまで描画したい近年のゲームではもはや定石。
    • 遠景用の粗くしたモデルを、高精細モデルとは別で用意しておく必要がある。
    • 最近は高精細モデルから自動で粗いモデルを生成できるツールもある

つまりこう考えられます。HDNXモデルを最高精細モデル(LOD Level 0)、旧製品モデルをその次(LOD Level 1)、さらに自動ツールで粗くしたもの(Level 2, 3)を用意しておくと、将来の次世代VRMビュワー・・・が仮にあるとして・・・ではLODによって広い描画距離が実現できるのではないか!

こういう事情なら、敢えて旧製品と同じ車両形式で、モデルの基本骨格やテクスチャーの色味を揃えて、あまり変わり映えなく作ってあることにも一つの筋が通るのではないでしょうか。だって同じモノを表示するのに使うんだから。

・・・期待のし過ぎ?

もしくは、Unreal Engineベースの「鉄バース」に載せるために実験的に作ったものを放出してるとか?(Unreal EngineはLODに対応している。)

で、だれか買いますかコレ?話題性のものとしてはちょっと高いけど、誰も買わないのなら逆に天邪鬼的にちょっと欲しい・・・。門型の踏切警報器は普通に欲しい。ぶっちゃけ583系はもういらない。EF81もかな。253系はうーんちょっと欲しいかも。

583系のHDNXモデルに期待しつつも旧モデルをおさらい

I.MAGIC Blogで立て続けに予告されている国鉄583系HDNXモデルに期待を寄せつつも、今回はVRM5第0号から引き継がれてきた旧モデルをおさらいしてみようと思います。

(なぜなら持ってるのにあまり使ったことがないからw使わないともったいないからね。)

国鉄583系「はつかり」(NX-V0パッケージ所収)を中心に見ていきます。奥にいるのはVRM5追加キット所収のJR秋田車(VRM5追加キットからのアンロックで入手可)。

583系(左:JR秋田車、右:国鉄仕様)

ヘッドライト点灯は当たり前。

パンタグラフ周りの「走る変電所」。旧製品だが十分精密・・・?

先頭車スカート周り。ATS標記にも注目。

サロ581。車端部のジャンパ線やブレーキ管の表現は省略されており、床下はサッパリした印象。

サシ581。簡易運転台が特徴。

運転台視点。ワイパーがとても邪魔。

最後に、JR仙台車(これもVRM5追加キット所収)を少しだけ紹介します。

床下は郡山工場によるグレーのお仕立て。

HDNXモデルに期待すること

台車やパンタ周りを高精細化するのもまあいいのですけれど、個人的に期待したいのは運転台です。

VRMNXではビュワー起動時に運転台視点になるのがデフォルトですが、あまり手の込んだモデリング・テクスチャリングはされていません。

さすがに計器を動かすところまでは現実的ではありませんし、細かく作りこんでも仕方がない部分はあるにせよ、「精密」をウリにしているVRMがユーザーにはじめに見せるビュワー画面としてはかなりお粗末です。ゲームデザインとして問題。 台車やパンタグラフの精密さがウリなのだとしても、そこに気が付く前に、興が冷めてしまいかねません。

先頭車のワイパー位置も、運転台視点で走らせる想定がある以上、視界の中心を遮り前が見えない配置は好ましくありません。 ホンモノだってさすがにそんな場所にはないと思うんですけどね。 これは現行モデルに対しても調整を入れてほしいところです。

新装のシステムパッケージの再来=入門パッケージとしての位置づけに来るものだと思われるので、 ものづくりにプレイヤー目線を持ち込んでほしいですね。

あとは、客用扉の折戸が開閉するようになるのかも気になります。あんまり使ってる人いない機能だけど。

RUNNING TRAIN! をプレイした感想

Steamで颯爽と早期アクセスデビューを果たしたRUNNING TRAIN! ~走ル列車~ を購入したので簡単にレビューします。

store.steampowered.com

RUNNING TRAIN! の概要

RUNNING TRAIN! は架空の鉄道路線を運転するシミュレーションゲームです。

最大の特徴は、レンダリングエンジンにUnreal Engineを採用した美麗な3DCGでしょう。

鉄道シミュレーションゲームのジャンルは昔から存在しますが、CG表現という点では、多くは他ジャンルのゲームに遅れを取りながら少しずつ進んできていました。 そんな中本作は、個人開発でありながら最新世代のゲームエンジンを採用し、グラフィック面でかなり強いインパクトを与えてくれます。

なぜUnreal Engine採用が最大の特徴になるのか

まず、Unreal Engineといってもピンとこない方もいるでしょうから、Unreal Engineのことから話します。

Unreal Engineは、近年かなりの実力を誇るゲームエンジンで、写実的なCG描画を特徴としています。 リアルタイムレイトレーシングや最新のライティング技術によって、太陽光、ヘッドライト、駅の照明、街灯などで作り出す陰影表現が非常に豊かです。

鉄道ゲームというより、「高品質な鉄道映像作品の中を自分で運転できる」という感覚に近いものがあります。

Unreal Engineは、FINAL FTANTASY VII REMAKEのような超大手ゲームも利用しています(→AUTOMATIONの記事)。 鉄道ゲームでも、『電車でGO!!』が一世代前のUnreal Engine 4を使っていましたが、新規開発は中止になってしまいました。

我らがI.MAGICも、Unreal Engineを引っ提げた「鉄バース」プロジェクトにVRMのポリゴンモデルを投入していましたね(→I.MAGIC Blog)。「鉄バース」自体は音沙汰がなくなってしまいましたが。

ゲームエンジンに負けないモデリング

どれだけゲームエンジンが優秀でも、肝心のモデルが粗ければ台無しです。 しかし本作では、車両やストラクチャのモデルもゲームエンジンに押し負けないくらい高精細に作り込まれています。 レールや架線柱などの鉄道固有のアイテムは『電車でGO!!』よりもリアル、というか忠実です。

草木の表現もリアルです。近年のゲームでは当たり前になりつつある技術ですが、鉄道ゲームでここまで自然な植生表現を見せられると新鮮ですね。

物理エンジン

これは普通に運転しているだけでは気づきにくいかもしれません。 車両の足回りを外部視点でアップにして観察すると、なんと台車のバネが伸び縮みしながら走っています。 最初に見たときは思わず「そこまでやるの?」と声が出ました。

運転台視点の車体動揺ともどうやらリンクしているし・・・これは一体どういう物理シミュレーションなんだ?

ちょっと面白いのは、その物理シミュレーションの副作用と思われる現象です。

初期バージョンではマップ上の一部でレールの位置がわずかにずれて接続されており、そこへ進入すると車両が脱線して吹っ飛んでいく現象があったそうです。

VRMNXならさしあたり、ガタガタしながらも何事もなかったかのように通過してしまいそうなものですが、逆に物理演算への本気度を感じてしまいます。

なお、この問題は現在では修正されている模様です。

RUNNING TRAIN!のゲーム性

ゲーム性としては基本的に「走って」「止める」です。 その意味では『電車でGO!』などと大きく変わるものではなく、良くも悪くも王道の鉄道運転ゲームと言えるでしょう。

しかし、1100型電車が直通空気ブレーキの操作になっていて結構玄人向き。これでブレーキをばっちり決められると、なんとも言えない気持ちよさがあります。

スコアに現れない渋味のあるゲーム性ってとこですね。

また、舞台が架空路線・架空車両であることについては賛否が分かれるかもしれません。 個人的には少し残念な気持ちもあります。

でも、仮に実在路線だったら「ここが違う」「あそこが足りない」と粗探しばかりしてしまいそうなので、これでよいのかも。

RUNNING TRAIN! の粗探し

そうはいっても見えてしまった粗がいくつか・・・

  • 力行性能のシミュレーションが微妙
    • 113系ベースなんだと思いますが、それにしては高速域の加速の伸びが良すぎる…
  • 緩和曲線・カントがちょっと変?
    • 緩和曲線がないか、Rが大きいただの円曲線がくっついてるだけのような所が多い気がしています。
    • VRMNXで緩和曲線を再現していたりする私のビョーキかもしれませんが…
  • 速度制限もちょっと変?
    • カーブの速度制限がRにしては速いとか遅いとか、制限がありそうなところにない、みたいな所が…

と、書き並べましたが正直なところ、全体のCG描写のレベルが高いからこそ気付いてしまった部分がほとんどです。 粗というには重箱の隅にも程があります。

本来だったらこんな文句を挙げてはいけませんね(笑)

まとめ

いくつか細かいツッコミどころはあるものの、RUNNING TRAIN! の価値はそんなことでは損なわれません。 マップや車両の作り込み、ライティング、物理表現など、インディーズゲームの早期アクセス版としては非常に意欲的な内容になっています。 今後のMOD対応の拡充にも期待が高まります。将来の他社作品への影響も大きいのではないでしょうか。

一方で、『電車でGO!!』が一区切りをつけてしまったことに象徴されるように、Unreal EngineのCGのレベルに求められる、モデル制作、マップ制作、etc. が開発者自身やMOD作者の手に負えるかどうか、持続可能となるかどうかには、一抹の不安も覚えるところです。

まあとにかく、RUNNING TRAINは早期アクセス版価格で¥2,980なんですから、四の五の言わずに試しに遊んでみてください。

VRMNXpyをイチからインストール【撮る夫くんも】

パソコンの調子が悪かったので新台入替といたしました。

VRMNXも再インストールです。 ここでは、VRMNX同梱のPythonエンジンで使う、撮る夫くんなどのパッケージのインストールを記録しておきます。

ChatGPTによる概要

VRMNXのインストール場所

VRMNXのインストール自体はデフォルト通りにやりました。

C:\Program Files\I.MAGIC\鉄道模型シミュレーターNX に入りました。まあ普通です。

VRMNXのバージョンは 6.1.0.570 です。

Pythonエンジン

C:\Program Files\I.MAGIC\鉄道模型シミュレーターNX\python\python.exe がVRMNXのPythonエンジンです。

Pythonのバージョンは3.10.11でした。

プリインストールのパッケージ

標準モジュールのほかにVRMNXのPythonエンジンにプリインストールされていたサードパーティのパッケージを、 VRMNXのPythonエンジン経由でpipコマンドを叩いて調べます。

まずは、Windowsの検索バーに「cmd」と入力してコマンドプロンプトを起動します。 コマンドプロンプトに、以下のコマンドを入力して実行します。

>"C:\Program Files\I.MAGIC\鉄道模型シミュレーターNX\python\python.exe" -m pip list
Package         Version
--------------- -------
joblib          1.2.0
mpmath          1.3.0
numpy           1.24.2
pip             23.1
python-dateutil 2.8.2
setuptools      67.6.1
six             1.16.0

モジュール検索パス

VRMNXのPythonでモジュールを import するときに、モジュールの実体(プログラムソース)を探しに行く場所のリストです。

>"C:\Program Files\I.MAGIC\鉄道模型シミュレーターNX\python\python.exe"
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\python310.zip', 
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\DLLs', 
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\lib', 
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python', 
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\lib\\site-packages']

モジュール検索パスのさいごにsite-packagesがいますね。

撮る夫くんのインストール

ものは試しで、管理者権限をつけずに pip install コマンドを走らせてみましょう。 現在は --user オプションをつけて実行したのと同じになります。

GitHubの撮る夫くんリポジトリをzipでダウンロードしてきて・・・

>"C:\Program Files\I.MAGIC\鉄道模型シミュレーターNX\python\python.exe" -m pip install vrmnx-toruo-master.zip
@rem なんとzipのままでOK

こうするとユーザー環境のsite-packagesが `%APPDATA%\Roaming\Python\Python310\site-packages' に自動的に作成されます。

このタイミングで、先ほどとおなじようにsys.pathを調べると、Pythonエンジンのモジュール検索パスにも自動的に追加されていることが分かります。

['',
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\python310.zip',
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\DLLs',
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\lib',
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python',
 'C:\\Users\\my_windows_username\\AppData\\Roaming\\Python\\Python310\\site-packages',
 'C:\\Program Files\\I.MAGIC\\鉄道模型シミュレーターNX\\python\\lib\\site-packages']

(へ~、userのsite-packagesが作成されてモジュール検索パスにも追加されるんですね。初めて知りました。)

VRMNXと別にPython 3.10をWindowsにインストールすると、その実行環境とも共用の場所になります。

レイアウトスクリプトで撮る夫くんを有効化してテスト

撮る夫くんのインストールが済んだことを確認するため、サンプルレイアウトで実際に撮る夫くんを有効化してテストします。

撮る夫くんは、レイアウトごとにスクリプトを記入して有効化する必要があります。

レイアウトスクリプトに記入します。

#LAYOUT
import vrmapi
import toruo  # 撮る夫くんをインポート

def vrmevent(obj,ev,param):
    toruo.activate(obj, ev, param)  # 撮る夫くんを有効化
    if ev == 'init':
        dummy = 1
    # 以下省略

撮る夫くんパネルが出現したので成功

うまくいきました。