UE4のスプラインで道のようなものを作る
今回はSpline Componentを使って道のようなものを作ります。
バージョンは4.10を使いました。4.9でもやり方は同じです。
まず、空のアクタを作ります。
作ったらそのブループリントを開いて、
Splineコンポーネントを追加します。
そして、Meshという名前のStatic Mesh Componentを変数に追加します。
あと、簡単にメッシュを変えられるように編集可能にしておきます。
次にコンストラクションスクリプトを開いて
Get Number Of Spline Pointsを使って
スプラインポイントからスプラインポイントへの線の数のぶんループさせるように編集していきます。
Add Spline Mesh ComponentでSpline Meshコンポーネントを追加し、メッシュを出せるようにします。
そしてそのSpline MeshコンポーネントをDefault Scene Rootにアタッチします。
メッシュを表示するためにSet Static Meshで変数のMeshをセットします。
Splineコンポーネントから、Get Location and Tangent at Spline Pointを2つ呼びます。
上のやつがループの中の現在のスプラインポイント、
下のやつが次のスプラインポイントになるように
ForLoopのindexを持ってきてセットします。
最後にAdd Spline Mesh ComponentノードのReturn ValueからSet Start and Endを呼びます。
このSet Start and Endに
現在のスプラインポイントと次のスプラインポイントの 位置,タンジェントをそれぞれセットします。
Tangentって何?
スプラインポイントから赤い円で囲んでいるところにある四角いやつの位置へのベクトルです(間違っているかも)。
このタンジェントは、メッシュを動かさなくてもいいなら、考えなくても困らないと思いますが、
ゲーム中に動かすときはこのタンジェントのことを考えないと思ったように動いてくれません。
これで、道のようなものを描画できるようになりました!
ビューポートにブループリントを配置して、スプラインポイントをいじって
メッシュを設定しましょう(いい道がありませんでしたので、三人称視点の階段を使いました)。
あれ?
めり込んでいますね。
コリジョンが有効になっていないからです。
直しましょう。
Add Spline Mesh ComponentノードのReturn ValueからSet Collision Enabledを呼んで
New TypeをCollision Enabled (Query and Physics)にします。
乗ることができました!道のようなものができましたね!
輪っかにする方法はまた今度書きます。