UnityとBlenderでRPGを作る #3 – キャラクターを動かす

前回までで床とキャラクターの設置までが終わったので、今回は設置したキャラクターを動かしてみましょう。

カメラ位置修正

デフォルトのままだとちょっと見にくいので、カメラの位置を変えてみます。
メインカメラを選択して、Yを1から4に変更しました。

右下の「Camera Preview」で確認ができます。
見下ろす形になって見やすくなりました。

キャラクターを動かすための準備

コンポーネントとしてRigidbodyとCapsule Colliderを追加します。
キャラクターを選択した状態で、Add ComponentからRigidbodyを追加します。

Rigidbodyを追加する ( Unity )

つぎに、同じ要領でCapsule Colliderを追加します。

はい、追加できました。
では続いて、Capsule Colliderの位置が変なので調整しましょう。
なんか下にめり込んでますよね。

Unity Capsule Colliderの設定

CenterとHeightをキャラクターを包むような大きさに修正します。

今回はCenterのYを0.9, Heightを1.8としました。

キャラクターを動かすためのスクリプトを書く

キャラクターを動かすためにスクリプトを書きます。
まずはスクリプトファイルを作りましょう。
AssetにScriptというフォルダを作ります。これは単にAssetを整理しやすくするためです。

Unity Asset

作成したフォルダを開き、スクリプト用のファイルを作ります。
Assetsの先ほど作成したScriptフォルダをダブルクリックした後、そのウインドウで右クリックし、Create > C# Script を選択し、新規スクリプトファイルを作成します。
ファイル名はCharacterControllerとしましょう。

はい、ファイルが作れましたね。
早速開いてみましょう。
テキストエディタなら何で開いてもよいですが、今回はVisual Studio 2019で開きます。

ここに以下のコードをコピペします。
内容わかんなくても大丈夫です。

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

public class CharacterController : MonoBehaviour
{

    public float speed = 3f;

    private Rigidbody rb;
    private float h, v;
    private Vector3 moveDirection = Vector3.zero;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        rb.constraints = RigidbodyConstraints.FreezeRotation;
    }

    // Update is called once per frame
    void Update()
    {
        h = Input.GetAxis("Horizontal");
        v = Input.GetAxis("Vertical");

        if (h != 0 || v != 0)
        {
            moveDirection = speed * new Vector3(h, 0, v);
            moveDirection = transform.TransformDirection(moveDirection);
            rb.velocity = moveDirection;
        }
    }
}

ソースコードは以下を参考にさせていただきました。
https://qiita.com/tomopiro/items/e691524c3c0eef16c089#%E7%A7%BB%E5%8B%95%E6%96%B9%E6%B3%95%E3%81%9D%E3%81%AE1

続いて、キャラクターオブジェクトに先ほどのスクリプトを追加します。

十字キーで操作すると、キャラクターが動きます。

動くようになりましたが、物体が動いてる感がすごいですね。
次回は動きに合わせて方向を変えたり、アニメーションしたりするようにします。

UnityとBlenderでRPGを作る #2 – ステージを作り、キャラクターを置いてみる

前回プロジェクトを作ったので、今回はステージを作って、プレーヤーも置いてみます。

床を作る

現在は何もない状態なので、まずは地面を作ります。
Hierarchy > Create > 3D Object > Planeを選択し、床を作ります。

Unity 地面を作る

はい、これで床ができました。

プレーヤーキャラクターを配置

続いて、キャラクターを置いてみましょう。
キャラクターの作り方はこちらを参考にしてみてください。
BlenderでエクスポートしたFBXファイルをAssetにドラッグドロップします。
今回使ったFBXファイルはここに置いておきますね。

次に、Animation Typeを設定しておきます。
キャラクターを動かすときに必要です。

Humanoidを選択したら、下のApplyボタンを押して適用します。

続いて、実際にゲーム上に置いてみましょう。
AssetからHierarchyにドラッグアンドドロップします。

なんかめり込んでしまっているので、位置調整しましょうか。
PositionのYを1にします。

これでキャラクターを配置することができました。
本日はここまで。
明日はキャラクターを動かせるようにしてみます。

UnityとBlenderでRPGを作る #1 – Unityのプロジェクトを作る

前回、Blenderでキャラクターを作ったので、今度はそれをUnity上で動かしてみます。

プロジェクト作成

まずはUnityのプロジェクトを作りましょう。
Unityのインストールなどは省きます。バージョンはUnity 2019.2.12f1です。

Unityを開き、新規作成をクリックします。

プロジェクト名はRPGとしましょうか。
今回は3Dのプロジェクトを作りますよ。

作成をクリックすると空のプロジェクトが作成されます。

本日はここまで~。

Blender 練習 キャラクター作り その3 動かす

3DCGが歩いてます

前回(その2)

前回まででモデルの準備ができたので、続いてボーンを入れて実際にUnityで動かしてみます。

ボーンはこちらにあります。

メタリグ

ボーンを入れる Blender
ボーンを追加

ボーンを追加したら、拡大縮小してモデルとボーンを合わせます。

ボーンを修正 blender
ボーンを修正

続いて、ボーンとモデルをペアレント設定します。

まずはモデル、ボーンの順に選択して、

選択する

つぎにペアレントを設定します。「Ctrl + P」を押したあとに、以下の「自動のウェイトで」を選択します。

自動のウェイトで

これでペアレント設定が完了したので、Unityで使えるように保存します。

ファイル→エクスポート→FBXの順に選択して、FBX形式で出力します。
このとき、カメラなどは不要なので、メッシュとアーマチュアのみをエクスポートするようにします。

FBXで出力
FBXで出力

以降はUnityでの作業。

プロジェクトに先程作ったFBXファイルをドラッグドロップします。

Unityのインスペクタから、Rig→Animation Type→Humanoidに設定して「Apply」ボタンを押します。

これでエラーが出なければ成功なのですが。。。。私はここで失敗しました。

Unity Blender

足の部分が失敗しているみたいです。

これはどうやら、脚を1つの立方体で作ってしまったために起こった模様。

というわけで足を作り直しました。

脚の作り直し
脚の作り直し

太ももとふくらはぎを2つの立方体で作り直しました。

脚の作り直し
脚の作り直し

うまくいきましたー。

あとはアニメーションを持ってきます。

Unity-chanをアセットストアからインポートして、オブジェクトに設定したました。ここはUnityの設定なので割愛。

歩くアニメーションを設定したら、ちゃんと動きました〜。

3DCGが歩いてます
3DCGが歩いてます

Blenderで作ったモデルの動かし方はだいたいわかったので、今後はUnityでの操作方法など勉強してみます。

Blender 練習 キャラクター作り その1 胴体と頭

Unity でゲームを作ろうと思ってまして。

手始めとして Blender で3Dモデリングを勉強してます。

まずはキャラクター作りの練習から。

立方体を変形して胴体を作成します。

続いて、位置を調整した後、半分に切って左半分を削除して、ミラーを追加します。

胴体を真ん中から上に移動。

さらに、UV球メッシュを追加します。

これで胴体と頭まで追加が完了。

次回は手足を作ります。

Blender 練習 キャラクター作り その2 手足

3Dモデリング勉強中

3Dモデリングを勉強中です。

ソフトはBlender

本はこちら。ソーテック社の、Blender 3DCG モデリングマスター。

基本操作や考え方が学べて、なかなか良い本です。