4
6

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 3 years have passed since last update.

オンラインゲームの作り方【Unity+Mirror】

Last updated at Posted at 2021-09-06

オンラインゲームを作りたい!でも作り方がわからない...という方はよくいると思いますが、
今回はそういう方に向けて
Unity+Mirrorでのオンラインゲーム制作のやり方を記載していきたいと思います。

【目次】

* 事前準備について * Unityって? * Mirrorって? * オンラインゲームの実際の作り方(基盤作りまで)

事前準備は何が必要なの?

今回推奨するのはUnity+Unity内のアセット(追加パッチみたいなもの)「Mirror」だけで作れるよ!

Unityの公式ダウンロードサイトはここだよ!

Unityは複数Versionを所有していてVersion違いでバグが発生する可能性があるからUnityHubっていう
複数のバージョンのダウンロード&管理や切り替えが出来るツールの方をダウンロードしてね!
その後はとりあえずUnity公式が推奨する安定版のVersionを使用すればいいと思うよ!
参考にしているサイトとか動画がある場合に最新版を使って、
エラーが出るなら参考のバージョンに合わした方がいいかも?

まずUnityって?

Unityっていうのはゲームエンジンといって、 ゲーム制作をする際に最低限の色々な機能を持った空間を用意してくれているものだよ! 初期画面としてはこんな感じだよ!この空間に色々物体を置いたりして調整してゲームを作るんだ! ![New Unity Project - SampleScene - PC, Mac & Linux Standalone - Unity 2020.3.16f1 Personal _DX11_ 2021_09_06 14_58_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1981364/ec41dce5-bbda-2e7e-8132-2913f843bf28.png)

ゲームエンジンとしてはこのUnityとUE4(Unreal Engine4)というのが二大巨頭になっているんだけど...
どちらかというとUnityは汎用的ゲーム制作に使えて
UE4は本格3Dゲーム制作を作るのに適しているっていうのが通例だね!
といってもシェアを厳密に分割するとUnityの方が多く使われているからUnityを採用するよ!

Mirrorって?

MirrorはUnity内で追加出来るアセットで、 これをUnity内にいれるだけで大体オンライン通信が出来る環境の基盤が出来るよ! 更に内容物に手を少し手を加えるだけで 色んなカスタムも出来るからかなり時短になるありがたいアセットだよ!

オンラインゲームの実際の作り方(基盤作りまで)

さて、早速本題に入っていくよ! まずUnityhubをダウンロードしてMirrorをインポートしていくよ!

詳しいやり方について、
本当に初心者向け(実際に初期ダウンロードから始めてるよ)に、
自分が実際に動画で解説したものがあるから字でわからない人はこっちを見てね!

■【基礎編】Unityオンラインゲーム作り方解説動画!【Unity初心者向け】

※将来的に色んなジャンルでの
 オンラインゲーム制作の動画を上げていく予定だからチャンネル登録よろしくね!

Unity上の操作

インポートが終わったら、ヒエラレルキー右クリックから「空のオブジェクト」を作成して、 それを「NetworkManger」って名前にしてネットワークを管理するオブジェクトとして設定するよ!

「ネットワークマネージャ」に「ネットワークHUB」を追加してね!
この段階で実行すると、もうネットワークに接続できる状態になってるよ!とても簡単だね!
でもまだこの段階じゃ何も設定してないから何も出るはずはなく...

最初にプレイヤーはどのゲームにもいるはずだからプレイヤーを出現させていくよ!
ヒエラルキーから右クリックで仮にプレイヤーを作っていくよ!
「3Dオブジェクト」→「スフィア」で名前を「Player」に設定するよ!
それをネットワーク空間に適応させるためにコンポーネント「NetworkTransform」を追加!
それからプレハブ化だよ!

そしたら「NetworkManger」の「プレイヤープレハブ」にその「Player」を追加してね!
すると、実行した時にHost又はClientで接続した時に設定したプレイヤーが表示されるはずだよ!
確認方法としては、
二人プレイヤーがいるからUnity上の実行+ビルドした実際のゲームで見比べていくよ!
ビルドしたゲームとUnity上で接続して確認してみてね!

...とこの段階ではまだプレイヤーが一つ召喚されたようにしか見えないんだ!
なぜならプレイヤーは二つ確かに出てるんだけど
当たり判定も設定してないから完全に同じ座標に表示されてるんだよね...

対策としてプレイヤーに
リジッドボディコンポーネント(当たり判定とか重力とか付属させるコンポーネント)を追加すると、
区別がつくようになると思うよ!
tes.png

以上でオンラインゲーム制作の基礎の基礎は終わりだよ!
これからどんなゲームを作りたいかによって作り方を色々変えていってね!
自分チャンネルで将来的に【FPS】【2Dスクロールゲーム】を作れるようになるまで動画を用意するつもりだよ!
(現段階はFPS編が途中まで公開されているよ!)
他につくってほしいゲームジャンルとかがあったら気軽にyoutubeでコメントしてみてね!

4
6
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
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?