Unity Weekly #013
ML-Agents v2.0 release: Now supports training complex cooperative behaviors
- ML-Agent 2.0がUnity 2021.2向けにリリースされました。1.0が2020.1向けにリリースされてからこの1年間で、ユーザーワークフローや新しいトレーニングアルゴリズムや機能の実装、大幅なパフォーマンス改善などの15以上の主要な機能の更新が行われました。
- この記事では、協調動作(cooperative behaviors)の学習とエージェントが環境下で様々なエンティティを監視する機能、タスクのパラメータ化を利用した複数のタスクをトレーニングをサポートする機能について焦点を当てて説明しています。
- 複数のエージェントを利用したトレーニング自体はサポートしていましたが、相互に目標を持ったエージェントグループは定義できませんでした。Release 15で、MA-POCA(POsthumousCreditAssignment)と呼ばれるトレーニングが追加され、協調動作のトレーニングをサポートしました。
- サンプルトレーニングとして、Cooperative Push BlockとDungeonEscapeの2プロジェクトが提供されました。またドキュメントはこちらから確認できます。
- Release 15で「observation buffer」と呼ばれる機能を用いて、任意の数のエンティティを観測することができるようになりました。エージェントは、さまざまな数の観測値をエンコードして処理するAttention Moduleを介して任意サイズのバッファーを利用する方法を学習します。
- ドキュメントはこちらから確認できます。
- Release 17ではHyperNetworksを用いて、複数のタスクにおいて個別タスクの一部を再利用することで全体的なトレーニング時間を短縮することができます。具体的には「Goal Signal」と呼ばれる新しい観測値と「HyperNetwork」と呼ばれる小さなニューラルネットワークを用いて別のより大きなニューラルネットワークの重みを生成します。
- ドキュメントはこちらから確認できます。
- v1.0とv2.0を比べて3DBallとGridWorldのサンプルシーンで、ガベージコレクションメトリック(ステップごとのメモリ確保)を約98%削減しています。
iOSネイティブプラグイン開発を完全に理解する
【Unity】iOSネイティブプラグイン開発を完全に理解する - Qiita
- この記事では、UnityのiOSネイティブプラグイン開発の基礎を体系的に解説しています。
- ログ出力とintの戻り値を返すシンプルなObjCのメソッドのC#からのP/Invokeでの呼び出し方法から同サンプルのSwift実装、ネイティブコード側でインスタンス化したオブジェクトの管理、ネイティブコード側からC#側のコールバックメソッドを呼び出す方法について説明しています。
- Swift実装におけるUnity設定の注意点やXcodeの設定の自動化方法、プラグインの設計や実装方法などの補足情報も丁寧に紹介されています。
2021年のC# Roslyn Analyzerの開発手法、或いはUnityでの利用法
neue cc - 2021年のC# Roslyn Analyzerの開発手法、或いはUnityでの利用法
- この記事では、Roslyn Analyzerについての紹介とその開発方法、UnityでAnalyzerを利用するためのプラクティスが紹介されています。
- Visual Studio 2019 16.10でRoslyn Analyzerを開発する方法と、設定についてのいくつかの注意点が説明されています。
- Unity2020.2でサポートされたRoslyn Analyzerサポートされたが、IDE側とAnalyzer設定が共有できない問題と、それを解決するためのCsprojModifierについて紹介されています。
Cysharp/CsprojModifier
- CsporjModifierは、Unity Editorが.csprojを生成する際に追加の処理を差し込むことで、IDEの開発体験を向上させるためのツールです。
- 生成された.csprojに対して追加のプロジェクトを
Import
要素で追加できます。これによりBannedSymbols.txtをAdditionalFiles
で追加することができ、BannedApiAnalyzerをUnity Editor上でも正常に機能させることができます。 - 生成された.csprojに対して追加のAnalyzerの参照を追加できます。これによりIDEとUnity Editor上で共通のRoslyn Analyzerを動作させることができます。
Game Package Registry (GPR) by Google will shut down on May 19, 2021
- Googleの提供するGame Package Registry (GPR) が2021年5月19日をもってシャットダウンする予定があります。
- この対応によってFirebase Unity SDKの、GRP経由でのUPMインストールができなくなり、代わりに unitypackage 形式でのインストールが推奨されます。