【第一弾】Unityでキャラクターを歩かせよう!【実装方法解説】
こんにちは!
テックチャンスブログ編集部の國貞です!
今回はUnityでどんなことができるのか知ってもらうために、Unityを使って実際にキャラクターを動かしてみます!
手元にUnityを動かせる環境があれば、ぜひ一緒にやってみてくださいね!
それでは初めていきましょう!
この記事のコンテンツ一覧
プロジェクトを作ろう
「Unity Hub」から新規プロジェクトを作成しましょう!
テンプレートは「3D」、プロジェクト名は自由ですが、今回は簡単に「SmapleProject」としておきます。
確認できたら「プロジェクト作成」をクリックします。
Unityが開いたら、右上から「layout」を「2 by 3」にしておきましょう。
また、Projectは右上の「3点マーク」から、「One Column Layout」にしておきましょう。
キャラクターを手に入れよう
プロジェクトが準備できたら、キャラクターを手に入れます。
今回は、Unity公式キャラクターの「UnityChan」を使うことにします。
キャラクターをインポートしよう
ダウンロードページにアクセスして、利用規約に同意のうえ、「データをダウンロードする」をクリックしてください。
たくさんあるデータの中から、「SDユニティちゃん 3Dモデルデータ」の「DOWNLOAD」ボタンをクリックして、データをダウンロードしましょう。
パソコンのダウンロードフォルダから、「SD_UnityChan-1.unitypackage」をダブルクリックします。
インポート用のウインドウが出てくるので、右下の「Import」をクリックして、Unityに取り込みましょう。
キャラクターを表示しよう
「Project」に新しく「UityChan」フォルダが生成されるので
「UnityChan」 →「SD_unitychan」 → 「Prefabs」 → 「SD_unitychan_humanoid」と選択して、「Hierarchy」にドラッグ&ドロップしましよう!
「Scene」画面にユニティちゃんが表示されますね。
※ 小さくて見えない人は「Hierarchy」の「SD_unitychan_humanoid」の名前をダブルクリックしてみましょう。画面がユニティちゃんに寄ってくれるはずです。
「Hierarchy」の「Main Camera」を選択して、上の「GameObject」 → 「Align With View」をクリックすると、「Game」画面が、「Scene」画面と同じ視点になります。
このような感じになりましたか?
エラーを修正しよう
エラーが出てきたときに確認するための「Console」画面を準備しておきましょう。
上の「Window」 → 「General」 → 「Console」をクリックします。
Consoleのウインドウが出てきたら、ウインドウのタブをドラッグして、「Scene」の横にドロップしておきましょう。
さっそく「Console画面」にエラーが出ていますね。
今回のエラーはスクリプトファイルがおかしいみたいなので、エラーをダブルクリックして、問題のスクリプトを修正しておきましょう。
※ 修正しておかないと、ゲームを起動できません。
ダブルクリックするとエラー対象のスクリプトが開くので、8行目の
using System.Security.Policy;
の1行を削除しましょう。
削除したらプログラムを保存してくださいね。
「command + S(Ctrl + S)」で保存できます。
修正後にUnityに戻るとエラーが消えていますね。これでOKです。
下準備をしよう
キャラクターを動かすにあたって、余計な機能はオフにしておきます。
上の再生ボタンからゲームを起動するとわかりますが、初期設定だと画面にいろんなUI(ユーザーインターフェース)が表示されていると思います。
これらは今回は使わないのでオフにしておきましょう。
「Hierarchy」の「SD_unitychan_humanoid」を選択して、右の「Inspector」の
- Idle Changer(Script)のチェックをオフ
- Idle Changer(Script)内の「Is GUI」のチェックをオフ
- Face Update(Script)内の「Is GUI」のチェックをオフ
- Random Wind(Script)内の「Is GUI」のチェックをオフ
- IK Look At(Script)内の「Is GUI」のチェックをオフ
にしておきます。
これでゲームを起動してもUIが表示されなくなりますね。
地面を用意しよう
歩くための地面を用意しましょう。
「Hierarchy」の「+」ボタンから「3D Object」 → 「Plane」を選択します。
名前は「Floor」に、「Transform」は「Scale」を全て「10」にしておきます。
右上の「Static」にチェックを入れておきましょう。
キャラクターの設定をしよう
ユニティちゃんの設定も合わせてしておきます。
「Hierarchy」の「SD_unitychan_humanoid」を選択して、「Inspector」を下までスクロールしたところにある「Add Component」をクリックします。
- Rigidbody
- Capsule Collider
を検索して追加し、次のように値を修正しましょう。
- Center Y : 0.5
- radius : 0.3
ゲームを実行してみて、ユニティちゃんがきちんと地面に立っていればOKです。
アニメーションを設定しよう
次に、歩いたときのアニメーションを設定しておきます。
「Project」の「+」をクリックして、「Animation Controller」をクリックします。
名前は「PlayerAnimation」としておきます。
名前が変更できたら、右の「Inspector」から「Open」をクリックしましょう。
次のようなAnimatorウインドウが開きます。
ウインドウが開いたら、誤って閉じてしまわないように、右上の鍵マークをクリックして固定して表示しておきましょう。
続いて、歩いたり止まったりするときのためのアニメーションを用意しましょう。
アニメーションを作る
「Hierarchy」の「SD_unitychan_humanoid」を選択して、「Inspector」の「Animator」 → 「Controller」に、先ほど作った「PlayerAnimation」をドラッグ&ドロップします。
Animatorウインドウの黒い部分を右クリックして、「Create State」 → 「Empty」をクリックします。
「NewState」というオレンジ色のブロックができるので選択して、
名前を「Idle」、Motionを「Standing@loop」に設定します。
※ 「Standing@loop」は同じ名前が2種類あるけど、片方は対応していないバージョンなので注意してね。
間違った方を選択すると、ゲームを実行したときにユニティちゃんが地面に埋まってしまいます。
ゲームを実行したときに、下の画像のようにユニティちゃんが地面に立っていればOKです。
アニメーションを切り替えよう
新たにAnimatorウインドウの黒い部分を右クリックして、「Create State」 → 「Empty」をクリックします。
作成された「New State」をクリックして、「Inspector」から
名前を「Walking」、Motionを「Walking@loop」に設定します。
すでに作成された「Idle」を右クリックして、「Make Transition」をクリックします。
矢印が出てくるので、そのまま「Walking」をクリックしましょう。
「Idle」と「Walking」が矢印でつながりましたか?
同様に、「Walking」を右クリックし、「Make Transition」を選択、そのまま「Idle」をクリックし、矢印で相互につなぎましょう。
次のような状態になっていればOKです。
アニメーションの切り替え条件を設定する
Animatorウインドウの左上にある「Parameters」をクリックして、「+」→「bool」の順にクリックします。
名前を「walking」にしておきましょう。
「Idle」と「Walking」の間にある矢印をクリックして、「Inspector」からConditionsの「+」ボタンをクリックしましょう。
次の画面のように、「walking」「true」がセットされていればOKです。
同様にもう一方の矢印をクリックして、Conditionsの「+」ボタンをクリックします。
今度はConditionsが、「walking」「false」となるようにしておきましょう。
※ 滑らかにアニメーションするように、矢印をクリックしたときの「Has Exit Time」は、どちらもチェックを外しておきましょう。
アニメーションを確認しよう
上の再生ボタンからゲームを実行して、アニメーションの動きを確認してみましょう。
Animatorウインドウの「walking」のチェックを入れると歩き始めますね。
「walking」のチェックを外すと止まるはずです。
まとめ
どうでしたか?
今回はアニメーションの設定までを解説してみました。
次回は、実際に歩くようにするためのプログラムの実装までを解説していきます。
【第二弾】Unityでキャラクターを歩かせよう!【実装方法解説 その2】
お気軽にテックチャンスの無料体験にお越しください!
我々が運営しているプログラミング教室テックチャンスでも、定期的に無料体験授業を実施しています。
テックチャンスでは、ビジュアル型プログラミングを用いたScratchコースや、マインクラフトの中で「タートル」というロボットにプログラミングをして動かすマインクラフトプログラミングコース、実際にアプリやゲームを本格的に作れるUnityアプリ・ゲーム開発コースなど、初心者から上級者まで幅広くプログラミングを学べるよう多数のコースを揃えています。
コンピュータを全然使ったことがない状態でも、お気軽に無料体験にお越しください。
実際、TechChance! で初めてプログラミングを学び、一年半でプログラミングコンテストで受賞した生徒も居ます。
詳細はこちら→学習歴たった1年半の広島県の高校生が、プログラミングコンテストで入賞出来た理由
機会を与えてあげられるのは、周りの大人だけ。
お待ちしています!
詳細はこちら→80%超の参加者が入塾を決めるTechChance!の無料体験授業とは?