投稿記事

PhotonCloudPUN2の更新情報

こんにちは!ジェイです。MonobitEngineと違って、PhotonCloudPUN2はまだまだ順調に更新されてます。
アップデートした際に、仕様変更によるエラーが出る可能性があるので、まとめました。
特にCloseConnectionで指定したプレイヤーをキックする場合、その前にEnableCloseConnectionをtrueにする必要があるのは要注意です!
更新の詳細は changes-library.txt を参照してください。

https://assetstore.unity.com/packages/tools/network/pun-2-free-119922

v2.38 (2021.10.12)
ライブラリを4.1.6.9に更新しました。

v2.37 (2021年9月27日)
追加:CustomTypeのデシリアライゼーションの長さのチェック。
追加: PhotonNetwork.EnableCloseConnection(デフォルトはfalse)。これは画期的な変更です。この値をtrueに設定した場合のみ、CloseConnectionが動作するようになりました。ライブラリが4.1.6.7に更新されました。

v2.36 (20. 9月 2021)
更新内容 : Realtime APIを更新しました。
更新内容 : ライブラリを4.1.6.6に更新しました。

v2.35 (2021年8月24日)
変更点 : CheckConnectSetupXboxOne()でAuthOnceWssとDatagram Encryption(GCMモード)を許可するようにしました。これは ExpectedProtocol と EncryptionMode を静かに設定します。Datagram Encryptionはネイティブなプラグインでのみ可能です。
変更点:UtilityScripts/Culling/にInterest Cullingを追加しました。

追加しました。1秒あたりのインタレストグループの変更に対するレート制限。アルゴリズムがどうであれ、1秒間に4~6回以上インタレストグループを変更しないことは理にかなっています。

変更:GetActiveCellsメソッドで、セルリストの「近くにある」部分をソートするようにしました。これにより、順番が変わっただけで興味のあるグループを変更しないようになりました("nearly "の計算のため、そのようなことが起こる可能性があります)。
変更点:シーンビューのグリッドは、オーバーラップするセル(ルート、ノード、リーフ)の様々なエリアインデックスを変位させるようになりました。

注:全体的に、セルを選択するアルゴリズムは、単なるクイックショーケースです。これは、グループを1つずつ購読解除することを避け、また、近くのグループを1つずつ購読することを避けるべきです(エリアの1つの軸に沿ってのみ移動しながら)。

修正しました。OwnershipUpdateイベントでNullReferenceExceptionが発生する可能性がありました。PhotonViewが不明な場合、これがログに記録されるようになりました。これは、受信メッセージキュー(ディスパッチ)を一時停止せずにシーンをロード(または初期化)した場合によく発生します。オブジェクトのオーナーシップが変更された場合、マスタークライアントは新しいプレイヤーにこれを知らせますが、参加するクライアントがまだオブジェクトを知らない場合は失敗します。
ライブラリを4.1.6.5に更新しました。

v2.34.1 (2021年7月28日)
更新 : PhotonNetwork.PunVersionを "2.34.1 "に更新しました。以前のバージョンでは、誤って「2.33.3」を使用していました。
更新 : Unity 2021では、不明瞭だったCompilationPipeline.assemblyCompilationStartedがCompilationPipeline.compilationStartedに変更されました。

v2.34 (2021年7月26日)
変更点:マスタークライアントが切り替わるたびに、"room PhotonViews "のPhotonView.Ownerと.Controllerが適切に変更されるようになりました。Room PhotonViewsはIsRoomView(CreatorActorNr == 0をチェックする)によって識別されます。
変更 : NullReferenceExceptionやその他のエラーが発生しないように、コード変更などで再コンパイルが行われた場合、PUNはEditorでプレイモードを終了する必要があります。再コンパイル後に接続を維持することはできないので、これは大きな後退ではありません。ログには、クライアントがプレイモードを終了した理由を示すヒントが含まれます。
変更:PhotonNetworkのコンストラクタは、再コンパイルによる例外を避けるために、NetworkingClientを作成します(Editorにて)。
変更されました。PhotonNetwork.StaticResetは、RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)として実行されていましたが、AfterAssembliesLoadedを使用してより早く実行されるようになりました。
更新 : ライブラリを 4.1.6.4 に更新しました。

