Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。0今回はゲーム開始の村の作成をしていきたいと思います。村はUnityのTerrainを使って作成していきます。前回は移動キーを押した時にユニティちゃんが移動するところまでを作成しました。ユニティちゃんのRPGを作ってみよう2ー移動キーを押した時にユニティちゃんを動かすーユニティちゃんのRPGで移動キーを押した時にユニティちゃんが動くようにしていきます。Unityを使った3Dゲームの作り方(かめくめ)ユニティちゃんの3DRPGを作っていくカテゴリです。gametukurikata.comから見ることが出来ます。Assetをインポートしその中の素材を使いたいと思います。Storeウインドウを開きます。アセットの検索に「StandardAsset」と入力し出てきたUnityさんが作ったスタンダードアセットをクリックします。インポートボタンを押してアセットをインポートします。Unity内で出てきたウインドウでそのままImportボタンを押してインポートします。Storeウインドウを閉じます。以前作成したサンプル用の地面SampleGroundは使わなくなったので選択しDeleteキーを押して削除します。Emptyを選択し、名前をVillageとします。VillageのTransformのPosition、RotationのXYZを0にします。Terrainを使って村の地面を作成していきます。Terrainに関してはUnityのツールTerrainを使ってフィールドを作成するUnityのツールTerrainを使ってゲームの地形フィールドを作成していきます。13:41も参照してみてください。Object→Terrainを選択し、VillageGroundという名前に変更します。VillageGroundをVillageにドラッグしVillageの子要素にします。RPGフォルダで右クリックからCreate→Folderを選択し、名前をFieldとします。Fieldフォルダ内で右クリックからCreate→Folderを選択し、名前をFirstVillageとします。Terrainというファイルが作成されているのでFirstVillageの中に移動させておきます。Terrainを選択した状態でF2キーを押し名前をFirstVillageに変更します。VillageGroundゲームオブジェクトを選択し、インスペクタの歯車を押してTerrainの設定を変更します。Lengthを40にします。VillageGroundのTransformのPositionのXとZを-20にし、VillageGroundの真ん中がXYZの0の位置にくるようにしておきます。これは単にわかりやすくユニティちゃんの位置が中心になるようにしたかっただけなので位置は適当に決めて構いません。Layerを押します。Layerを選択したら、新しく出てきたウインドウの検索窓に「grass」と入力し出てきたGrassHillAlbedoを選択します。するとTerrainの地面がこのテクスチャで塗られます。Layerという名前のレイヤーが出来るのでF2キーを押して名前をGrassLayerと変更し、Assets/RPG/Field/FirstVillageフォルダ内に移動させます。地形にデコボコを付ける次に地面にデコボコを付けていきます。Sizeでブラシのサイズ、Opacityでデコボコの度合いを設定します。上の設定はあくまでも例なのでどんな村にするかで設定を変えてみてください。次にシーンビューの地面上をクリックすると地面が盛り上がり、Shiftキーを押しながらクリックすると地面が下がります。Heightにするとドラッグしても最高の高さが指定した高さまでしか地面を盛り上げません。Heightにすると段差をスムーズにすることが出来ます。Terrainにするとスタンプを押したように盛り上がりを作成します。わたくしは以下のような村の地形を作成しました。自由に作成してみてください。村に草と木を生やす村の地形はできましたので、草や木を生やしていきます。16:56も参照してみてください。木を生やすまずは木を生やしていきます。Treeを選択します。PrefabにBroadleaf_Desktopを設定しAddボタンを押します。このBroadleaf_Desktopプレハブには既にコライダが設定されており衝突するようになっています。Collider等を取り付けそれをプレハブにした上でTerrainでその木を指定する必要があります。Heightにチェックを入れると幅を高さの比率に合わせます。Treesで本数を指定して木を自動で配置する事が出来ます。Trees分の木を生やします。今回は村が小さいのでシーンビューで地面をクリックし、一本一本木を生やしていきます。木を生やすにはTreesの木のプレハブを選択した状態でシーンビューのTerrainの地形をクリックします。Shiftキーを押しながら木をクリックすると削除することが出来ます。わたくしは以下のような感じで木を生やしました。草を生やす次は草を生やしていきます。Textureを選択します。TextureにGrassFrond02AlbedoAlphaを設定します。Heightで最大の高さ等を設定します。草のテクスチャを選択した状態でシーンビューのTerrain上をクリックすると草を生やせます。Shiftキーを押しながらクリックすると草を削除します。TerrainのOpacityで草の密度を変更出来ます。わたくしは以下のように人の通る場所は草を少なく生やしてみました。人が通る場所の地面を荒らす通常であれば人がよく通る場所は地面が少し荒れるというか道が出来ます。そこで人が通る部分に別のテクスチャで塗って通り道を作っていきます。Layerを選択し、GrassRockyAlbedoを指定します。LayerはF2キーを押して名前をGrassRockyLayerとし、Assets/RPG/Field/FirstVillageフォルダ内に移動させます。後は今作成したGrassRockyAlbedoを選択してシーンビューで人が通る道をドラッグしてテクスチャを塗っていくだけです。わたくしは上のような感じで人の通り道を塗りました。草や木が風に揺れるようにする次に草や木が風よって揺れるようにしていきます。草の風の設定はTerrainの歯車から設定出来ます。今回は上のような設定にしました。次に木を風に揺らすようにしていきます。19:00も参照してみてください。Zoneを選択します。ZoneのModeはDirectionalでシーン全体に、Sphereで指定した範囲内だけ風を起こします。Frequencyは時間経過によって変化する頻度になります。Zoneの設定を以下のようにしました。Zoneをシーン上に追加したので、木が風によって揺れるようになります。これで村が出来上がりました。ユニティちゃんを動かして村を確認する最後にユニティちゃんを動かして村がどうなっているかを見て回ってみましょう。このまま動かすとカメラが動かないのでユニティちゃんを追いかけることが出来ません。Targetをメインカメラに取り付けます。Targetはインスペクタで設定したTargetを設定したゲームオブジェクトが距離を保って追いかけていきます。CameraのRotationのXを変更してカメラが少し斜めから移すようにします。TargetのTargetにUnityChanゲームオブジェクトをドラッグ&ドロップして設定し、OffsetでUnityChanからの距離を設定します。上のように設定しましたが、好みの位置や角度に調整してみてください。Offset(登れる段差の高さ)が0.3となっている為に多少の傾斜や段差だと山を登って村の地形外へ出てしまう可能性があります。そこでUnityChanゲームオブジェクトを選択し、インスペクタでCharacterControllerの設定を変更します。Offsetを0.1にしました。Rendererの横のチェックを外して無効にすれば透明な壁が出来るのでどうしても山に登ってしまう時は透明な壁を配置しておくといいかもしれません。これで設定が出来たのでUnityを実行して村の中を歩き回ってみましょう。上のような感じになりました。終わりに今回はTerrainで村を作る事に特化しましたが、本当は村人との会話機能も盛り込もうと思ってました。(^_^;)しかし思いのほか記事が長くなったのでそれは次回に持ち越します。今回作成したTerrainの地形は盛り上げ方によってはカメラが地形の中を写してしまう事があります。これはこのままカメラが固定の位置と角度でユニティちゃんを追いかける場合は地形の中身が見えないようにTerrainを作成する必要があります。Offsetを調整して移動出来る範囲を狭めた方が楽かもしれないですね。これ以降の記事でCinemachineを使ったカメラ操作に切り替えるので、地形の中身が見える事は極力なくなります。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。21:43の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なTPSゲームの作成までが出来ます。かめくめちゃんが今遊んでいるゲーム零をまたやりたくなったので最初からやり直し。WiiUのもやりたいので本体と一緒に買うしかないなぁ・・・。お知らせ2020/02/21個人的にUnity2019.3.2f1をインストールしました。2020/01/31個人的にUnity2020.1.0a21(アルファ版)をインストールしました。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。