ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

Unity

列車モデルの表現方法と操作

車両の連結状態を表す列車モデルについて、どのような構成として、連結や切り離し操作をどのように表現するか整理を兼ねてメモ。 まず、車両は以下のようなインターフェースで表現されているものとする。 public interface IVehicle{public ICoupler coupler…

車両の管理方法

連結器のGUIを作ろうとしたけど、課題が見つかってしまい解決策を考え中。どんな課題かというと、この貨物ヤードシミュレータでは最終的に数十両もの貨物車両がいることになるので、連結器の数は下手すると100個以上。これ、どうやってGUIに表示すればいいん…

GUIの追加

今まで速度やノッチの状態、進行方向などはUnityのInspector上で見ていたんだけど不便なので、画面上にこれらを表示するGUIを実装してみた。 GUIを実装 だいぶ便利になった。あとは、各車両の連結器を開放するボタンを追加かな。

試しにワム80000を12両連結してみた

試しにワム80000を12両とDE10を1両置いて、連結させてみた。無事成功。 youtu.be

Unityでの回転の罠

Unityで、振り子のような挙動をするはずのモデルを作ったんだけど重力が働いていないような、無重力のような挙動をされて一晩はまってしまった。以下モデルの構成と現象、原因、対策。 モデルの構成 2つのGameObjectからなるモデル。一方のObject Aは空間に…

今日の進捗

今日の進捗。 ワム80000の車軸ボーン位置を(0,31.5,5.375)へ修正。 Unityで非人間形状のボーンを扱うことが出来るAnimationRiggingについてお勉強。参考リンク: tsubakit1.hateblo.jp blogs.unity3d.com www.gdcvault.com www.youtube.com

自動連結器

今日は自動連結器づくり。できればすべて物理シミュレーションで動くようにしたいけど、さすがに無理かなあ。でもまずはチャレンジ。以下、メモ。 可動範囲 自動連結器は前後・左右方向に緩衝器がある。しかし、この可動範囲が分からない。日本大百科全書の…

今日の進捗

DE10が比較的滑らかにカーブを通過するようになった。 こいつのチューニングはきりがないので一旦やめて、次はレールの継ぎ目で音が出る仕掛けと、レールを簡単に繋げるための仕掛けを実装しよう。 // '; $(this).replaceWith(video); }); // ]]>

UnityのConfigurable Jointでバネを設定する方法

UnityでConfigurable Jointを使って単一方向にのみ動くバネを作ろうとして、問題にぶつかったので回避策を含めメモ。 UnityでSpring Jointを使うと全方向に動くバネができる。しかし、これはサスペンションなどの用途には向かない。このような場合はConfigur…

鉄道車両の車輪をCapsleColliderで模擬してみる(カーブ通過編)

ふと、踏面だけでカーブを通過できるか試したくなってきたのでやってみた。 結果:いける。 課題:上下動がやはり目立つ。おそらく、カーブレールのポリゴンが原因。直線の組み合わせでできているため、理想の曲線から内外にはみ出る箇所があり、その結果Cap…

Unityで設定項目をまとめる方法

Unityで開発を進めていると、Inspectorで設定可能な項目がだんだん増えてきてじゃまになってくる。そして、大半の設定項目は実際使用頻度が低いので普段は見えなくてもいいんだけど、たまにいじるから消したくはない。設定項目をまとめて表示・非表示できる…

鉄道車両の車輪をCapsleColliderで模擬してみる(カーブ通過編)

ふと、踏面だけでカーブを通過できるか試したくなってきたのでやってみた。 結果:いける。 課題:上下動がやはり目立つ。おそらく、カーブレールのポリゴンが原因。直線の組み合わせでできているため、理想の曲線から内外にはみ出る箇所があり、その結果Cap…

鉄道車両のフランジをカプセルColliderで模擬してみる(特性調査編)

無事カーブレールを走れるようになったので、CapsuleColliderの設定値とカーブ走行の様子の関係を調べてみた。 CapsuleColliderの横方向位置:レールとの距離が近いほど、カーブで引っかかりやすくなり脱線する。レールとの距離が遠いほど安定はするが、見た…

鉄道車両のフランジをカプセルColliderで模擬してみる(手探り編)

フランジの実装方法は、少なくとも2種類ある。WheelColliderを使う方法と、CapsuleColliderを使う方法だ。今回は、ガイドローラー的なものをつくりたいので、まずはWheelColliderを使ってみた。 いきなり困ったのが、WheelColliderの向き。車輪なので当たり…

鉄道車両の車輪をカプセルColliderで模擬してみる(これでいいや編)

カプセルColliderの設定、そういえば円筒の直径と実際の車輪直径が10mmしか違わないことを思い出した。ポイントまたぐ際にこの程度持ち上がるのは許容してしまおう。というわけで、踏面のシミュレーションはカプセルColliderで決定。次はフランジの実装だ。

鉄道車両の車輪をカプセルColliderで模擬してみる(スピードアップ編)

動力車で車輪を回すのに、Capsule ColliderとHinge Jointをつかっているんだけど、なぜかHinge JointのMotorに設定したTarget Velocityを大きくしても最大速度が上がらない。 車輪の設定 なんでかなーとあっちこっちの設定をみていたら、プロジェクトの設定…

鉄道車両の車輪をカプセルColliderで模擬してみる(手探り編)

踏面の形状をCapsuleCollidorで模擬したけど、これダメだ。間違いなく、ポイントで乗り上げる。 仕方ないので、CapsuleCollidorは使うけど円筒の側面だけ活用する方向で。レールの中心に沿う機能、どうしよう。フランジだけじゃあ無理だよなあ。

鉄道車両の車輪をカプセルColliderで模擬してみる(準備編)

鉄道車両の車輪とレールとの当たり判定をCapsule Colliderで模擬することにしたわけだが、このためにはレールとColliderが接触する部分の傾きを本物とだいたい同じにする必要がある。本物の踏面は1:20の傾斜になっており、また車輪一対の中心から560mmの場所…

鉄道車両の車輪寸法を調査した

レールと車輪の当たり判定について、車輪側をカプセルで模擬してみる。そのためには車輪の寸法が必要だ。以下に、調査結果をまとめる。 踏面の傾斜在来線:1/20新幹線:1/40出典:IHI技報 Vol. 55 No.3 (2015) pp. 39 https://www.ihi.co.jp/var/ezwebin_sit…

車輪のモデル

Unityでは、物理シミュレーションできるオブジェクトの当たり判定メッシュとして凸なものしか使えないようだ。なので、レールとの当たり判定を車体全体でやるのは無理がある。そもそも、車輪ですら踏面とフランジのせいで凹み部あるし。 じゃあ、どうすれば…

Unityでのメッシュオブジェクト当たり判定

レールの上に車両を置けるか試すため、手元にあったレールと貨車をおいてみた。当たり判定がちゃんと発生するようになるまで手間取ったけど、無事乗った。 ワム80000の方は、MMD用の.pdxファイルをBlenderにインポート後、テクスチャごとエクスポートするた…

貨物ヤードシミュレータの構想

前々から作ってみたかった、貨物ヤードのシミュレータをUnityでやってみることにする。てきとーに作り始めてもいいんだけど、やはり「どんなものを作りたいか」を明確にしないと、やりづらいので構想を明文化する。 概要 L4カーを有するハンプヤードにおける…

VisualStudio2019でUnityのコードが補完されなかったりする件

UnityからVisual Studio 2019を呼び出したらUnity固有の機能が使えなかった問題と、その対処法メモ。 目次 目次 経緯 まとめ 経緯 Unityのお勉強をするため、VisualStudio2019でC#のコードを作ろうとしたらいきなり挫折した。Microsoftのマニュアルに書いて…