v2.33.3 (2021年7月7日)
修正:正当なViewIDを持たないPhotonViewsのクリーンアップをスキップしていました。これによりNullReferenceExceptionが発生する可能性があります(プレイモードを終了するときなど)。
RegisterPhotonViewは、view.removedFromLocalViewListをfalseに設定します。これは、内部的に使用される値です。

v2.33.2 (2021年07月06日)
修正しました。photonView.ViewID = 0を割り当てると、アクティブなビューのリストからPhotonViewが削除される。
追加:様々なクラスに名前空間がなかったのを、名前空間を設けるようにしました。

v2.33.1 (2021年6月24日)
更新 : ライブラリを4.1.6.3に更新しました。
注:これはPhotonNetwork.PunVersionに明確な値がなく、Asset Storeにも別のリリースがありません(前回のリリースは同じ日)。

v2.33 (2021年6月24日)
修正 : PhotonView.AmOwnerの計算。オーナーがactorNumber 0に設定されている可能性があり、その場合は代わりにMaster Clientをオーナーとして適用します。そのため、AmOwnerが間違っていました。
修正 : プレイヤーが部屋に入るとコントローラーが更新される。オーナーが戻ってきてコントロールを取り戻す可能性があるため、すべてのクライアントがビューを更新する必要があります。
修正 : ControllerActorNrの割り当ては、割り当てられたコントローラーがアクティブでないかどうかをチェックします。その場合、マスタークライアントが介入します(アサイン時に右)。
追加:設定ファイルが存在するかどうかのチェックを追加し、存在する場合にCreateAssetを使用しないようにしました。
JoinRandomOrCreateRoom()を追加しました。これはRealtimeでは実装されていましたが、PUNでは実装されていませんでした。
変更:名前の不一致を修正するために、列挙型のCustomAuthenticationTypeを変更しました。それぞれPlayStation4とPlayStation5を使用します。古いバリアントはobsoleteとして利用できます。
修正:Asteroids Demoにおいて、リモートコントローラーが非アクティブの場合、リモートシップが入力に反応しない。
修正しました。AsのKeyNotFound問題の可能性があります。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

第5回TPSオンラインゲーム公開デバッグ配信の結果と進捗

こんにちは!ジェイです。少し遅れましたが、9/30日に行ったデバッグ配信とその後の進捗について、書いていきます。
https://youtu.be/tX9Muuyqvlo

前回の配信の前までの課題

・ホストが死んでもゲームオーバーにならない(OK)
・誰でも生き返らせられてしまう(OK)
・カモンが小さい(OK)
・カモンの文字がわかりやすいように枠をつける?(OK)
・Waveを設定しても反映しない(OK)
・ショットガン強すぎ→全部の弾数で3~4(OK)
・ホストはハンドガンだけにする(OK)
・敵がホストを優先的に攻撃してくるように(OK)
・倒れてる時のモーションがずっと続く(OK)
・遠距離攻撃のAIの実装(OK)

ここまでに関しては、配信時に問題なくすべて実装できました。しかし、ホストがハンドガンだけだと、あまりにきつすぎるので、今はすべての武器を拾えるようにしました。

配信後に進めた作業

・マウスの感度、敵のスピードの調整
・開始準備時間
・Waveの間の休憩
・ショットガンの弾の表示
・情報を見れるドラッグ窓を見やすいように改善
・銃弾を受けた時に画面を赤くフラッシュするエフェクトの追加
・Escキーでマウスの感度と音量の調整の項目の追加

それと、武器を構えてる時にライフ見えないのを対策を何にするか?については、自キャラの頭上にUIを表示するのをやめて、画面の左下に表示するようにしました。これで自キャラが攻撃を受けているのもわかりやすいでしょう。

まだ実装してない機能

・敵の方向を表示する
・スピードはハイスピードと普通の2種類(色をわけてわかりやすくする)

