Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MLAPIでマルチゲームを作ってみた / xrdnk-roppongiunityLT8-pre...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Denik
February 24, 2021
Programming
3.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MLAPIでマルチゲームを作ってみた / xrdnk-roppongiunityLT8-presentation
Denik
February 24, 2021
More Decks by Denik
See All by Denik
Oculus Interaction SDK 概説 / xrdnk-caunity-LT4
xrdnk
0
12k
Unity Localization で多言語対応実装しよう / xrdnk-yokohamaunity-lt10-20220513
xrdnk
0
9.8k
XR Interaction Toolkit 2.0.0 正式リリース記念パピコ / xrdnk-xrmtg-lt-20220316
xrdnk
0
10k
Unidux を用いたマルチシーン構成の画面遷移 / xrdnk-unity-otonanolt-2021
xrdnk
0
5.9k
Unity Cloud Save でプレイヤーデータのクラウド保存しよう / xrdnk-yokohamaunitylt9
xrdnk
0
1.7k
Feel でゲームのエフェクトを豪華にしよう / xrdnk-yokohamaunityLT8
xrdnk
1
2k
Unidux Scene Transition Hands-on / xrdnk-unidux-scene-transition-hands-on
xrdnk
1
490
新MLAPIでマルチゲームを作ってみた / xrdnk-gotandaunityLT19-presentation
xrdnk
1
4.3k
三種の神器とMVRPパターン / xrdnk-three-sacred-treasures-and-mvrp-pattern
xrdnk
1
7.4k
Other Decks in Programming
See All in Programming
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
300
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Vite+ Unified Toolchain for the Web
naokihaba
0
340
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
740
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.4k
Performance Engineering for Everyone
elenatanasoiu
0
210
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.5k
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
2
680
Creating Composable Callables in Contemporary C++
rollbear
0
160
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.5k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
280
さぁV100、メモリをお食べ・・・
nilpe
0
150
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Automating Front-end Workflow
addyosmani
1370
210k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Technical Leadership for Architectural Decision Making
baasie
3
420
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
ラッコキーワード サービス紹介資料
rakko
1
3.7M
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
Un-Boring Meetings
codingconduct
0
320
Faster Mobile Websites
deanohume
310
32k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
A Soul's Torment
seathinner
6
3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
MLAPIでマルチゲームを 作ってみた Roppongi unity #8 Lighting Talk
自己紹介 【名前 / ハンネ / Twitter】 Denik / デニキ /
@xrdnk 【職歴】 TIS 株式会社 19年度入社 インキュベーションセンター XR チーム - XR エンジニア (20.5 ~ 現在) - システムエンジニア (19.04 ~ 20.05) 本発表は個人の見解です. 所属組織の意見云々ではありません.
アジェンダ ➢ MLAPI の説明 ➢ MLAPI の機能 ➢ おわりに
MLAPI の説明
MLAPI で作った簡単なマルチゲーム
MLAPI とは 昨年12月に Unity が買収し, Unity 公式の GameObject 向けネットワークソリューションになりました. これからネットワークソリューションを利用するなら,
MLAPI を使用していくようになりそうです. https://blogs.unity3d.com/jp/2020/12/03/accelerating-unitys-new-gameobjects-multiplayer-networking-framework/
現在の MLAPI (1/2) じゃあとりあえずマルチプレイに MLAPI 使ってみるか! と思ったらアナタ… 現在の MLAPI には問題点があります.
➢ ドキュメントが充実していない. 最低限のことしか書かれていなく, マルチプレイ開発に慣れてない人が 一から初めても苦労してしまう. そして全部英語です.それはそう. ➢ 公式提供のサンプルがほぼ皆無に等しい github上で MLAPI 関連のサンプルは数件あります. 黒河さんの Unity Chan のサンプルが一番の希望. ちなみに MLAPI 作者 TwoTen 氏が作成した MLAPI-Examples は最後の更新が3年前レベル.
現在の MLAPI (2/2) ちなみに公式では,「 MLAPI のサンプル作成が苦痛 」という発言も出る始末…
これからの MLAPI MLAPI は現在改修中です 具体的には ・ RPC の改善 ・ Singleton
依存の設計改善 などなど. なので本格的に MLAPI を触るなら, New MLAPI に触れるとよいでしょう. じゃあ,今の MLAPI を使う理由があるのか…? 一応,あります. ➢ 無料版のPhoton より同接数を増やすことができる(30は楽に) ➢ オフラインLAN内での接続が可能 Mirror でええやんというツッコミは今回はなしで.
本発表の主旨 とりあえず今の MLAPI を触ってみたという発表です. 日本語ドキュメントが少ないので,このスライドで少し助けになれれば. New MLAPI では破壊的変更が多く含むため,将来的には参考にならないかもしれない.
検証環境 本発表における検証環境は以下の通りです. ➢ Unity 2019.4.17f1 ➢ MLAPI v12.1.7 ➢ Unity
Chan ➢ Standard Assets
Parrel Sync マルチプレイの動作確認には Parrel Sync がおすすめ. プロジェクトをクローンして UnityEditor 複数台立ち上げで実行テストしやすくなります. ParrelSync
/ UnityProjectCloner で Unity マルチゲーム開発効率を上げる https://xrdnk.hateblo.jp/entry/2021/01/05/222709
MLAPI の機能
MLAPI 接続方式 ➢Hosted (Listen Server) ➢ Relay Server ➢ DGS(専用サーバ)
Host Server Client Client Client Client Host Server Client Client Client Client Relay Server Dedicated Game Server Client Client Client Client
MLAPI.Relay ➢MIT で提供.自前でリレーサーバ実装できます. .NET Core https://github.com/MidLevel/MLAPI.Relay ちなみに自ブログで簡単に WSL 2 で
MLAPI.Relay Server を立てた記事があるので 参考になれば. WSL 2 で MLAPI.Relay 鯖を立ち上げて MLAPI.Relay 鯖経由で マルチゲームを行う【MLAPI / MLAPI.Relay】 https://xrdnk.hateblo.jp/entry/2021/02/11/090000
Server Build Build Settings の Server Build にチェックを入れてサーバーで起動する
Networking Manager MLAPI ネットワーク管理クラスです.シーンには必ず必要になってきます. 同期するオブジェクト を設定 プレイヤーオブジェクト としたいならチェック トランスポート層を設定 UnetTransport
Ruffles, 自前等
同期方法 Transform の同期なら Networked Transform, Animator の同期なら Networked Animator が提供されてます.
どのアニメーションの パラメタを同期するのか 事前に設定する必要有
NetworkedVar (1/2) データの同期を行います. Bool, Byte, Short, Int, Long, Float, Vector,
Color, Ray, Quaternion 等対応してます NetworkedVar を用いた変数同期【MLAPI】 https://xrdnk.hateblo.jp/entry/2021/01/07/235920
NetworkedVar (2/2) ➢ 第一引数: NetworkedVarSettings ➢ WritePermission : 書き取り可能な権限設定 (デフォルトは
ServerOnly) ➢ ReadPermission : 読み取り可能な権限設定 (デフォルトはEveryOne) ➢ SendTickrate : データ同期の最大時間を秒単位で指定 (デフォルトは 0) ➢ SendChannle: 送信するチャネルの指定可能 ➢ 第二引数: NetworkedVar の初期値 値を設定・読取する場合は, Valueプロパティを通じる必要がある. データの同期を行う変数として [SyncedVar] もありますが, こちらは将来なくなる予定です. NetworkedVar を用いた変数同期【MLAPI】 https://xrdnk.hateblo.jp/entry/2021/01/07/235920
RPC RPC も提供されてます. 関数に以下のアトリビュートをつけるだけで RPC対応します. Server → Client : [ClientRPC]
Client → Server : [ServerRPC]
これらを組み合わせれば 一応簡単なマルチゲームは MLAPI で作れる!
おわりに
新ドキュメント(1/2) 実は昨夜新しい MLAPI のドキュメントが公開されました.(オイオイオイ… https://mp-docs.dlt.it.unity3d.com/
新ドキュメント(2/2) ただし更新内容は Message Systemの内容が増えたり, Glossary が追加された程度. Tutorial もまだこれからと.今後に期待.
MLAPI 参考資料 ➢ GitHub ピンポンのサンプル https://github.com/DatBlindArcher/MLAPI.PongSample UnityChanサンプル(黒河さんのサンプル) https://github.com/wotakuro/MLAPI_UnitychanSample ➢ YouTube
SRCoder氏の動画 https://www.youtube.com/channel/UCYaNsGvyvIupxpecr4rZY9A 黒河さんの動画 https://www.youtube.com/watch?v=Fl1TP2expZE 私のブログにもちょくちょく MLAPI 関連の記事をあげてます(ほんのちょびっとですが) https://xrdnk.hateblo.jp/archive/category/MLAPI
所感など ➢ MLAPI 現時点で触れるのはつらい ➢ 素直にドキュメントやサンプルが整ってから触れよう ➢ 暫くはマルチゲームを作る際は Photon または
Mirror に触れてマルチゲームの仕組みに慣れよう ➢ もし現時点のMLAPIに触れる場合は,ドキュメントを読むより実際のコードを読む方が理解が早い ➢ 一からMLAPI サンプル作る場合,胆力が必要 ➢ MLAPI の今後についてリアルタイムで追いたい場合は Discord に参加しましょう https://discord.com/invite/FM8SE9E