投稿

ラベル(ネットワーク)が付いた投稿を表示しています

Boss Roomいじり2:キャラクター選択→適当な待機室を作成

イメージ
Boss Roomいじり、その2です。 前回はメインメニューシーンをいじって2Dキャンバスを追加することに成功しました。 今回は、CharSelect(キャラクター選択)シーンをいじります。 私のゲームでは、このシーンではプレイヤーは自由に動けるようにして、 マップ上のお店などで各プレイヤーの準備を整えるシーンにしたいと思っています。 なので、まずは2Dのマップを作り、2Dのキャラクターが動けるようにしたいと思います。 【キャラクターやマップの素材のダウンロード】 スタジオしまづ様による解説動画 の通りにやりました。 ぴぽや倉庫様 から素材をダウンロードし、 Assets > GameData2D > Character にキャラ素材をダウンロードしました。 Assets > GameData2D > Map にマップ素材をダウンロードしました。(32×32) スライス等の処理は動画の通りで、 まず、ダウンロードした画像たちに Sprite Mode: Multiple Pizels Per Unit: 32(これは32*32の素材だから) Filter Mode: Point(no filter) とします。 そして画像をクリックした時のInspectorの真ん中上くらいのSprite Editorにて、 SliceのTypeをGrid By Cell Sizeにして、サイズを32&32にします。 そしてSliceボタン、Applyボタンとクリックすれば素材をきちんと分割できます。 これで一枚の絵に収まった素材をいくつかのパーツに分割できます。 マップも同様にスライスします。 【キャラクターを置く】 適当な画像、ここでは動画の通りサンタ女子の二枚目の画像(正面)をドラッグして ゲームオブジェクトとして置き、名前をplayerにします。 【キャラクターの移動】 参考: スタジオしまづ様の解説動画 Asset > Scripts > 2DScriptsMoguというフォルダを作りました。 元々ある他のフォルダと分けたかったからです。 その中に、PlayerController.csを作り、上記のplayerオブジェクトにアタッチします。 そしてその中身は namespace Unity . Multiplayer . Sa...

Boss Room: a Co-op, Multiplayer RPG Sampleを触ってみる

イメージ
Unity公式のマルチプレイヤーゲームのサンプル: Boss Room: a Co-op, Multiplayer RPG Sample を使おうということで、以下勉強中に書いたメモを残しておきます。 基本的には公式からのdocument: Getting Started with Boss Room の通りに進めていきますので、新しいことはないかもしれませんが、 元のマニュアルは英語なので、日本語訳がてらメモを残そう、ということです。 (後の自分のためにもなるからね) 結構DeepLの直訳です。早いからね。 【目的】 ・Boss Roomをインストールして、色々触ってみる、動かしてみる。 ・最終的には2Dのゲームを作りたいので、2Dのゲームに移行できるように、  マルチプレイヤー・ネットワーク関連の動作の原理を理解する。 (・せっかくなので3Dのマルチのゲームを作れるようにもなりたい) 【前提】 ・windows環境 ・Unityそのものの使い方はちょっと知っている  (私は2Dのパズルゲームを一つリリースしている程度なので、大した経験はない) (・PUN2は使ったことがある) 【Boss Room Overview Boss Roomの概要】 Boss Roomは、キャラクタの能力、遅延を見えなくするためのキャスティング・アニメーション、複製オブジェクト、RPC、Relay、Lobby、Authenticationサービスとの統合など、マルチプレイヤー・ゲーム・フローの背後にあるコンセプトやパターンを探求するのに役立つように設計されています。 このプロジェクトは、あなた自身のUnityゲームのための参考出発点として使用することも、要素を個別に使用することもできます。 【Getting the project Boss Roomの始め方】 Git からダウンロードして使います。私はDirect Downloadのところに書いている通り、Code ButtonからDownkiad Zipでダウンロードしました。Zipを解凍(展開)して、Unityの他のゲームプロジェクトと同じ場所に移動します。 【Opening the project for the first time Boss Roomを最初に開く時】 プロジェクトをダウンロードしたら、以下のステップに従ってプ...

Boss Room, multiplayer games in Unity

今まではPhotonのnetwork serviceを使っていたのですが、2次元モンハンライクゲームを作りたいという野望が出てきたので、本格的なネットワークサービスを勉強するべきだという結論に至りました。やはり公式が用意しているサービスを利用するのが良いのかなと思い、調べたところ、 Boss Room というものがありました。これは3Dですが、ネットワーク機能、特にロビー機能なども一緒に入っているので、これをマルパクリして2Dゲームにしたいと思います。(公式もこれを使ってゲーム作ってねと言っている)

【Android, WebGL】Unity, PUN2でクロスプレイを実装する方法【iOSはわからない】

イメージ
PUN2(Photon Unity Networking 2) : を使ってオンライン機能をもったゲームをUnityで作る時に、android, webGL, iOSなど、異なるプラットフォーム同士でも同じ部屋でもちゃんと遊べるようにしたいですね。私の最初のゲーム「直進パズルオンライン」 google play (android) unityroom (webGL) でもそうしたのですが、そこで少し躓いたのでここにメモします。 【前提】 Unity ver. 2021.3.30f PUN2 ver. PUN: 2.40 Photon lib: 4.1.6.11 同じプラットフォームでの通信はOK 【最初にやったこと】 PUN2の設定項目を以下のようにしていました。 これでgoogle playに登録し、androidスマホ同士でオンライン対戦ができていました。ただし、この設定のままWebGL形式でビルドしてunityroomに登録したところ、android同士、WebGL(unityroom)同士では同じ部屋に入ってオンライン対戦できるのに、androidとWebGLのクロスプレイができませんでした。具体的には、同じ部屋に入ったつもりでも、互いに認識せず、違う部屋の判定になっているようでした。 【解決法】 PUN2の設定項目を以下のように変更しました。 通信ProtocolをUDPからWeb Socket Secure(WSS)に変更しました。そのうえでandroid/webGLでビルドし、それぞれgoogle play/unityroom双方に登録したところ、互いに通信ができました。ちなみに、Tcpではうまくいかなかったと思います。(WSSでも最初うまくいかないときがあった。原因は謎。)これでなぜ解決できたのかというとWebGL側にあって、 株式会社フレームシンセシス様 によると、” WebGLビルドでもそこそこいい感じに動く(ただしトランスポートにWebSocketが使用されTCP通信になる) ”とあり、少なくともudp通信はしないみたいです。(私はいまいち意味はわかっていない)そういうわけで、上記対応でうまくいきました。 android, WebGLとiOS間でも通信がうまくいくかどうかも気になるところですが、今Mac/iOSの開発環境がありませんので、調査で...