Unity

【Unityスマホゲーム開発】ジョイスティックで3Dキャラクターモデルを動かす方法【無料アセット”Joystick Pack”を使います】

本記事内には、アフィリエイトリンクを含む場合があります

自分でゲームを作った! 早速、友人に遊んでもらおう!

と思っても、 今の時代は、スマホしか日常的には使わない人が多く、

わざわざパソコンを出してきて、「起動→遊ぶ」までに至ってくれないことはありませんか?

それ以降も、パソコンでは、気が向いたから、遊ぼうとはなりませんね?

なので、できるだけ多くの人に遊んでもらうためには、

スマホに対応したゲームを作る必要があります。

そこで、本記事では、

スマホで操作可能なジョイスティックの実装方法

ジョイスティックによる3Dオブジェクトや3Dキャラクターを動かす方法

を紹介したいと思います。

本記事を最後まで読むと、これができます↓

開発画面(PC)なので、ボタンとスティックを同時に操れてませんが、 スマホ上なら操れます!

1.アセット”Joystick Pack”のインストール

さまざまなジョイスティックのツールアセットが、

Unity Asset Storeには販売されています。

しかし、個人的に、一番シンプルで、初心者が扱いやすいのは、

Joystick Pack」(無料)であると考えます。

※誰でも速攻でゲームを作れるアセットの、「StandardAsset」にもジョイスティック素材は含まれていますが、とても操作性が悪いかった・・・。

なので、アセットストアよりダウンロードし、 適用したいプロジェクトにインポートします。

いつの間にか、Unity Editorに「Package Manager」からダウンロードおよびインポートできるようになっていました! それほどスタンダードなアセットなのですね^^

アセットストアからだと「Open Unity」をクリックすれば、 Editorをインポートするウィンドウに行けます。

 

2."JoyStick Pack”でオブジェクトを動かす

インポートした「Joystick Pack」の「Prefabs」の中に、 シーンにドラッグ&ドロップして、即使えるジョイスティックが入っています。

4種類ありますが、簡単に特徴を述べると、

「Fixed Joystick」は、あらかじめ配置したところで操作できるジョイスティック

「Floating Joystick」は、リアルタイムで触れたところにジョイスティックが配置され、そこで操作できるジョイスティック

「Dynamic Joystick」は、リアルタイムで触れたところにジョイスティックが現れ、なおかつ配置を移動させることのできるジョイスティック いずれも三者三様です。

4つ目の「Variable Joystick」は、InspectorからJoystickのタイプを上記の3つから変えられるようになっています。

さて、 図のように、Canvasをシーンに追加の上、Joystickを配下に置きます。

「PlayableCube」とでも名付けた赤いCubeを

Fixed Joystickで動かす場合は、次のスクリプトをアタッチします。

public class Control : MonoBehaviour
{
    public Joystick joystick;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        // float x = Input.GetAxis("Horizontal"); //矢印キー(←→)で操作する場合
        // float z = Input.GetAxis("Vertical"); //矢印キー(↑↓)で操作する場合
        float x = joystick.Horizontal;
        float z = joystick.Vertical;

        transform.position += new Vector3(x*0.1f, 0, z*0.1f);
    }
}

 

キーボードによる矢印キーで操作する場合は、コメントアウト(//)したように書きます。

その部分を、joystick.○○に変えるだけです。

今回は3次元でなので、xとzの入力とし、y軸方向は入力されないようにしました。

そのままでは、とても早く動くので、0.1fをかけています。

アタッチしたら、Inspectorのjoystickという項目に、Fixed Joystickオブジェクトをドラッグ&ドロップで紐付けてください。

CubeにRigidbodyを与えると、他オブジェクトと接触するようになります。

CubeをJoystickで動かす様子がこちら↓

3.3Dのキャラクターモデルを動かす

Cubeを動かしたときと同じ要領で、3Dキャラクターもジョイスティックで操作できます。

しかし、ゼロから、コードを書くのは大変・・・・ですよね?

そんなときは、既存のスクリプトを基に、ジョイスティックが使えるように修正するのが一番簡単です。

以降は、ジョイスティックで3Dキャラクターを動かす方法 & スクリプトを紹介します。

おまけ:ボタンによるジャンプも

これから紹介する方法は、上の動画のように
ジョイスティックの入力方向にキャラクターを動かす方法(レア)です。
(カメラ固定のゲームにおすすめです)
しかも、スクリプトを1つ用意すれば、走るモーションも即実装できます!

ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA