CurvySplineの使い方を覚える。
https://assetstore.unity.com/packages/tools/level-design/curvy-splines-7038
今回やりたいこと
・レールを引いてその上を電車が走る
・レール切替地点が存在し、分岐する。
デモシーン12がそのまま使えそうなので使い方を覚えていきます。
◆基本知識
アセットをインストールするとUnityEditorにボタンが追加される。
Draw Splineボタンを押して、Ctrlキーを押しながらクリックすると制御点(セグメント)が作られ、制御線ができる。
Curvy SplineオブジェクトとCP0000~オブジェクト、_CurvyGlobal_が勝手に出来上がる
親オブジェクトになっている「CurvySpline」という名前は分かりやすく「LineA」に変更した。
(後で分かりやすい名前が必要になるのでやっておく!)
●CurvyGenerator作成
Create>Generatorから制御点に対して色々するジェネレーター作成
以下のボタンを押す
ノードベースのウィンドウが出てくるので右クリックAddで項目を追加していく(テンプレートからでもOK)
①InputSplinePath パス:対応するスプラインを指定する
②ShapeExtrusion 形状押し出し:パスに沿って形状を押し出す
③InputSplineShape 形状:スプラインの形状をキャッシュ
④VolumeSpots:パスにそってオブジェクトを配置(間隔や高さなど
⑤inputGameObject:プレハブを指定
⑥CreateGameObject:指定されたゲームオブジェクトを複製
ここまでの状態で制御線にそって枕木プレハブが並べられる
⑦VolumeMesh:メッシュを生成する(マテリアルを指定する
⑧CreateMesh:繰り返しメッシュの作成
●レールの作成
レールの断面図形状をベース線で作成しInterpolationをBezierにする。
名前を分かりやすくRailMeshSplineとする。
Generatorからノードウィンドウ開いて
InputSplineShapeのGeneralタブのShapeに新しく追加したRailMeshを指定
上図の黄色枠、VolumeMeshを追加してマテリアルを設定
上図の黄色枠、CreateMeshを追加して線をつなげることでレールが出来る。
●ベース線にそって移動
キューブを動かす
SplineControllerをキューブにアタッチ
Splineに対象のスプラインを設定
Positionの値を変更することで移動する。
Move項目のSpeedを設定すると自動でそのスピードで移動する
枕木の幅を変更したい場合
ノードのVolumeSpotsでオブジェクトのタブを選択して
SpaceBeforeまたはSpaceAfterに間隔幅を設定する。
とりあえずここまでできたので公開しておく。
■以下メモ
制御線とメッシュなどが配置される位置は一致していなくてよい
●線に制御点を追加・削除する
CurvySplineオブジェクトの子CP0000~のオブジェクトを2つ以上選択している状態でToolsボタン>subdivide
制御線Aの制御点1と制御線Bの制御点3を接続したい場合
制御点を2つ選択しConnnectボタンをおす>赤いマークがつき、Connectionオブジェクトがつくられる(名前を変更可能)
既に接続された制御点同士をさらに接続などはできないため一度Connectionオブジェクトを削除することで解除される
制御線Aのひとつの制御点と、制御線Bのひとつの制御点を同期させることがかのう
●地形メッシュに沿って自動移動→不明
メモ
Interpolation:スプラインのタイプ
Linear(線形):直線、パフォーマンスが高い
Catmull-Rom:計算が早く扱いやすく自然な滑らかさを実現
最低4つの制御点となる
TCB:CatmullRomに3つのパラメーターが追加されておりより奇妙な曲線を描ける
Bezier:ベジェ曲線、制御点にハンドルが付いており、AutoHandlesのチェックを外すとハンドルが可視化されて手動で変更が可能になる
Close:最初と最後の制御点を線で閉じる
【サイドメニューのボタン説明】
View:Orientationにチェックを付けると上下の扱いが見れる
Shift:線にそって制御点を移動できる
参考
https://curvyeditor.com/tutorials
https://curvyeditor.com/documentation/start
【エディター設定】
https://curvyeditor.com/documentation/preferences
Scene上に表示されているCurvyの各種ボタンから
Options>Preferences(歯車マーク)
※Unityのメニュー>Edit>Preferences>Curvyでも同じ
Scene上に表示されている操作用UIを消したいときも同様の場所から
ShowGlobalToolbarのチェックを外すと表示が消える
スプラインを追加すると自動的にできあがる
_CurvyGlobal_
https://curvyeditor.com/documentation/components/curvyglobal
このGameObjectは、最初の使用時に自動的に作成されます。現在、その目的はConnectionsとpool Control Pointsを保存することです。
GameObjectは階層の別の場所に移動できますが、名前を変更したり削除したりしないでください!
とのこと、おそらくCurvy全体のマネージャー的な存在なので消さない。
レールの先端のことを「車止め」というらしい。
これを作るためにはVolumeSpotsのGeneralタブのRange FromとToの値を
0-1 から 0.05-0.95 など変更してあげればいい
これを作る場合、浮いている部分が見えてしまうためレールは左右で1本ずつ別メッシュに分けておく必要がある。
※コメントは承認後に表示されます。
コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。