【UnityC#講座】一番簡単な階段の作り方と上り方


Unity2018.1.5f1
Windows10

ProBuilder階段/全体

今回は階段を作って上り下りをする方法を学びます。
私はUnityをいじり始めた頃、階段さえ別のソフトで作らないといけないのかと絶望したものですが、今はUnity内で手軽に作れるようになっているのでやってみましょう。
階段の上り下りはCharacterControllerというシステムを使えば簡単にできます。

■ProBuilderをインストールする

今回はProBuilderというアセットを使います。
それはUnity2018からは標準装備になっているためアセットストアにアクセスしなくてもインストールできます。

Window > Package Manager > All > ProBuilder Install 3.0.1

ProBuilder階段/インストール

それ以前のバージョンをお使いならアセットストアからダウンロードしてください。

インストールしたらProBuilder Windowを出します。

Tools > ProBuilder > ProBuilder Window

出てきたウィンドウはタブをつまんでUnity内に収めると楽です。

ProBuilder階段/ウィンドウ

そしてHierarchyは右下のInspectorの下に置くのがおすすめです。

さてまずは一番上のNew Shapeをクリックしましょう。
Shape Toolというウィンドウが出てきます。
その中にShape Selectorの下のCubeと書かれている部分をクリックすると色んな形状を選べるようになります。

ProBuilder階段/Stair選択

その中のStairが階段なのでそれを選んでください
するとこのように階段がScene上に出てきます。

ProBuilder階段/Stair/Scene

これで完成でも良いのですがShape Toolをいじって少し形を変えてみましょう。

ProBuilder階段/Shape Tool

Steps 階段の段数
Build Sides 階段の脇の面
Curvature 階段を曲げる
Width X軸での大きさ
Height Y軸での大きさ
Depth Z軸での大きさ

Mirror Curvatureを変えると出る、反対側に曲げる

それぞれの項目をいじってみて自由に形を変えてみてください。
このような巻き巻きした階段も作れます。

ProBuilder階段/Stair巻き巻き

さて私は分かりやすさのためにこのようなオーソドックスな階段に戻しました。
あなたは好きな形の階段にしてもらって結構です。

ProBuilder階段/Stairオーソドックス

最後にBuild Stairをクリックすると完成です。

ProBuilder階段/Build Stair

ついでにNew ShapeでPlanを作ってみましょう
縦横20にして階段の下に設置します。

ProBuilder階段/Plane

■CharacterControllerで階段を上る

今回操作するのは3DオブジェクトのCapsuleでこれにCharacterControllerとC#スクリプトを設置します。

まずCapsuleを階段の前に出してください
名前を「Player」に替えましょう。

Hierarchy > Create > 3D Object > Capsule

ProBuilder階段/Stair/Plane/Cupsule

CharacterControllerはCapsuleのInxpectorでAddComponentします。
最後にC#スクリプトを出してCapsuleにドラッグ&ドロップしてください。

Project > Create > C# Scripts

名前は「CharaMove」です。

スポンサーリンク

CharacterControllerの移動にはMove関数とSimpleMove関数があり、ジャンプさせたい時はMove関数を使います。

今回はCameraをスクリプトで子オブジェクトにし、マウスで向きを操作できるようにしました。
方向キーかWASDキーでその方向に移動できスペースキーでジャンプします。

あとif文ですが、{}に入るのが一行だけだと{}を省略しても問題ありません。

さて無事に動いたでしょうか?

ProBuilder階段/CharacterController/上り下り

階段を上れない場合、InspectorのCharacterControllerのStep Offsetの値を大きくすれば上れるようになるはずなので調整してください。

ProBuilder階段/CharacterController

■中に入れる部屋を作ってみよう

最後におまけとしてProBuilderで中に入れる部屋を作ってみましょう。
New ShapeでCubeをXYZ軸を20にして作ります。
そしたら階段の上った先に来るようしてください。

ProBuilder階段/Cubeを設置

ProBuilderを入れるとScene上に以下のようなUIが登場していることにお気づきだと思います。

ProBuilder階段/オブジェクトを選択

これはオブジェクトの選択できる部分で左から、

オブジェクト全部
頂点

を選択できるようになります。
まずは辺を選択できるようにしましょう。
次に正面の上下どちらの辺でも良いので選択し、ProBuilder WindowからInsert Edge Loopを選びます。
左端に赤いマークが出ている部分にあります。
すると選んだ辺と直角に辺が新たに出現するのでそれを2本出し、それぞれ階段の幅に合わせて置いてください。

ProBuilder階段/Insert Edge Loop

次にその縦に並んだ辺をどれでも良いので選び再びInsert Edge Loopで新たに辺を出し、これをPlayerが頭をぶつけない高さに置きます。

ProBuilder階段/Insert Edge Loop2

次に面を選択できるようにしてください。

ProBuilder階段/面を選択

最後に階段から入る出入り口になる面をDelete Facesで削除します。
これも左端が赤い部分にあります。

ProBuilder階段/Delete Faces

さてこれで入ってみると・・・

ProBuilder階段/Cubeに入る

なんと床が透けて落ちてしまいます。
どうもオブジェクトは外からは当たり判定があっても中からはないようです。
そこで今度はオブジェクト全体を選択できるようにしてください。

ProBuilder階段/再びオブジェクトを選択

そしてFlip Normalsを選択します。
それは左端が緑の部分にあります。
すると・・・

ProBuilder階段/部屋に入る

無事中に入れるようになりました。

ProBuilderをもっと学びたいという方はこの動画がおすすめです。
丁寧に、しかも日本語で解説されているのでぜひ視聴してみてください。

今回はこれで終わりです。
ありがとうございました。

■関連記事

【UnityC#講座】無料アセットで一人称視点に剣を振らせる

【UnityC#講座】ボタン押す時間でジャンプの距離変わるようにした

スポンサーリンク

目次に戻る