【OER3000プラグインを作る⑤】ファイル名の美学
フリーウェアの3D鉄道シミュレーター「RailsimⅡ」のプラグインの制作過程を記録するシリーズ。
今回は話の本筋からそれて、ファイル名などの命名ルールについて紹介します。
命名というより「ナンバリング」と言った方が近いかもしれません。
みなさんは、どのようにオブジェクトやファイルを管理していますか?

「名前順」を利用した命名ルール
これはメタセコと異なる点であるが、Blenderにおいてオブジェクトは「名前順(文字コード順)」に自動的に並べられる。
Windowsファイルエクスプローラーの並び順もデフォルトでは「名前順」である。
この特性を利用した命名をすることで管理が楽になり、探しているものを早く見つけられる。
Blenderオブジェクト名――部品グループ別にナンバリング
例えば台車のボルスタアンカーに「ボルスタアンカー」とだけ名付けたとする。同じように「ワイパー」「ガイドホーン」と名付ける。Blenderは最初の文字を見て並び替えるわけであるが、そうすると車体にあるあっちこっちの部品がごちゃごちゃに並んでしまう。制作側としては台車の部品は台車の部品、パンタの部品はパンタの部品でまとまっていてほしいと思うだろう。
モデリングをずっとしているとオブジェクト数が100以上になるのもザラであるのでグループ分けが重要になってくる。
そこで、最終的に出力するxファイル(モデルファイル)別に番号を振り、オブジェクト名の先頭に付ける。そうすればオブジェクトが番号ごとにまとまってくれる。
私が今のところ使用しているオブジェクト名の命名ルールはこんな感じである。

①統合番号は今言ったモデルファイル別の番号である。01がボディ、02が内装、03が車輪、04が台車、05が側面ドア…のように。
②形態区別は、例えばボディの部品の中でも先頭車にしか使わないものと中間車でも使うものがあるのでそれを区別している。r,s,tと良い感じにアルファベット順なので気に入っている。ただパンタグラフなどではaが上げ状態、bが下げ状態、rが共通部品みたいに、必ずしも先頭中間で区別するわけではない。なにしろ自分が理解できればいいので、いいように使っている。
③自動スムーズの角度は何でわざわざオブジェクト名に書いているのかというと、blenderからメタセコにデータ移行するときに役立つからである。
データ移行の話は別の記事でするが、簡単に言うと移行の際にスムーズ角度が引き継がれないので手動で打ち込む必要があるのである。
ちなみにこの命名ルールは今まで3回くらい変更している。
ファイル名――ファイルの種類別に接頭辞
ファイルも数が増えると探すのが大変なので、ファイル名の頭に接頭辞を付けることにした。フォルダで分けてもいいが、参照がズレると面倒なので私はやっていない。具体的にはmqo→pngの参照構造が本番環境のx→pngでも同様である必要がある。
今回の3000形の作業フォルダの中身はこのようになっている。
| 作業メモ | [memo!!!].txt |
| inkscapeファイル | ink_〇〇.svg |
| inkscapeが参照する画像 | ink_〇〇.png |
| モデルファイル | model_〇〇.x |
| Blenderファイル | oer3000_yymmdd.blend |
| メタセコファイル | oer3000_yymmdd.mqo |
| 下絵画像 | shitae_〇〇.png |
| テクスチャファイル | tex_〇〇.png |
| 構文ファイル | Train2.txt |
これら以外に作業進捗のスクショやメタセコへの移行用のデータ、モデリング資料をしまうフォルダがある。
上記のうちRailSimが読み込むデータはモデル、テクスチャ、構文のみである。なので配布するときはmodel_, tex_から始まるファイル群と、構文だけを梱包すればよい。
Commonフォルダの活用――ファイルの置き方を決める
今後テクスチャを扱うようになるので、ファイルの置き方について説明する。
RailSim2プラグインにおけるディレクトリ構成のルールを一応紹介する。
「各プラグインタイプのフォルダ(Train,Station,Struct等)の直下にフォルダを作成し、そのフォルダに構文(定義ファイル)を置く。構文を増やすなら新たにフォルダを作成する。」
これがルールである。
構文が入っているフォルダの名前がそのままプラグインのIDとして機能する形である。
縛りがあるのは構文だけである。つまりモデルやテクスチャはどこに置いてもいい。
このルールに則ってPI作者の方々がよく使う手法として、「Commonフォルダを用意してよく使うファイルを置く」というのがある。
例えば、車輪のモデルやライトのテクスチャなどはコモンフォルダに置いて、車体のモデルはプラグインフォルダに置く、みたいな感じである。
TrainPIがStructフォルダ内にあるCommonを参照するということも可能である。
中にはモデル・テクスチャ類は全てコモンフォルダに置いてプラグインフォルダには構文だけ、という作者の方もいる。
私は真逆でコモンフォルダにはアイコンくらいしか置いていない。毎回作り方が変わってしまうので、共用するモデルもテクスチャもないのである。
ファイルの置き方は基本的に自由に決めていいのだが、相対参照する都合で、メタセコファイルと.xファイルの置き場が同じである必要がある。今後私が紹介する方法だと、車輪モデルだけCommonに置く、というのは難しいかもしれない。
とにかく、mqo→pngの参照構造とx→pngの参照構造が同じであればよい。作業フォルダでも同様のディレクトリ構成にする必要がある。
RailSimを楽しんでいる諸氏はすでにご存知と思うが、RSではPI作者ごとに固有の文字列を決めるのが通例となっている。文字列は大体1~4文字程度の英数字で、構文の入っているフォルダとコモンフォルダの名前に付け、名前の重複を防いだり、作者の識別をしたりする。私の場合は「Enth」を使わせていただいており、PIフォルダは「Enth_〇〇」、コモンフォルダは「Common_Enth」となっている。

……最後の「ファイルの置き方」はだいぶ難しいことを書いてしまいました。これは応用編だと思います。基本的には難しいことを考えずに一つのフォルダでPI制作を完結させることが可能です。
私のやり方はあくまで一例ですが、ファイル名フォルダ名の最初に数字をつけて管理するというのは割とどんな場面でも通用するおすすめテクです。
自分なりの効率のよい方法を見つけてみてください。
次回は、エンゼシア式テクスチャの書き方、貼り方です。
カテゴリ:雑記