自分はうまくいきましたが、もっといい方法あるかも…。あくまで独自の方法です。
RBURというシステムを使用した鉄道ワールドです。
RBUR(RigidBodyUdonRailway)は曙松線建設事務所 frou01様が作成している製品です。
© 2025 frou01. Released under the MIT license.
前回の記事からの続きになりますので、最初に①~④の記事をご覧ください。
今進んでいるところ
・FBX Exporterの導入
・必要アセットのimport
・レールの下準備
・線路の敷設
・車両を配置する。
今回進むところ
・線路をつなぐ
線路の敷き方 応用
応用
ここまでの解説では「rail」の「CinemachinePath」内の「PathDetails」を調整することで、線路を敷設してきました。
これだけでもレイアウトは作成できますが、ポイントを設置するときや、よりスムーズなカーブを作ろうとすると、ひとつの「rail」だけではできません。
ここでは線路の接続について解説していきます。
環状線路
環状に線路を作る場合、「CinemachinePath」の「Looped」にチェックを入れると、自動的に環状線路を敷設することができます。
線路の複製
手順を最初からする方法で「railsystem」を選択した状態で、右クリック→CreateEmptyをして、「Add Component」で「Rail_Script」と「CinemachinePath」を追加する方法もありますが、「rail」をコピーする方法が簡単なので、コピーして敷設する方法を解説します。
「rail」を選択した状態で、Ctrl+Dでコピーしてください。名前は変えても変えなくてもいいです。今回は「rail2」という名前で解説します。
コピーした方(rail2)の小さい▷を押すと「senro」が入っていると思います。場合によっては、senro1、senro2、senro3・・・・と続いていると思います。なければスルーしてください。
「rail2」の「senro」を削除します。一つずつ削除すると時間がかかるので、一番上の「senro1」を右クリックします。次に、shiftを押しながら一番下の「senro」を押してください。すると途中のsenroがすべて選択されると思うので、Deleteキーを押して削除してください。
削除出来たら「rail2」を選択し、「Inspector」の「PathDetails」横の▷を押してください。
経路順の数字があると思いますが、数字の横の=を押しながら移動させることで、経路の順番を変えることができます。一番下の数字(大きい数字)を一番上に持ってきて、それ以外を削除することで「rail」と同じ位置に「rail2」の起点を作ることができます。

Tangentについて
「rail2」の方も線形を調整しましょう。
重要なポイントとして「PathDetails」の「Waypoints」のTangentにはX.Y.Zのいずれかに必ず数字を入れる必要があります。
つまり X:0 Y:0 Z:0には設定してはいけません。X:2 Y:0 Z:0や
X:2 Y:1 Z:2など、何かしらの数字を入れる必要があります。
この数字についても決まりがあり、進行方向側に線が伸びるようにしてください。例えば、⓪の「Tangent」を変更する時は①のほうに線が伸びるようにしてください。
↓いい例(黄色い線が①のほうに伸びている)

↓悪い例(黄色い線が次の「Waypotins」とは反対に伸びている

↓いい例(黄色い線が、線路の進行方向に向かって伸びている)

↓悪い例(黄色い線が反対側に伸びている。)

ここの設定がうまくいってないと、脱線してしまいます。
線路の接続設定
「rail2」に線路を敷設しましょう。「rail husetu」をコピーして、内容を少し変えれば、「rail2」にも線路が敷設できると思います。
敷設出来たら「rail」を押してください。「Inspector」の「Rail_Script」に「Next」と「Prev」という項目があると思います。ここに「Next」(次に向かう線路)と「Prev」(前に来た線路)を入れる必要があります。
今回の事例だと「rail」の「Next」に「rail2」を設定する必要があります。また、同様に「rail2」でも「Rail_Script」を確認し「Prev」に「rail」を選択してください。
基本的に「PathDetails」の0側に来ている線路が「Prev」になり、1や2・・・・の次に向かう線路が「Next」になります。
この「Next」「Prev」の設定を間違えると、車両が線路を見失い、脱線します。
CinemachineSmoothPathを使ってみる
カーブを作る際に「CinemachinePath」を使用すると、「Tangent」がやたら長くなったり、線路がきれいに敷設できないことが多々あります。
「CinemachineSmoothPath」を使用することで、キレイにカーブを作ることができます。
設定方法は基本的に「CinemachinePath」と同じですが、「Tangent」を設定する必要がありません。そのため「Tangent」の向きなどを意識することなく使えます。
使用方法として、「rail2」等をコピーして、「Add Component」から「CinemachineSmoothPath」を入れてください。
「CinemachinePath」の⓪の数値を「CinemachineSmoothPath」に入力し、「CinemachinePath」は削除してください。
あとは使いながら慣れていくと思います。「CinemachineSmoothPath」と「CinemachinePath」は使いやすい方を使用してください。
「Next」「Prev」の設定は「CinemachineSmoothPath」から「CinemachinePath」に接続したり逆に「CinemachinePath」から「CinemachineSmoothPath」に接続することができるので、通常通り「Next」「Prev」の設定を行ってください。
注意点と補足
補足
上り坂を作る場合は、「Waypoints」のY軸を調整することで傾斜のある線路を作ることができます。
Unityでは大した傾斜に見えなくても、実際はかなり傾斜になっていることが多いので、定期的に再生ボタンを押して、傾斜を確認することをお勧めします。
また、あまりに長い傾斜を作ると車両に負荷がかかるうえ、下りで異常なスピードが出るため、ほどほどの距離にしておくことを推奨します。
注意点
線路の敷設時の注意点です。
「PathDetails」の「Waypoints」の距離は開けすぎないこと。
特に直線で「Waypoints」の距離を開けすぎると、車両走行時に脱線する可能性があります。
Tnagentの数値を大きくしすぎないこと
これも不具合の原因になることがあります。長いカーブでは「CinemachineSmoothPath」を使うのがおすすめです。
Loopedで円形に線路を敷設する際も「Next」「Prev」の設定が必要になります。
例えば「rail2」という名前だったら「Next」「Prev」も「rail2」を設定してください。
レールの高さと車輪の高さがあわない
可能であれば、blenderの項目に戻って調整したほうが後々楽になります。
もし修正が面倒であれば、平面で線路を引いている場合、「rail2」の「senro1、senro2・・・・・」をすべて選択し、Transformに数値を入力することで調整することができます。
坂を作っている場合は、同様にすべて選択し、Scene上にあるX・Y・Zの矢印を操作することで、高さの調整ができます。
コメント