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で動かす場合は、次のスクリプトをアタッチします。

 

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

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

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

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

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

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

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

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

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

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

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

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

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

ABOUT ME
いなも@システマライフハッカー
某有名健康食品メーカーに勤めながら、ロシアの武術”システマ”の訓練に精通。その後、システマの概念とスキルを軸に生きること、その普及活動に投身することを決意。 ”システマ”の概念より、過酷な現代社会を、スマートかつ快適に暮らせるようなノウハウを、ブログを通じて忖度なしで発信中~! 問い合わせはTwitterのDMで!(https://twitter.com/inamo002)

COMMENT

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

CAPTCHA