Unityでボーリングゲームを作る #10 柵を付ける

投稿者: | 2020-02-05


レーンの両サイドに柵を付けられるようにしました。

柵はBlenderのArchipackというアドオンを使うと簡単に作れます。アドオンはUser Preferences…から追加できます。

検索で簡単に見つかります。チェックをいれると使えるようになります。

Shift + AのAddメニューに追加されています。

Fenceをクリックしてみます。

数種類のフェンスが用意されていました。Metalを使ってみます。

クリックすると3Dカーソルの位置にフェンスが作られます。

Dimensionsで長さを変えてみました。

プロパティシェルフにたくさんの項目が用意されていて、柵の変形が簡単に行えます。
例えば、Partsの値を増やすと格子の数が増えていきます。

Dimensionsを変えると全体の長さが変わるのでこれと合わせて、レーンの長さに合わせました。

Subsのチェックを外すと、下部の細かい縦棒が消えます。

このように細部も簡単に変更できます。

Railsの数を一つにしてみました。

Rail1の高さを調節しました。

ポストが長すぎるのでHeightで高さを変えました。

Altitudeで位置を調節しました。

このままではScaleが揃っていません。

全体のスケールを変えたい時に不便なので1に揃えます。

そのためにはCtrl + A -> Scaleをクリックします。

すると、大きさはそのままでScaleの値が揃います。

両サイドに柵をつけたいので、Shift + Dでコピーして片方を反対にもってきて、Shiftを押しながら両方の柵を選択します。

Ctrl + J で一つのオブジェクトに統合します。

ピボットが離れた場所にあるので、ツールシェルフのSet OriginからOigin to Center of Massを選択して中心に移動させます。

このままだとUnityにもっていったときに角度が変わるので、Unityに合わせて回転させてからエクスポートします。
参考:https://light11.hatenadiary.com/entry/2019/01/06/215851

Unityでアニメーションを付ける

Unityにもってきてシーンに配置しました。

柵が高すぎたので一段目をレーンの下に埋めて配置しました。

フェンスを上げ下げするアニメーションを作って、アニメーターコントローラーでステートの遷移を作りました。

オレンジのステートにはアニメーションが入っていません。
アニメーションの作成・遷移

Parametersの+ボタンからトリガーパラメーターを一つ作ります。

オレンジから灰色のステートの遷移と、灰色のステート同士の合計3つの遷移の矢印のインスペクタを全て同じ設定にしました。

スクリプトでSetTriggerメソッドを使うことでアニメーションを遷移できます。

fenceAnimator.SetTrigger("fence");

フェンスのデフォルトの位置を、レーンの下に完全に埋まった状態にしています。

フェンスの衝突設定

フェンスにはMeshコライダーをつけて、ボールが衝突するようにしています。

レーンとは衝突しないように、フェンスにレイヤーをつけて、Edit -> Project Settings… -> PhysicsのLayer Collision Matrixでレーンとフェンスにつけたレイヤー同士の交点のチェックを外します。

コメントを残す

メールアドレスが公開されることはありません。