2005/12/17

必然的に発生するレールの接続誤差  VRMテンプレート構想
【課題】

たとえば、レールと高架プレートが分離している部品をテンプレートに組み込んだ場合、ほぼ不可避に接続誤差の問題が発生します。

これは、レールと高架プレートがそれぞれ独自にジョイントを有していること、さらにレールと高架プレートのジョイントの位置を完全に一致させる手段が少なくとも機械的には存在しない(ポップアップメニューの整列は、上下左右端を揃える機能しか提供しない)ことによるものです。同様の問題は、プラットホーム等、レールに隣接して配置されるのが常で、かつジョイントを有するすべての部品において発生します。
このようなタイプのテンプレートについては、一般的なユーザーが自身のレイアウト上でテンプレートを接続した「つもり」でいても、実はレール以外の部品のジョイントで接続がなされており、その結果、ビュワーで見るとレールジョイントにずれや隙間が見られることになります。


【解決策】

この問題は、本質的には、個々にジョイントを有する部品が同時選択またはグループ化されている場合、隣接する部品のジョイントとの接続判定が単純に「最も近接しているジョイント」によって為されることに起因しています。
従って、これを解決する最もシンプルな実装は、レイアウターのジョイント接続判定に「優先度」を設けることです。つまり、レイアウターは複数部品が同時にドロップされた場合、まずそこに含まれる「レール」系の部品に対して接続可能性の検索をおこなうこととします。ここに該当部品がない場合、はじめて他の種類の部品についても接続可能性の検索をするようにロジックを修正すれば、この問題は水面下に隠れます。
そもそも、VRM4ではレールのジョイントは水色、それ以外のジョイントは緑色で表示されます。これは、レイアウターのプログラム内部において両者がなんらかの形で区別して扱われていることを意味しており、ここに述べたロジックの追加が部品データの修正を必要としない、つまり、比較的容易に実現可能であろうことを示唆しています。

ただし、これはある意味において極めて恣意的なルールの埋め込みであるため、なんらかの弊害を及ぼす恐れもあります。ここで言う「恣意的」の意味は「何を置いても、まずはレールが誤差なくつながることが第一である」という暗黙の前提を設けてしまっていることです。
この暗黙の前提があるがゆえに、仮にこの実装をVRMレイアウターに対しておこなってしまえば、レール以外のジョイントを有する部品の接続誤差は認めることになります。つまり、レールはぴったりと接続されるが高架プレートには隙間が空くことを認める、ということです。個人的には妥当なトレードオフであろうと思いますが、これは好みに依存する問題であるため断言する気にはなれません。

もう1つの解決策は、レールと高架プレートのように、お互いのジョイント位置が一致して然るべきと考えられる部品については、それぞれの両端のジョイントが接続されるようにしてしまう、という戦略です。つまり、高架プレートの上に長さとカーブ半径、向きが一致しているレールをドロップすると、自動的にお互いのジョイントが重なるようにする、と言うことです。
ただし、この戦略は、上にも書いたように「長さとカーブ半径、向きが一致している」場合にのみ有効であり、レールとジョイント位置が必ずしも一致しない駅高架プレートや、プラットホーム、フェンス等のジョイントには何の効果もありません。

【回避策】

すべてのテンプレート利用者が、レイアウターの表示を最大倍率まで拡大し、水色のジョイント同士が接続されるようにテンプレートを配置すれば、この問題は起きません。が、そのような配慮を利用者に求めることは、ビギナーユーザーに本格的レイアウト作りへの門戸を開こうとするテンプレート構想の基本方針に反しており、現実的ではありません。
理想的には、テンプレート作者が「どの部品間で接続がおきてもレール接続に誤差が生じないようなテンプレートを作る」ことさえできれば、この問題は有名無実化します。が、冒頭にも書いたように、それを機械的に実現する手段が存在せず、作者の手作業の精度に依存する問題である以上、これを望むのは非合理であると言うべきでしょう。
特に懸念されるのは、このようなVRMの仕様上の制約を理解していない低リテラシのテンプレート利用者が「おまえのテンプレートはうまくつながらない」という非難をテンプレート作者に対して発するであろうことが容易に想像できることです。このようなことが常態化すれば、誰もテンプレート作者になろうとは考えないでしょう。
従って、この問題は、テンプレート作者の作業精度の問題に帰するべきではない、というのが現時点でのボクの見解です。

【派生課題】

このエントリでは

・複数のジョイントを含むテンプレートの接続誤差

を議論します。以下の課題は派生として扱います。

テンプレートのレギュレーション

0

2005/12/16  17:26

投稿者:ghost
> つまりテンプレート用のテンプレートを

おーい山田くん、座布団一枚。


冗談はさておき、それは思いつきませんでした。おっしゃる通り現実味が薄いですが。

> テンプレート接合部分での橋脚の重複

これについてはスッカリ書くのを忘れていました。
現在試作しているテンプレートでは、VRM本来の用法を無視して、線路と高架プレートはすべて高度固定で橋脚で支えていません。この結果、橋脚はジョイントとは無関係な、テンプレート接合と干渉しない位置にいってます。
これについても議論がありそうですが、テーマが広がり過ぎるので後日別のエントリを立てます。

2005/12/16  17:02

投稿者:45-50s
回避策としては、先にレールと高架プレート(やトンネル、駅など)を組み合わせたものを用意して、それをテンプレート製作者に使ってもらう。つまりテンプレート用のテンプレートを作る、くらいしか思いつかないっす。
手間がかかるうえ、やりすぎると過度の規格化を招きますから、あまり現実的ではなさそうですが。

高架区間に関しては、テンプレート接合部分での橋脚の重複も懸念されますね。

コメントを書く

この記事にはコメントを投稿できません




teacup.ブログ “AutoPage”
AutoPage最新お知らせ