次は上の2つを実装する予定ですが、敵の方向を表示する方法についてはどのように表示するか考え中です。前回の配信でようやく楽しく遊べるようになったので、引き続きマイペースに作業を進めて行きます(^^♪

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

第4回TPSオンラインゲーム公開デバッグ配信の結果と進捗

こんにちは!ジェイです。先日デバッグ配信をして、残った不具合の報告と修正した内容について報告します。

配信でチェックした項目

1.敵が正常に動くかどうか(OK)
2.自キャラがやられた時に武器を落とすかどうか(OK)
3.途中でホストが落ちてもゲームがそのまま続くかどうか→ホスト変更時に値が引き継ぐか確認したい

3.についてはPhotonNetwork.Instantiateで敵を生成していたため、生成者がルームから退出したら、敵がすべて消えてしまっていたので、PhotonNetwork.InstantiateRoomObjectを使用して、ルームと紐付けることによって、敵が消えるバグを修正。

その他修正項目

・前回のEキーで武器を拾って、再度Eキーを押すと武器が消えてしまうバグは、拾った後にこれから拾う予定の武器にnullを代入することにより、修正
・配信中に気づいてなかったが、同じ事が女神像にも起きていたので、同じ様に修正
・やられ中から復活する時に、アニメーションなどの初期化漏れがあったので修正
・女神像の当たり判定をBoxColliderからMeshColliderに変更して、よりモデルに近い当たり判定に修正
・女神像専用のレイヤーを作り、乗れるように変更。これにより空中に弾痕が残ってしまう状態も修正

今後の予定

今までひたすらにエラーとバグの修正をしていましたが、これから本格的にゲームをおもしろくする部分に手を付けていきます!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

第4回TPSオンラインゲーム公開デバッグ配信のお知らせ

こんにちは!ジェイです。今週も明日の20時にデバッグ配信をやるので、告知させていただきます。
https://youtu.be/3ry4l3gzOzU

追加した機能およびバグの修正

1.PhotonViewのエラー
2.敵が動かなかった
3.武器を落とす(やられた時、退出した時)
4.ホストが落ちた時の値の引き継ぎ

対処した方法

1.RPC使用時にPhotonViewの番号を割り当てることで修正
2.
・ターゲットを発見時の分岐が間違っていた。
・TryGetComponentでターゲットのコンポーネントでなく、自分自身のコンポーネントを取得していたので、ターゲットのコンポーネントを取得するように修正。
3.やられた時に武器を落とす処理を追加
4.ホストが落ちた時に次のホストに必要な値をコールバックで設定するように追加

今回テストする項目

1.敵が正常に動くかどうか
2.自キャラがやられた時に武器を落とすかどうか
3.途中でホストが落ちてもゲームがそのまま続くかどうか

上記の項目が正常に動作するかチェックしたいと思います。ゲームはGoogleDriveにて配布しますので、配信時にYouTubeの詳細欄を見てください。大まかな流れとしては、やることの説明→デバッグ→結果を見て次にやるべき事をまとめるという流れになります。初見の方も大歓迎ですので、ぜひ見に来ていただけると嬉しいです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

第3回目TPSオンラインゲームデバッグ配信の結果報告

こんにちは!ジェイで先日行ったデバッグ配信に来てくれたなみなさん本当にありがとうございました。本日は昨日テストした項目や問題点やこれからやる事をまとめます。
https://twitter.com/JY20160816/status/1429061639731441673

テストした項目

1.現在フィールドにいる敵の数を表示(OK)
2.ホスト以外が同じ武器を拾うとエラーが発生する(OK)
3.壁に密着してジャンプすると空中ジャンプができる→スペースでジャンプ(OK)
4.武器を撃った時の反動を追加(M1911,AK47,G38)(OK)

前回発見した項目についてはすべてOKでした。

新たに発生した不具合

1.PhotonViewのエラー
2.敵が動かなかった
3.武器を落とす(やられた時、退出した時)

1に関してはRPCを使った時にPhotonViewの番号が割り当てられてないので、自力で割り当てる事で修正しました。
2.に関しては、
・ターゲットを発見時の分岐が間違っていた。
・TryGetComponentでターゲットのコンポーネントでなく、自分自身のコンポーネントを取得していたので、ターゲットのコンポーネントを取得するように修正しました。
3.に関してはこれから修正する予定です。
https://youtu.be/jS7msPJAkjA
さらに昨日のアーカイブをみなおしたところ、最初だけ敵が動いていて、攻撃が当たらないというゲームオーバーの状態だったので、ゲームクリアまたはゲームオーバー時には、入室できないというような対策をする予定です。

まとめ

まだまだ不具合がありましたが、確実に少しずつ進んでいるので、まずは現状のルールで正常にプレイできる状態を目指します。その後に武器や敵や新しい要素を追加していく予定ので、懲りずに応援していただけると嬉しいです(^^♪

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

1 2 3 4 5 6 7

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索