68
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Unity】自分の思い描いたキャラクターを作成し、最速で動かす

Posted at

##はじめに
Unityでゲームを作る際、
自作のキャラクターをUnityの空間上で走り回らせたいとお考えの方へ

私もネットで調べて、候補となるツールのバリエーションに圧倒され、
**「結局どれを使えばいいんだ!」**と悩みました

そのため、各作業ごとのオススメのツール(無料)を紹介しながら、
実際に動き回るところまで説明していきたいと思います。

##全体像
モデル作成から動かすまでの流れはこんな感じ
Untitled Diagram.png

最短で自作キャラをUnity上で動かすには、
Unityの「Humanoid」型のモデルを作成するのが手っ取り早いです。
Untitled Diagram (1).png

「Humanoid」型のモデルとは特定の骨を持つモデルのことで、
この骨格を持つモデルを作成することで、AssetStoreから取得したモデル(ユニティちゃんなど)のアニメーションを自作キャラクターに反映させることができます。

要は上記画像の「2.骨入れ」を決まった形で作成することで、
「3.アニメーションの作成」をすっ飛ばすことができます。

今回はこの方法で最速で作成をしていきます。

##モデル作成
選択肢が多いモデル作成について、作りたいもの別に3種類紹介します。

Untitled Diagram (2).png

今回はSCULPTRISを使用してモンスターをつくていきたいと思います。
今回使用しないツールについては、参考リンクを貼っておきます。

・VRoid
「VRoid Studio」で作った3Dモデルを「Unity」で踊らせてみよう

・123D CATCH
[友人をスマホで撮影して3Dモデル化してUnityで動かしてみた]
(https://yandod.github.io/blog/2015/02/01/123d-blender-unity/)

##モデル作成(SCULPTRIS)
直感的に作業を行えるため、深くは説明しません。

紹介・インストール方法が記載されているここを参考に、
思い思いのキャラクターを作ってみましょう。

最後にデータをエクスポートして完了です。
ここを参考に、.obj(モデルデータ)・.png(テスクチャーデータ)を保存しましょう。

公式ガイドは以下です
Sculptris Alpha6 日本語ガイド

##骨入れ
上記モデル作成でどのツールをしようしたとしても、骨入れ作業はBlender一択になります。
Blenderでは骨入れ以外にもモデル作成など、様々なことができるそうなので詳しくはこちらをみてください。

インポート・位置調整

基本的にはこちら参考に進めてください。

1.ファイルから、インポート > Wavefront(.obj)を選択
スクリーンショット 2019-08-28 20.47.21.png

2.Cubeを削除し、Amatureを選択・下の箱のアイコンをクリックし、位置情報の表示
スクリーンショット 2019-08-28 20.34.45.png

3.青(上下)・赤(左右)・緑(前後)の矢印をスライドさせ、足の裏が赤緑の面にちょうどくっ付くように調整
スクリーンショット 2019-08-28 20.36.02.png

テスクチャの適用は行う必要ありません、これで準備は完了です。

###骨入れ
基本的にはこちら参考に進めてください。

1.Shift + a でメニューを表示、アーマチェア > 単一ボーンを選択
スクリーンショット 2019-08-28 21.00.37.png

2.Amatureを選択した状態で、レントゲンオプションをオンにする
スクリーンショット 2019-08-28 21.04.48.png

3.参考リンクを参照に骨入れをする
(<重要>骨の数と名前を一致させてください)
スクリーンショット 2019-08-28 21.12.49.png

4.モデルとAmatureを選択
スクリーンショット 2019-08-28 21.15.03.png

5.ファイルから、エクスポート > FBX(.fbx)を選択肢し、指定フォルダに保存
スクリーンショット 2019-08-28 21.15.16.png

##Unityでの作業
AssetStoreからモーションデータを取得し、モデルに設定しましょう。

1.AssetStoreから「Unity-Chan Model」をインポート
スクリーンショット 2019-08-28 22.26.45.png

2.右グリックでCreate > Animator Controllerを選択し、
作成したコントローラーをダブルクリック
スクリーンショット 2019-08-28 22.37.08.png

3.開いたウィンドウ上で右クリック、Create State > Emptyを選択
スクリーンショット 2019-08-28 22.41.30.png

4.Inspecterから名前を「Run」などに変更し、Motionを選択
※今回はUnity-Chanの「RUN00_F」を使用します
スクリーンショット 2019-08-28 22.43.23.png

5.もう一度Stateを作成し、Inspecter上で編集
※Stopと名付けて、「POSE01」を設定します
スクリーンショット 2019-08-28 22.47.59.png

6.AnimatorウィンドウでParametor上でBoolを選択し、run変数を作成
※アニメーションの状態遷移を切り替える変数を作成します。
スクリーンショット 2019-08-28 22.46.31.png

7.先ほど作ったRunとStopをそれぞれ右クリック、Make Transitionを選択し、
InspecterのConditionsを画像の通り設定
※run変数が指定した状態になるとアニメーションが切り替わる仕組みです。

スクリーンショット 2019-08-28 22.50.06.png
スクリーンショット 2019-08-29 20.59.04.png

8.作成したコントローラーをモデルのAnimatorに設定
スクリーンショット 2019-08-29 21.26.28.png

9.以下のスクリプトを作成し、モデルに設定

Model.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Model : MonoBehaviour
{
  private Animator animator;
  // Use this for initialization
  void Start () {
      animator = GetComponent<Animator>();
  }

  // Update is called once per frame
  void Update () {
      if (Input.GetKey("up")) {
          transform.position += transform.forward * 0.05f;
          animator.SetBool("run", true);
      } else {
          animator.SetBool("run", false);
      }
      if (Input.GetKey("right")) {
          transform.Rotate(0, 10, 0);
      }
      if (Input.GetKey ("left")) {
          transform.Rotate(0, -10, 0);
      }
  }
}

完成!
スクリーンショット 2019-08-29 21.34.13.png

##まとめ
sculptrisでキャラクターを作成するのに最初は時間がかかると思いますが、
慣れれば、この一連の作業で1時間かからずに終わると思います。

今回はAnimationをAssetStoreのものを使用しましたが、
Blenderを使えば自作アニメーションも作れます!

VtuberやVRChatなど遊びの幅も広がると思うので、ぜひ試してみてください!

68
85
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?