Blog

プレイヤーをPCのゲームパッドで動かせるようにしたい

前回作った人型モデルは、カーソルキーで縦と横にしか動かせないため、手持ちのゲームパッドで自由に動かせるようにしたい。

以下のサイトを参考に、ゲームパッドからキー情報を取得してみる。

キーが押されたかどうかは、以下のプログラムで簡単に取得できるようである。


// 左十字キーが押された場合
Input.GetButtonDown("joystick button 7");

自分が持っているLogicoolのRumblePad2では以下の割り当てであった。
十字キー上:Axis 6 negative
十字キー下:Axis 6 Positive
十字キー左:Axis 5 negative
十字キー右:Axis 5 Positive
左スティック上:Axis 2 negative
左スティック下:Axis 2 Positive
左スティック左:Axis 1 negative
左スティック右:Axis 1 Positive
右スティック上:Axis 4 negative
右スティック下:Axis 4 Positive
右スティック左:Axis 3 negative
右スティック右:Axis 3 Positive
ボタン1:Buttan0
ボタン2:Buttan1
ボタン3:Buttan2
ボタン4:Buttan3
ボタン5:Buttan4
ボタン6:Buttan5
ボタン7:Buttan6
ボタン8:Buttan7
ボタン9:Buttan8
ボタン10:Buttan9

キーボードからの操作と、ゲームパッドからの操作の両方を受け付けれるようにするために、Input Managerを使うとよいらしい。

3D人型モデルを地面に立たせる

開発環境
・Mac Mini(macOS Sierra)
・Unity 2018.2.2f1

以下のサイトを参考に、3Dの人型モデルを地面に立たせてみる。

【UnityC#講座】3D人型モデルの動かし方をユニティちゃんで学ぶ【Animator】

新規プロジェクトを作成する
3Dのゲームを開発するプロジェクトとして、新規プロジェクトを作成する。
プロジェクト名は、「practice_3d」とする。

sceneを新規作成する
「File」-「Save Scene」として、sceneに名前をつけて保存する。
ここではScene名を「01_3d_human_model」とする。
保存したファイルは、「Assets」-「Scenes」以下に格納する。

sceneだけでなく、作成したファイルはフォルダを分けて整理する癖をつけた方がよいようである。
どのように整理したら良いかは、これらのサイトがいい感じにまとめてある。

3D人型モデルをダウンロードする
ここでは3D人型モデルをダウンロードして使用する。
UnityのAsset Storeから、無料で使用できる「Unity-chan!」をダウンロードする。
メニューの[Window]-[General]-[Asset Store]を選択して、Asset Storeを開く。

「Unity-chan!」したら、以下の画面からImportする。

とりあえずすべてインポートする。

インポートするファイルをどこに格納するかが問題であるが、とりあえず今は「Externals」というフォルダを作って、Asset Storeから入手したファイルを格納します。
(使うファイルは、Import後に整理した方がよいのかもしれない・・・・)

Assetsから UnityChan > Models > unitychanから選んで、Hierarchyにドラッグ&ドロップする。
(UnityChan > Prefabs > unitychanはすでに表情とかモーションが組み込まれていると思われる)

Unityちゃんに物理演算を行うために、コンポーネント「Rigidbody」を追加する。

この状態でプレイボタンを押すと、地面がないため、Unityちゃんは落ちる。
次にUnityちゃんが立つ地面を作る。

3DオブジェクトのPlaneを追加する。

PlaneのTransform PositionはX:0:Y:0Z:0とする。

この状態でプレイボタンを押すと、Unityちゃんに当たり判定となるColliderが設定されていないため、また下に落ちる。
次にUnityちゃんにColliderを設定する。
Unityちゃんに「Capsule Collider」を追加する。

Colliderの大きさがUnityちゃんに合っていないため、参考サイトにならい以下の値にする。

プレイボタンを押しても、Planeの上にのって、下には落ちないようになる。

Unityのプロジェクトをgitで管理する

Unityでゲームを作っている時に、変更履歴などを確認したいため、Unityのプロジェクトをgitでバージョン管理する。

サーバ上にリポジトリ(Remote)を作成する

サーバ上にbareリポジトリを作成する。
本フォルダの下に分類するフォルダを作成し、その下にbareリポジトリを作るものとする。

$mkdir xxx.git
$cd xxx.git
$git init –bare –shared

ローカルPCでクローンを作成する

sourcetreeでのクローン設定では、リポジトリのパスは以下となる。

ssh://[ユーザ名]@[サーバのIP]/home/username/repos/unity/sample_project.git

 

Unityで新規プロジェクトを作成する

プロジェクトをデスクトップに作って中のファイルを先ほどクローンしたフォルダ以下に移動させる。

 

Unity プロジェクトの設定

メニュー「Edit」→「Project Settings」→「Editor」 Inspectorビューの Editor Settings を設定する Version Control の Mode を Visible Meta Files に変更する
Asset Serialization の Mode を Force Text に変更する

 

.gitignoreの設定

SourceTreeの.gitignoreとして以下をコピーする。


/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*

# Visual Studio 2015 cache directory
/.vs/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb

# Unity3D generated meta files
*.pidb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage