Unity2018.1.5f1
Windows10
□
今回は階段を作って上り下りをする方法を学びます。
私はUnityをいじり始めた頃、階段さえ別のソフトで作らないといけないのかと絶望したものですが、今はUnity内で手軽に作れるようになっているのでやってみましょう。
階段の上り下りはCharacterControllerというシステムを使えば簡単にできます。
■ProBuilderをインストールする
今回はProBuilderというアセットを使います。
それはUnity2018からは標準装備になっているためアセットストアにアクセスしなくてもインストールできます。
Window > Package Manager > All > ProBuilder Install 3.0.1
それ以前のバージョンをお使いならアセットストアからダウンロードしてください。
インストールしたらProBuilder Windowを出します。
Tools > ProBuilder > ProBuilder Window
出てきたウィンドウはタブをつまんでUnity内に収めると楽です。
そしてHierarchyは右下のInspectorの下に置くのがおすすめです。
さてまずは一番上のNew Shapeをクリックしましょう。
Shape Toolというウィンドウが出てきます。
その中にShape Selectorの下のCubeと書かれている部分をクリックすると色んな形状を選べるようになります。
その中のStairが階段なのでそれを選んでください。
するとこのように階段がScene上に出てきます。
これで完成でも良いのですがShape Toolをいじって少し形を変えてみましょう。
Steps 階段の段数
Build Sides 階段の脇の面
Curvature 階段を曲げる
Width X軸での大きさ
Height Y軸での大きさ
Depth Z軸での大きさ
Mirror Curvatureを変えると出る、反対側に曲げる
それぞれの項目をいじってみて自由に形を変えてみてください。
このような巻き巻きした階段も作れます。
さて私は分かりやすさのためにこのようなオーソドックスな階段に戻しました。
あなたは好きな形の階段にしてもらって結構です。
最後にBuild Stairをクリックすると完成です。
ついでにNew ShapeでPlanを作ってみましょう。
縦横20にして階段の下に設置します。
■CharacterControllerで階段を上る
今回操作するのは3DオブジェクトのCapsuleでこれにCharacterControllerとC#スクリプトを設置します。
まずCapsuleを階段の前に出してください。
名前を「Player」に替えましょう。
Hierarchy > Create > 3D Object > Capsule
CharacterControllerはCapsuleのInxpectorでAddComponentします。
最後にC#スクリプトを出してCapsuleにドラッグ&ドロップしてください。
Project > Create > C# Scripts
名前は「CharaMove」です。
スポンサーリンク
CharacterControllerの移動にはMove関数とSimpleMove関数があり、ジャンプさせたい時はMove関数を使います。
今回はCameraをスクリプトで子オブジェクトにし、マウスで向きを操作できるようにしました。
方向キーかWASDキーでその方向に移動できスペースキーでジャンプします。
あとif文ですが、{}に入るのが一行だけだと{}を省略しても問題ありません。
さて無事に動いたでしょうか?
階段を上れない場合、InspectorのCharacterControllerのStep Offsetの値を大きくすれば上れるようになるはずなので調整してください。
■中に入れる部屋を作ってみよう
最後におまけとしてProBuilderで中に入れる部屋を作ってみましょう。
New ShapeでCubeをXYZ軸を20にして作ります。
そしたら階段の上った先に来るようしてください。
ProBuilderを入れるとScene上に以下のようなUIが登場していることにお気づきだと思います。
これはオブジェクトの選択できる部分で左から、
オブジェクト全部
頂点
辺
面
を選択できるようになります。
まずは辺を選択できるようにしましょう。
次に正面の上下どちらの辺でも良いので選択し、ProBuilder WindowからInsert Edge Loopを選びます。
左端に赤いマークが出ている部分にあります。
すると選んだ辺と直角に辺が新たに出現するのでそれを2本出し、それぞれ階段の幅に合わせて置いてください。
次にその縦に並んだ辺をどれでも良いので選び再びInsert Edge Loopで新たに辺を出し、これをPlayerが頭をぶつけない高さに置きます。
次に面を選択できるようにしてください。
最後に階段から入る出入り口になる面をDelete Facesで削除します。
これも左端が赤い部分にあります。
さてこれで入ってみると・・・
なんと床が透けて落ちてしまいます。
どうもオブジェクトは外からは当たり判定があっても中からはないようです。
そこで今度はオブジェクト全体を選択できるようにしてください。
そしてFlip Normalsを選択します。
それは左端が緑の部分にあります。
すると・・・
無事中に入れるようになりました。
ProBuilderをもっと学びたいという方はこの動画がおすすめです。
丁寧に、しかも日本語で解説されているのでぜひ視聴してみてください。
今回はこれで終わりです。
ありがとうございました。
■関連記事
【UnityC#講座】無料アセットで一人称視点に剣を振らせる
【UnityC#講座】ボタン押す時間でジャンプの距離変わるようにした
スポンサーリンク