Help us understand the problem. What is going on with this article?

UNITY コースター

More than 5 years have passed since last update.

概要

コースター2.jpg

通称オキュラスコースターでも使えるコースターのようなものを作ってみました。
こちらのURLに動いてるものがあるので、参照してください。
http://unityroom.com/games/play/256

カスタムパッケージはこちらのものになります。
http://bowlroll.net/up/dl44556
パスワードは「superspline」です。

使用したアセット

SuperSplines
https://www.assetstore.unity3d.com/en/#!/content/2020
スプラインを作ることができます。
そして作成したスプラインから様々な情報を取り出すことができます。
下記はその中の一例になります。
本当はほかにもいろいろできます。

1, ある点からのスプライン上の最近点を求めます。

code
float GetClosestPointParam (Vector3 point, int iterations, float start=0, float end=1, float step=.01f)

2, スプライン上のある一点の接線を求めます。

code
Vector3 GetTangentToSpline (float param)

3, スプライン上のある一点の位置を求めます。

code
Vector3 GetPositionOnSpline (float param)

スプラインの形状を決めるアルゴリズムも直線、通常のスプライン、Bスプラインなど何種類かあったりします。

サンプルプロジェクトの使用手順

1、スーパースプラインをインポートしてください。

持ってない人は購入してからインポートしてください。

スーパースプライン.jpg

2、カスタムパッケージをDLし、インポートします。

カスタムパッケージはこちらのものになります。※冒頭に記載されているURLと同じものです。
http://bowlroll.net/up/dl44556
パスワードは「superspline」です。

UNITY画面上のここからインポートします。
カスタムパッケージ.jpg

ZIPファイルの中に入っているこちらのファイルをインポートしてください。
コースターパッケージ.jpg

3、シーンファイルのmainを開くと動く状態のシーンが開きます。

シーンファイルを開く.jpg

インスペクタのパラメータについて

作成したコンポーネントは3つになります。

インスペクタ.jpg

PIDJointer

Spline : どのスプラインに沿うか指定します。
Dead Zone P : 位置のずれに比例してかかる力が無くなる幅を指定します。
Dead Zone D : 速度に比例してかかる力が無くなる速度を指定します。
P : 位置ずれに比例してかかる力の大きさを指定します。
D : 速度に比例してかかる力の大きさを指定します。(Y軸の速度、及びスプラインの接線方向への速度は無視します)
Pos Now : スプライン上の最近点の位置を入れます。プレイ中でないと出ません。
Seek Width : 最近点を探す処理で、実際に探す幅を指定します。
Loop End In : スプラインの切れ目近くでは最近点を探す処理が特殊になります。
その処理に切り変わる位置を指定します。
Loop End Out : スプラインの切れ目近くの処理から抜ける位置を指定します。

Aliner

アタッチしたオブジェクトをスプラインの接線方向へ向けます。

Speed Low Limit

コースターの速度が遅くなった場合、ロックし、強制的にコースターを押します。
Speed Limit : 押す場合にターゲットになる速度を指定します。
To Free Sukima : ロック状態からフリーになるための速度を指定します。
実際にはSpeed LimitよりもTo Free Sukimaだけ早い速度になると、ロック状態から開放されます。
To Lock Speed : この速度よりも遅くなった場合、ロックされます。
Speed Ajuster : あまり強く押すと吹っ飛ぶので、力を抑えます。
Speed Now : 現在の速度、プレイ中でないと表示されません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした