音無サノトの空想録

人生何も考えてない人の描く漫画

【ゲーム制作】2020.06.28 進捗(シーンのリトライと遷移の実装)

どうも音無サノトです。

先週はゲーム制作ができなかったです。今週からまたちゃんとやっていきます。

まあ、この記事は自分用のメモみたいなものですから書かなくてもいいんだけど。。。

 

今日の成果

  • ゲームオーバー時にリトライできるようにした
  • ゲームクリア時に次のステージに行けるようにした
  • 2つ目のステージを作成(動く障害物) 

 

作業ログ

今日やることは以下の通り。

 

まずはボタンの設置。

Hierarchyの+ボタンからUI > Buttonを選択してボタンを追加。

f:id:otonasisanoto:20200628165539p:plain

 

ボタンの表示を変更してゲームーオーバーのテキストの下にボタンを追加します。

f:id:otonasisanoto:20200628170133p:plain

 

新しくスクリプトを作成してボタンに以下の処理を追加します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; 

public class RetryButton : MonoBehaviour
{
    public void OnClick()
    {
        SceneManager.LoadScene (PlayerController.currentStage); // ゲームリスタート
        Time.timeScale = 1;
    }
}

 

これでボタンを押すと現在のシーンがロードされるようになりました。

SceneManager.LoadScene()関数でシーンをロードしております。

引数にはロードするシーンの番号を与えています。

PlayerController.currentStage変数はPlayerControllerスクリプト内で宣言された、シーンをまたいでも保持される変数です。

Unityではpublic staticで変数を宣言しておけば他のスクリプトからもアクセスでき、ゲームが終了するまで保持されるのでこれで現在のシーンが何番目のシーンかを管理します。

 

f:id:otonasisanoto:20200628172306p:plain

こんな感じで宣言しています。

 

これでゲームオーバ時にボタンを押すとゲームをリスタートすることができます。

 

次にゲームクリア時に次のステージへ移動できるようにします。

ゲームオーバーと同じようにゲームクリアの下にボタンを追加して、スクリプトを追加します。

f:id:otonasisanoto:20200628171845p:plain

 

スクリプトでは現在のシーン番号にプラス1することで次のシーンに飛ぶようにしています。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; 

public class NextButton : MonoBehaviour
{
    public void OnClick()
    {
PlayerController.currentStage += 1; // 次のシーンにする SceneManager.LoadScene (PlayerController.currentStage); Time.timeScale = 1; } }

 

新しいシーンを作成して、Build Settingsにドラッグ&ドロップしてシーンの連番をつけておきます。

f:id:otonasisanoto:20200628172011p:plain

 

これでゲームクリア時にボタンを押すと次のシーンへと飛びます。

 

それでは次のシーンの中身を作成していこうと思います。

まず、Playerやカメラなど次のシーンでも流用するオブジェクトをひとまとめにしてプレハブ化しておきます。

これでどのシーンでもすぐにオブジェクトを使えるようになります。

f:id:otonasisanoto:20200628173500p:plain

 

第2ステージはUnityのAnimation機能を使用して動く障害物を設置してみました。

 

本日は以上です。

 

【ゲーム制作】2020.06.14 進捗(初期ステージ作成)

どうも音無サノトです。

iPhone向けのゲームアプリ開発を行っております。

今日もちょっとずつ制作です。

 

今日の成果

  • アイテム取得数の表示
  • ゲームオーバー/ゲームクリアの実装
  • ステージ作成

 

作業ログ

 今日はボール転がしのゲームを拡張していこうと思います。

 

まずはアイテムの取得数を表示。

こちらの記事を参考に実装します。

www.otonasisanoto.com

 

こんな感じです。

 

次はボールがステージから落下した際、ゲームオーバーになるという処理を実装します。

 

空のゲームオブジェクトを追加しBox Colliderを追加します。

ステージの下の方に大きめのサイズで調整。

Is Triggerにチェックを入れて、このラインにボールが衝突した際にゲームオーバーになるようにします。

f:id:otonasisanoto:20200614142111p:plain

 

ゲームオーバーを表示するテキストも追加しておきます。

f:id:otonasisanoto:20200614143534p:plain

 

スクリプトの方ではゲームスタート時にはゲームオーバーのテキストを非表示にしておきます。

衝突判定時に表示してゲームシーンをストップさせます。

以下の処理をPlayerに追加。

    // オブジェクト衝突時の処理
    void OnTriggerEnter(Collider other)
    {
        // ポイント獲得時
        if (other.gameObject.CompareTag("Point"))
        {
            other.gameObject.SetActive(false);
            pointCount++;
            SetPointCountText();
        }

        // ゲームオーバー時
        if(other.gameObject.CompareTag("Gameover"))
        {
            gameoverText.gameObject.SetActive(true);
            Time.timeScale = 0; // ゲームの停止(Update関数内など止まらないところもある)
        }
    }

 

次にゲームクリア時の処理を実装します。

ゲームオーバーの時と同じようにテキストを追加しておきます。

ステージ上のポイントを全て取得したらゲームクリアとします。

 

Start関数内でポイントになるアイテム数がいくつあるかを取得しておきます。

void Start()
    {
        rb = GetComponent<Rigidbody>();
        
        pointCount = 0;
        SetPointCountText();

        gameoverText.gameObject.SetActive(false);

        gameclearText.gameObject.SetActive(false);

        pointMax = GameObject.Find("Points").transform.childCount; // アイテム数を取得
    }

 

アイテム取得時のポイント加算処理内に全てのアイテム取得していた場合、ゲームクリアとなる処理を追加します。

        // ポイント獲得時
        if (other.gameObject.CompareTag("Point"))
        {
            other.gameObject.SetActive(false);
            pointCount++;
            SetPointCountText();

            // ゲームクリア時
            if(pointCount >= pointMax)
            {
                gameclearText.gameObject.SetActive(true);
                Time.timeScale = 0; // ゲームの停止(Update関数内など止まらないところもある)
            }
        }

 

実行するとこんな感じ。

 

次に簡単なステージを制作してゲームぽくしていきます。

 

本日は以上です。最後まで読んでいただきありがとうございました!

【ゲーム制作】2020.06.07 進捗(ボール転がしゲームの土台作り)

どうも音無サノトです。

今日もゲーム制作の続きをやっていきます。

 

今日の成果

  •  Playerをボールに変更
  • カメラ追従処理の追加
  • アイテムを取得できるように変更

 

作業ログ

今日はボールを転がしてアイテムを取得できるようにしていきます。

 

まずはボールを転がす処理。

以前に開発したボール転がしゲームの処理を応用してジョイスティックに対応するようにスクリプトを変更します。

www.otonasisanoto.com

 

Playerの処理を以下のように変更。 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayreController : MonoBehaviour
{
    public FixedJoystick joystick;
    public float speed;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Update()はフレーム毎の処理
    // FixedUpadete()は一定時間毎の処理
    // 物理挙動を使用する場合はFixedUpadete()を使用
    void FixedUpdate()
    {
        // Playerを物理挙動を使用して動かす
        float moveHorizontal = joystick.Horizontal;
        float moveVertical = joystick.Vertical;

        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

        rb.AddForce(movement * speed);
    }
}

 

こんな感じで動きます。

 

次はカメラをPlayerに追従するように処理を追加します。

まずはメインカメラに以下の処理を追加。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    
    public GameObject player;
    private Vector3 offset;

    void Start()
    {
        // メインカメラとPlayerの相対距離を算出
        offset = transform.position - player.transform.position;
    }

    void Update()
    {
        transform.position = player.transform.position + offset;
    }
}

 

こんな感じにPlayerの動作に合わせてカメラも動きます。

 

続きましてアイテム取得の処理を追加します。

ここも以前、制作したゲームの処理を流用します。

www.otonasisanoto.com

 

以下の処理をPlayerに追加します。

    // オブジェクト衝突時の処理
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Point"))
        {
            other.gameObject.SetActive(false);
        }
    }

 

後はPointというタグのプレハブを制作してシーンに追加。

※Is Triggerにチェックを入れることを忘れずに

ついでにボールが落ちないように壁も作っておきました。

 

実行結果はこちら。

 

 

今回はここまでを実機で動作確認して終わりです。

 

本日は以上です。最後まで読んでいただきありがとうございました! 

【ゲーム制作】2020.05.31 進捗(ジョイスティックの実装)

どうも音無サノトです。

毎週日曜日はUnityにてiOSビルド向けのゲーム制作を行っております。

今日はユーザがゲームを操作するためのジョイスティックの実装です。 

 

今日の成果

  • 実機にてジョイスティックを使った動作テストの確認 

 

 

作業ログ

今日はiPhone上で操作をできるようにジョイスティックの動作テストを行います。

 

ジョイスティックの追加

 

 動作テストのコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayreController : MonoBehaviour
{
    public FixedJoystick joystick;
    public float speed;

    void Update()
    {
        Vector3 pos = this.gameObject.transform.position;
        float x = joystick.Horizontal * speed;
        float y = joystick.Vertical * speed;
        // 現在のpotionに値を加算してオグジェクトを移動
        this.gameObject.transform.position = new Vector3(pos.x + x, pos.y + y, pos.z);
    }
}

 

このコードはシーンに適当に作ったオブジェクトをジョイスティックで操作する処理を記述しています。

これを前回同様、iOS向けにビルドして実機テストを行いました。

※実行結果は今日の成果(上記)に記載

 

本日は以上となります。

【ゲーム制作】2020.05.24 進捗(Unityを利用したiOS向けゲーム開発の環境準備)

どうも音無サノトです。

今日から毎週日曜日はゲーム制作をやっていきたいと思います。

去年はちょこちょことやっていたのですが、いつの間にか自然消滅してしまったので今週から復活です。

 

今日の成果

  • UnityとGitHubの連携環境を構築
  • UnityのシーンをiOS向けにビルドして実機で実行

 

作業ログ

Twitter を使って作業ログを残そうと思ったのでその過程のメモです。

 

Twitterでのメモの仕方とその利点

 

ここからゲーム制作開始です。

 

UnityのプロジェクトをGitHubで管理できる環境を整えます。

 

手取り早く3Dキャラクターを使いたいのでUnityちゃんを使用します。

unity-chan.com

© Unity Technologies Japan/UCL

 

先ほど制作したプロジェクトが開けないというトラブルが起きました。

ちょっとUnityのバージョンアップが入ってややこしくなったのかなと思って、リポジトリを削除しました。

 

Githubリポジトリ内にあるSettingからDanger Zone → Delete this repository を選択。

f:id:otonasisanoto:20200524151959p:plain

 

間違えないようにリポジトリ名を入力して削除します。

f:id:otonasisanoto:20200524152226p:plain

 

まあ削除方法は学べたのですが・・・

 

ということで先ほどのトラブルが解決してなかったです。

 

パスが問題なので色々と試した結果

 

ということでパスからDocumentsを消してUnityが開くことを確認。

これで大丈夫だと思ってGithubに上げたのですが・・・

 

意味なかったー。

Githubに上げていることが問題なのか。。。

 

ということでGithubにpushしたらフォルダが消えてたー。

ないフォルダを参照しようとしているのだから無効なパスなのは当たり前です。

 

pullしたら解決しました。

しかし、フォルダのパスがややこしいのでまたプロジェクトを作り直しました。

あー全くもう!

 

さらに、どうやらフォルダがアップロードを待機中と出ている際は、全てのファイルがGithub Desktopに反映されてないのかもしれません。

複数回コミットするハメになったのでちゃんとアップロードが終わってから先に進むのがいいのかもしれないです。

 

次にUnityちゃんのインポートですがこれは過去にやったことがあるので容易に出来ました。

 

さて、ここにサンプルシーンがありますのでiOS向けにビルドしようと思ったのですが、Unityちゃんのコードでビルドエラーが出てうまくいきませんでした。

とりあえず、iOS向けのビルドの方法を確認したかったのでインポートしたUnityちゃんを削除して空のシーンをビルドしてみました。

 

空のシーンをiOS向けにビルドするのは成功しました。

これでXcodeのプロジェクトが作成されましたので、今度はXcodeiPhoneの実機にビルドします。

 

MaciPhoneを繋いでビルドを実行したのですがエラーが出ました。

f:id:otonasisanoto:20200524182801p:plain

 

調べたところSigningのTeamがNoneになっていること、Provisioning ProfileがNoneになっていることが問題だったみたいです。

f:id:otonasisanoto:20200524183016p:plain

 

下記のようにAutomatically manage signingにチェックを入れてTeamやBundle identifierなどを以前、作っておいたものに変更しました。

ここら辺は訳わからんのでもっと勉強が必要です。。。

f:id:otonasisanoto:20200524183155p:plain


とりあえずこれでUnityでゲームを制作してiPhoneで実行する、という流れまではできるようになりました。

【ゲーム制作】「Cakewalk」を使ってゲームのBGMを作成する①

どうも音無サノトです(^^)

今月のゲーム制作はBGM作成(音楽作成)に力を入れていきたいと思います。

前回、操作を理解するために簡単に作ったのですが、今回はもうちょい本格的に作業ができてらなと思っています。

 

otonasisanoto.hatenablog.com

 

 

進捗報告

  • 曲のイメージをiPhoneのボイスメモアプリを使って鼻歌を録音
  • イメージ曲を元にドラムを打ち込みリズムを決めた

 

作業内容

ボイスメモでイメージを固める

まずどんな曲にするのかを考えて、鼻歌をiPhoneのボイスメモに録音します。

それを元にリズムや主旋律などを決めていこうと考えています。

 

こんな感じで大地をプレイヤーが走るだけのゲームをとりあえず作っているので、それのBGMを作りたいと思います。

f:id:otonasisanoto:20190831125345p:plain

 

イメージは「広大な大地」という感じ。

そんな感じっぽい曲を鼻歌で作ってボイスメモで録音しておきます。

 

ドラムの打ち込み 

イメージを録音したのでドラムの打ち込みをしていきます。

 

ちなみにボイスメモで録音したものをGmailやらDiscordやらを使ってPCに転送してドラッグ&ドロップでCakeWalk上に追加すれば、録音を聴きながら作業をできるので便利です。

 

ドラムの追加を行います。

ツールバーの挿入 → プラグインシンセ → SI-Drum Kitを選択し、ドラムを追加します。

f:id:otonasisanoto:20190908105426p:plain

 

今回はボイスメモに合わせて仮想コントローラを使用してドラムを打ち込むと直観的にやりやすいかなと思い、それを使用しました。

仮想コントローラはそれぞれのキーにドレミファソラシドが割り当てられていて、テンポに合わせてキーボードを押せば打ち込みができます。

表示 → バーチャルコントローラー → コンピュータキーボードで表示できます。

f:id:otonasisanoto:20190908115218p:plain

 

これで大まかな音を入力していきます。

今回はまずシンプルにバス・ドラムとスネア・ドラムでリズムを取ります。

不慣れなので結構、テンポを合わせるのが大変です。。。

 

細かい部分はピアノロールで調整します。

f:id:otonasisanoto:20190908120920p:plain

 

出来上がったリズムをCtrlを押しながらドラッグして増やします。

タイミングを合わせて大まかなリズムの完成です。

f:id:otonasisanoto:20190908121149p:plain

 

細かいアレンジは全体が出来上がってきてから修正していこうと思います。

 

次回予告

次回はベースとピアノなど音色を増やしていこうと思います。

 

本日は以上となります。最後まで読んでいただきありがとうございました!

【ゲーム制作】Blenderを使ってラビットハウスっぽいやつをモデリングする⑤

どうも音無サノトです(^^)

週末のゲーム制作記事!! 

そろそろモデリングの方をいったん切り上げたいと思います。

 

otonasisanoto.hatenablog.com

 

今日はテクスチャを貼ってみます。

 

 

進捗報告

  • 法線の出し方を学んだ
  • マテリアルを適用して色を変えた
  • テクスチャを適用して色をつけた
  • BlenderからUnityへのエクスポートを行った 

 

作業内容

ドアの修正

まずドアの部分が色がちょっと違うので、面が裏になっている可能性があります。

この状態でテクスチャをはっても裏面に貼られるため意味がありません。

f:id:otonasisanoto:20190818080651p:plain

 

そこで、まず面がどちらを向いているのか法線を表示して確認します。

 

オブジェクトモードでドアを選択後、編集モードにします。

「N」キーを押してウィンドウを開き、法線(Normals)を表示する部分の面のアイコンを押します。

f:id:otonasisanoto:20190818081106p:plain

 

するとドアの面に青い線が表示されて面がどちら側を向いているか確認することができます。

f:id:otonasisanoto:20190818081135p:plain

 

・・・あれ? ちゃんと全部、表面を向いていますね。

勘違いだったかorz 

まあ、でもやり方の確認はできたのでよしとします。

 

テクスチャ

それではテクスチャを付けていこうと思います。

今回は地面、ドア、屋根、窓、建物とオブジェクトが分かれているので、その順番でテクスチャを付けていきます。簡単にできそうな順です。

 

地面

まずPlaneを伸ばしただけの地面に色を付けます。

f:id:otonasisanoto:20190818081632p:plain

ここはテクスチャではなくマテリアルを追加して、1色にするだけにしようと思います。

 

オブジェクトを選択し、右側のウィンドウで水晶みたいなアイコンをクリックします。

その後に「New」を選択し、マテリアルを追加します。

f:id:otonasisanoto:20190818081914p:plain

 

すると下の様な画面になるのでそれぞれを変更します。

設定できるものは以下のものです。

Diffuse:色

Specular:ハイライト

Shading:光

f:id:otonasisanoto:20190818082244p:plain

 

赤矢印のところで色とIntensit(明るさ)を変更します。

 

すると床の部分を茶色っぽく変更できました。

f:id:otonasisanoto:20190818082633p:plain

 

ドア

次に簡単そうなドアにテクスチャを貼ります。

f:id:otonasisanoto:20190818083020p:plain

 

まずはUV展開を行います。

UV展開とは立体の図形を平面に起こすような作業です(ざっくり説明)。

 

オブジェクトモードでドアを選択して、編集モードでドアの窓側になる部分の辺を選択します。

f:id:otonasisanoto:20190818083448p:plain

 

Ctrl + E キーを押して、Mark Seamを選択します。

f:id:otonasisanoto:20190818083612p:plain

 

すると辺を選択した部分が赤くになります。

f:id:otonasisanoto:20190818083633p:plain

 

こうすることでUV展開をしたときに、切れ目を入れた部分がいい感じになるはずです。

 

作業がしやすいように画面を分割します。

右上の三本線マークのところをドラッグ&ドロップします。

f:id:otonasisanoto:20190818084304p:plain

 

こんな風に分割できました。

右側をUV展開のビューに変更したいと思います。

f:id:otonasisanoto:20190818084507p:plain

 

左下にあるViewの隣のアイコンを押して、UV/Image Editorを選択します。

f:id:otonasisanoto:20190818084726p:plain

 

モデルを表示している方で作業をします。

「A」キーで全面を選択して、「U」キーを押してUnwrapを押します。

これでUV展開がされたはずです。

f:id:otonasisanoto:20190818083905p:plain

 

UV/Image Editorの方で見るとこんな感じに展開されています。

f:id:otonasisanoto:20190818084932p:plain

 

下の「UVs」を選択し、Export UV Layoutでテクスチャをエクスポートします。

f:id:otonasisanoto:20190818085203p:plain

 

PNG形式でエクスポートできるのでお好みのペイントソフトでテクスチャを作成していきます。

自分は使い慣れているMediBang Paintを使いました。

 

下の様にテクスチャを作成しました。

窓の部分を水色、他を茶色にしたシンプルなものです。

f:id:otonasisanoto:20190818094342p:plain

 

元になるガイド線も描いてしまうと、その線も描画されてしまうので注意が必要です。

 

UV/Image Editorの下にある「Open」を選択。

 

f:id:otonasisanoto:20190818094617p:plain

 

先ほど、作った画像を選択します。

 

下にあるアイコンで「Texture」を選択するとドアにテクスチャが貼られていることを確認できます。

f:id:otonasisanoto:20190818093413p:plain

 

ライトの位置をずらさないと見づらい場合があります。

これでひとまずテクスチャの貼りかたはOKですかね。

 

同じ要領で屋根もテクスチャを貼ります。

 

建物

次に、建物にマテリアルを適用していきたいと思います。

まず、建物と前面上層の窓部分を結合してしまったので、テクスチャを貼るのが面倒です。

そこで、建物と窓を分割します。

 

編集モードで窓部分を選択。

f:id:otonasisanoto:20190831111757p:plain

 

「P」キー → Selection を選択します。

f:id:otonasisanoto:20190831111854p:plain

 

すると選択した部分のオブジェクトを分割することができます。

f:id:otonasisanoto:20190831111916p:plain

 

では、建物部分にマテリアルを追加します。

地面にマテリアルを設定したのと同じ要領でオブジェクトにマテリアルを追加。

色部分をスポイトで屋根と同じ色を取ります。

f:id:otonasisanoto:20190831112559p:plain

 

すると建物にも色を付けることができました。

f:id:otonasisanoto:20190831112636p:plain

 

 

次に窓部分にテクスチャを貼っていきます。

とりあえず、先ほどと同じ要領で前面の窓を個別に分割。

f:id:otonasisanoto:20190831113211p:plain

 

片方の窓部分にテクスチャを貼ります。

窓部分だけを面選択して、Ctrl + 「E」キー → Make Seam を選択。

f:id:otonasisanoto:20190831113539p:plain

 

窓を「A」キーで全選択して、「U」キー → Unwrap でUV展開します。

f:id:otonasisanoto:20190831113844p:plain

こんな感じ

 

UV/Image EditorのUVs → Export UV LayoutでUV展開したマップを出力し、ペイントソフトで色を塗ります。

f:id:otonasisanoto:20190831114511p:plain

 

このテクスチャをUV/Image EditorのOpenから選択するとテクスチャが適用されます。

f:id:otonasisanoto:20190831114626p:plain

 

このテクスチャを貼ったオブジェクトを複製する方がラクでしたね。

失敗しました。

 

ということで、このテクスチャ付きオブジェクトを、複製して上の窓の部分を完成させます。

 

右側と

f:id:otonasisanoto:20190831115758p:plain

 

左側。

f:id:otonasisanoto:20190831120049p:plain

 

いい感じですね。

 

同じ要領で下の窓もテクスチャを貼って完成です。

f:id:otonasisanoto:20190831121420p:plain

完成!!

 

まあ素人が作ったんだから、こんなものでしょう。

時間があれば、もっと細部までやりたいところですが、今回はここまでとします。

 

Unityへ導入

では作ったオブジェクトを書きだしてUnityに入れてみたいと思います。

前回までに作成したプロジェクトに入れてみます。

otonasisanoto.hatenablog.com

 

カメラと光源は邪魔なので消しました。

オブジェクトを全選択して、ExportでFBX形式を選択します。

f:id:otonasisanoto:20190831121639p:plain

 

左下にあるエクスポートの詳細設定で以下のように変更します。

Selected Objects にチェック

Scale : 1.00

!EXPERIMENTAL! Apply Transform にチェック

Forward : Z Forward

Up : Y Up

f:id:otonasisanoto:20190831123455p:plain

 

このFBX形式のフォルダをドラッグ&ドロップでUnityのAssetsフォルダに入れて、シーンに持っていけば、できると思ったのですが。。。

f:id:otonasisanoto:20190831124017p:plain


なぜかテクスチャが反映されていないです。。。あれ?

 

調べたところ、別の方法の方がうまくできそうです。

 

まず、.blend形式のファイルとテクスチャのファイルをUnityのAsseteフォルダ内にドラッグ&ドロップします。

わかりやすいように自分は「RabbitHouse」というフォルダを用意しました。

f:id:otonasisanoto:20190831124934p:plain

 

そして、シーン内にオブジェクトを持っていきます。

このときはまだテクスチャが反映されていません。

 

それぞれのテクスチャをシーンに追加したモデルにドラッグ&ドロップしていきます。

f:id:otonasisanoto:20190831125219p:plain

 

この作業を全パーツに行うことでテクスチャを反映させることができました。

f:id:otonasisanoto:20190831125345p:plain

こんな感じです!

屋根と建物の色が微妙に違うことから、マテリアルの色とテクスチャの色では差異がでるみたいです。

次にやるときは、そこを留意してやらなければなと思います。

 

とりあえず、以上でラビットハウスっぽいやつのモデリング終了です。

 

次回予告

次回はBGM制作をしていこうと思います。

 

本日は以上となります。最後まで読んでいただきありがとうございました!