著者:TeamMoonstorm最終更新日:2021-09-11 03:40:242.6M530KB
MoonstormSharedUtils、別名MSUは、コンテンツMODを作成するためのThunderKitシステムの周りで動作するように設計されたAPIです。
![]()
もともとはアップデート用に構築されたAPIとフレームワークの一部です スターストーム2 より良い開発体験のためのThunderKitセットアップに、それは指数関数的に独自の個別のライブラリに成長しているため、ThunderKitを使用して大規模なコンテンツMODを作成したいと思っている人なら誰でもそれを使用できます。
MSUは、modの開発と管理に関して以下の目標に努めています。
コードはmodのみがコンテンツ(プレハブ、スクリプトタブルオブジェクトなど)を実行時、通常は起動時に作成しますが、これは「永遠に黒い画面」と呼ばれる問題を引き起こし、ゲームの読み込み画面が開始される前にmodのシステムのほとんどが初期化されます。これにより、ゲームは凍結されており、忘れられないユーザーに反応しないという考えが得られます。これは当てはまりますが、アセットバンドルからのカスタムメイドコンテンツとゲームシステムとの間の読み込みと相互作用を管理するのは困難です。
MSUは、コンテンツピース、コンテンツプロバイダ、およびモジュールフレームワークのトライアドによってこれを解決します。このトライアドは、MODがロード画面中にアセットを非同期にロードし、ベースゲームのシステムで正常に動作させるために利用されます。
特定のコンテンツに結びついたコンテンツを表します。 ユニットエンジン。オブジェクト.
コンテンツピース<T>
IArtifactContentPieceのために アーティファクトデフ機器の内容 機器デフス
イエリトコンテントピース ~を管理する エリート定義 特定の機器に関連しています。IItemContentPiece プロジェクト定義.
ivoiditコンテンツピース ボイドの生存者に追加されたアイテム破損システムを管理します。iitemtierコンテンツピース~のため ItemTierDefs他のコンテントピース シーンデフス.特定のタイプに結びついたコンテンツを表します。 ユニティエンジン。単一行動
IGameObjectContentPiece<TComponent>
イチャラクタコンテンツピース ~のため 特徴体
イモンスターコンテンツピース 敵対的なモンスターの管理に使用できます生き残るコンテンツ新しい生存者の管理に使用できます。相互作用可能なコンテントピース ~のため 相互作用性.ivanillasurvivorコンテンツピースこれはバニラ生存者の修正を表します。 クラスは、 IContentPackModifierこれは、modのコンテンツパックと直接インタフェースするために使用されます。コンテンツピース ベースゲームを使用したクラス。 システム。コンテンツプロバイダーモジュールには、それを'sと呼ぶことができます 初期化する コンテンツを非同期的に初期化するコルーチンを取り戻す方法。アーティファクトモジュール IArtifactContentPieces、ArtifactModuleは次のようにインタフェースします R2API.アーティファクトコード ゲームに新しいアーティファクトコードを追加します。また、アーティファクトの適切なフックとフック解除も処理するため、アーティファクトが有効になっている場合にのみフックが有効になるようになります。特性モジュール、管理する イチャラクタコンテンツピース, 生き残るコンテンツ イモンスターコンテンツピースモジュールは、 R2API.ディレクター ゲームの段階でモンスターの産卵を処理するために。デバイスモジュール 機器の内容そして、 イエリトコンテントピースモジュールは、機器の実行コールを管理するための単一のフックを利用します。相互作用性のあるエモドゥール、管理する 相互作用可能なコンテントピースモジュールは、 R2API.ディレクター ゲームの段階のインタラクタブルの生成を処理するために。プロジェクトモジュール IItemContentPiece そして、 ivoiditコンテンツピース.アイテムの破損を自動的に処理します。プロジェクトモジュール iitemtierコンテンツピース実行開始時に、階層の利用可能なドロップリストのコレクションを自動的に作成します。シーンモジュール、管理する 他のコンテントピースとインターフェースしています R2API.段階 ゲームへのステージの追加を処理するために。バニラ生存モジュール、管理する ivanillasurvivorコンテンツピースベースゲームのサバイバー(スキン、スキルなど)に新しいコンテンツを追加するために使用されます。 ~を提供する コンテンツピースsからモジュールへ。
コンテンツピースプロバイダー 可用性シナリオを管理するためのインターフェース、MSUの コンテンツは役に立つ クラスには、アセンブリを分析するだけでゼロから作成するためのメソッドが含まれています。MSUの重要な目標の1つは、レイン2システムのリスクと一緒に作業し、ベースゲームのシステムに私たちのシステムと連携するよう強制するのではなく、それと連携するコンテンツを作成することです。そのため、MSUは、機器、バフ、アイテムなどのゲームの主要なシステムと一緒に対話するための堅牢なシステムを提供します。
一般的に使用されるタイプの不要なフックを回避するために、MSUは次のシステムのコンポーネント内で使用できるインターフェイスを提供します。
ioncomingdamageotherserverreceiverこれは、TakeDamageのフックとして機能し、被害者の受信ダメージを修正するために利用できます。統計的行動統計を再計算するためのオンフックとして機能するインターフェイスで、統計の再計算の前後に実行するためのメソッドが含まれます。iBodyStatArgモディファイヤ、の実装として機能するインターフェース R2API.再計算統計のGetStatCoefficientデリゲート。基本的なマスター行動は、それが体の相手と同じように(ベースエンボディ行動)は、指定されたアイテムが取得されたときにキャラクタマスターに追加される動作を作成するために利用されます。
BaseBuffBehaviourは、バフの影響を管理するために使用できるコンポーネントです。パフォーマンス上の理由から、バフが削除されたときにBaseBuffBehavioursは破壊されず、代わりに、バフが最初にボディによって取得されたときに動作が追加され、バフスタックが枯渇したときに動作が追加されます。 無効なその後、体が再びバフを受け取ると、その行動は次のようになります。 有効になった.これにより、ゴミ収集装置の作業負荷が軽減され、システムのパフォーマンスが全体的に向上します。
MSUの目標はエディターでの作業を中心に展開しているため、MSUにはゲーム用のコンテンツの作成に関する多数のユーティリティがバンドルされています。
MSUは、ゲーム内のWWiseアセンブリをブラックリストに掲載するために使用できるカスタムimport拡張機能を提供し、プロジェクトにWWise統合システムを使用できます。
MSUは、エディタ時に「ランタイムのみ」のコンテンツを作成できるように、次のスクリプタブルオブジェクトを提供します。
達成可能なロック解除可能defロック解除可能なdefと達成defシステムの抽象化として機能します。 ロック解除可能def それは成果によって解除されました。ポイントBuffDef、DotDefの抽象化として機能し、指定されたBuffDefにDotDefを自動的に割り当てます。拡張削除定義、の拡張として機能します エリート定義 クラスで、ベースゲームの階層、エリートランプ、オーバーレイマテリアルなどへの自動追加をサポートします。インタラクタブルカードプロバイダーインタラクタブルを段階的に生成するために必要なメタデータを含むスクリプトタブルオブジェクトで、複数の段階を1つのカードに割り当てることができます。モンスターカードプロバイダーモンスターを段階的に産卵するために必要なメタデータを含むスクリプトタブルオブジェクトで、1つのカードに複数の段階を割り当てることができます。アイテムディスプレイ辞書、次のように動作するスクリプトタブルオブジェクト R2API.アイテムアイテムディスプレイ辞書システム、既存のルールグループに複数のルールグループを追加するために使用できます。 アイテム表示ルールセット主要な資産とディスプレイプレハブは、 名前付きディスプレイルールセット、完全な作成に使用できるスクリプトタブルオブジェクト アイテム表示ルールセット キャラクターモデル用。主要な資産とディスプレイプレハブは、 アイテムディスプレイカタログMSU内のシステム。シリアル化可能なエリティエールデフ、の抽象化として機能します エリートDEF ゲーム内のシステムでは、コスト乗数、ベースゲームのエリート階層とモードへのアドレス指定可能な参照を割り当てることができます。ウバースキンデフSkinDefs向けの包括的なユーティリティとして機能し、R2APIのSkinVFXシステムのサポートを実装し、バニラキャラクターにスキンを追加します。MSUはthunderkitを念頭に置いて作成されたため、MSUはプロジェクトに次のcomposableobjectsを提供します。
明らかにする 必要なものとともに マニフェスト日付 modを宣言するためにパストレフェレーションクリーンビルディングとmodのリリースに使用されるsmodの構成を作成することは、デフォルトのBepInEx実装を使用して非常に詳細になる可能性があります。MSUはBepInExの上に構成システムを実装しており、何でも簡単に構成できるようになります。
MSUは、BepInEx Configシステムの次の抽象化を提供します:
構成フィールド
構成部 そして、 あだ名 実装する必要はありません。MSUはデフォルトで 会員情報 コンフィギュレーションNameそして、 宣言タイプ~としての名前 構成部設定された変数
設定変更をトークン値に結び付けることは、コードを使用してトークンを作成するための最良の部分の1つですが、翻訳者は翻訳をC#ソースファイルに直接コーディングする必要があるため、これらのトークンの翻訳を管理するのが困難です。
MSUが提供します フォーマットトークン システムでは、C#の文字列フォーマットシステムを使用してトークンの値を書き込むことができるようになりました。これを使用すると、JSON langaugeファイルを適切にlevrageできます。インデックスの適切な順序を維持していれば、翻訳者は簡単に翻訳に使用できます。
MSUは、TeamMoonstormのメンバーの一人、Nebbyによる情熱的なプロジェクトです。そのため、彼は自由な時間にこれに取り組んで、コミュニティの他の人々が素晴らしく畏敬の念を抱かせるコンテンツを作成できるようにします。
MSUは永遠に無料で使用でき、ペイウォールの後ろにゲートされることはありませんが、寄付は信じられないほど感謝されています。
(注:アイコンをクリックして、Modの新しいタブを開きます!)

今すぐMODをダウンロード
LagoFast をインストールし、Risk of Rain 2 を起動して、お気に入りの MOD で遊んでみましょう。