• 製品
  • 特長
  • Mod Master
  • ダウンロード
  • ゲーム
  • ブログ
  • 価格

ムーンストームシェアデュチル

著者:TeamMoonstorm最終更新日:2021-09-11 03:40:242.6M530KB

Risk of Rain 2 ムーンストームシェアデュチル-1-ラゴファスト モッドマスター

事前依存関係

Mod紹介

MSUは、ThunderKitを使用してエディタ環境で作業することを意図して焦点を当てたAPIで、使いやすさとシンプルさのために設計されたモジュラーAPIシステムです。

Moonstormは、大規模なコンテンツMOD用のコンテンツロードと一般的なユーティリティフレームワークを共有しました。

MoonstormSharedUtils、別名MSUは、コンテンツMODを作成するためのThunderKitシステムの周りで動作するように設計されたAPIです。

もともとはアップデート用に構築されたAPIとフレームワークの一部です スターストーム2 より良い開発体験のためのThunderKitセットアップに、それは指数関数的に独自の個別のライブラリに成長しているため、ThunderKitを使用して大規模なコンテンツMODを作成したいと思っている人なら誰でもそれを使用できます。

APIの目標

MSUは、modの開発と管理に関して以下の目標に努めています。

  • ゲームのコンテンツを非同期的に管理および読み込むためのシンプルですが強力なシステム。
  • モジュールに基づいて構築された堅牢なフレームワークにより、機器の実行、モンスター、インタラクタブルスポーンなど、モディングワークフローのさまざまな部分を自動化できます。
  • マニフェスト、パス、パイプラインを管理するためのカスタムコンポッシブルオブジェクトセットを提供することで、ThunderKitワークフローを簡素化します。
  • デフォルトで提供されたデリゲート、ベースアイテムの動作など、可能な限りフック上でゲームによって提供されるシステムを利用することに高度に焦点を当てます。
  • 既存のR2APIフレームワークを、ディレクターの変更などの電力システムに活用します。
  • アセットを作成するためのコードに作業するのではなく、エディタ内で作業することに重点を置きます。

重要な特徴

コンテンツピース、コンテンツピースプロバイダー、モジュールフレームワーク

コードはmodのみがコンテンツ(プレハブ、スクリプトタブルオブジェクトなど)を実行時、通常は起動時に作成しますが、これは「永遠に黒い画面」と呼ばれる問題を引き起こし、ゲームの読み込み画面が開始される前にmodのシステムのほとんどが初期化されます。これにより、ゲームは凍結されており、忘れられないユーザーに反応しないという考えが得られます。これは当てはまりますが、アセットバンドルからのカスタムメイドコンテンツとゲームシステムとの間の読み込みと相互作用を管理するのは困難です。

MSUは、コンテンツピース、コンテンツプロバイダ、およびモジュールフレームワークのトライアドによってこれを解決します。このトライアドは、MODがロード画面中にアセットを非同期にロードし、ベースゲームのシステムで正常に動作させるために利用されます。

コンテンツピース

  • modが追加している何らかの形のコンテンツを表します
  • 各コンテンツピースは、コンテンツの読み込みと実装を処理する特定のモジュールに結び付けられています。
  • ContentPiecesには可用性システムがあり、モジュールはどのコンテンツをロードして初期化するかを知るために使用します。
  • コンテンツピースには、モジュールが初期化中に使用する非同期ロード方法があり、コンテンツのアセットを非同期にロードするために使用されます。
  • インターフェースであるため、APIはさらなる実装を提供します。
    • 特定のコンテンツに結びついたコンテンツを表します。 ユニットエンジン。オブジェクト.
      • MSUには、次のインタフェースが含まれています。 コンテンツピース<T>
        • IArtifactContentPieceのために アーティファクトデフ
        • 機器の内容 機器デフス
          • イエリトコンテントピース ~を管理する エリート定義 特定の機器に関連しています。
        • IItemContentPiece プロジェクト定義.
          • ~と呼ばれるサブインターフェース ivoiditコンテンツピース ボイドの生存者に追加されたアイテム破損システムを管理します。
        • iitemtierコンテンツピース~のため ItemTierDefs
        • 他のコンテントピース シーンデフス.
    • 特定のタイプに結びついたコンテンツを表します。 ユニティエンジン。単一行動
      • MSUには、次のインタフェースが含まれています。 IGameObjectContentPiece<TComponent>
        • イチャラクタコンテンツピース ~のため 特徴体
          • イモンスターコンテンツピース 敵対的なモンスターの管理に使用できます
          • ~と呼ばれるサブインターフェース 生き残るコンテンツ新しい生存者の管理に使用できます。
        • 相互作用可能なコンテントピース ~のため 相互作用性.
    • ivanillasurvivorコンテンツピースこれはバニラ生存者の修正を表します。
  • クラスは、 IContentPackModifierこれは、modのコンテンツパックと直接インタフェースするために使用されます。

モジュール

  • モジュールは、のロードと相互作用を管理するクラスです。 コンテンツピース ベースゲームを使用したクラス。
  • 各モジュールは、可能なサブインターフェースと並んで、特定のタイプのインターフェースを処理します。
  • モジュールは、を利用してインスタンス化および初期化するクラスを知っています。 システム。
  • 一度提供したら、 コンテンツプロバイダーモジュールには、それを'sと呼ぶことができます 初期化する コンテンツを非同期的に初期化するコルーチンを取り戻す方法。
  • MSUは次のモジュールを提供します:
    • アーティファクトモジュール IArtifactContentPieces、ArtifactModuleは次のようにインタフェースします R2API.アーティファクトコード ゲームに新しいアーティファクトコードを追加します。また、アーティファクトの適切なフックとフック解除も処理するため、アーティファクトが有効になっている場合にのみフックが有効になるようになります。
    • 特性モジュール、管理する イチャラクタコンテンツピース, 生き残るコンテンツ イモンスターコンテンツピースモジュールは、 R2API.ディレクター ゲームの段階でモンスターの産卵を処理するために。
    • デバイスモジュール 機器の内容そして、 イエリトコンテントピースモジュールは、機器の実行コールを管理するための単一のフックを利用します。
    • 相互作用性のあるエモドゥール、管理する 相互作用可能なコンテントピースモジュールは、 R2API.ディレクター ゲームの段階のインタラクタブルの生成を処理するために。
    • プロジェクトモジュール IItemContentPiece そして、 ivoiditコンテンツピース.アイテムの破損を自動的に処理します。
    • プロジェクトモジュール iitemtierコンテンツピース実行開始時に、階層の利用可能なドロップリストのコレクションを自動的に作成します。
    • シーンモジュール、管理する 他のコンテントピースとインターフェースしています R2API.段階 ゲームへのステージの追加を処理するために。
    • バニラ生存モジュール、管理する ivanillasurvivorコンテンツピースベースゲームのサバイバー(スキン、スキルなど)に新しいコンテンツを追加するために使用されます。

  • モジュールがどのコンテンツピースを作成、ロード、初期化するかを知るために。MSUは、 ~を提供する コンテンツピースsからモジュールへ。
    • 独自の実装を作成できますが、 コンテンツピースプロバイダー 可用性シナリオを管理するためのインターフェース、MSUの コンテンツは役に立つ クラスには、アセンブリを分析するだけでゼロから作成するためのメソッドが含まれています。

RoR2に優しいシステム

MSUの重要な目標の1つは、レイン2システムのリスクと一緒に作業し、ベースゲームのシステムに私たちのシステムと連携するよう強制するのではなく、それと連携するコンテンツを作成することです。そのため、MSUは、機器、バフ、アイテムなどのゲームの主要なシステムと一緒に対話するための堅牢なシステムを提供します。

コンポーネント用インターフェース

一般的に使用されるタイプの不要なフックを回避するために、MSUは次のシステムのコンポーネント内で使用できるインターフェイスを提供します。

  • ioncomingdamageotherserverreceiverこれは、TakeDamageのフックとして機能し、被害者の受信ダメージを修正するために利用できます。
  • 統計的行動統計を再計算するためのオンフックとして機能するインターフェイスで、統計の再計算の前後に実行するためのメソッドが含まれます。
  • iBodyStatArgモディファイヤ、の実装として機能するインターフェース R2API.再計算統計のGetStatCoefficientデリゲート。

BaseItemMasterBehaviour

基本的なマスター行動は、それが体の相手と同じように(ベースエンボディ行動)は、指定されたアイテムが取得されたときにキャラクタマスターに追加される動作を作成するために利用されます。

ベースバフ行動

BaseBuffBehaviourは、バフの影響を管理するために使用できるコンポーネントです。パフォーマンス上の理由から、バフが削除されたときにBaseBuffBehavioursは破壊されず、代わりに、バフが最初にボディによって取得されたときに動作が追加され、バフスタックが枯渇したときに動作が追加されます。 無効なその後、体が再びバフを受け取ると、その行動は次のようになります。 有効になった.これにより、ゴミ収集装置の作業負荷が軽減され、システムのパフォーマンスが全体的に向上します。

Thunderkitワークフローの改善:

MSUの目標はエディターでの作業を中心に展開しているため、MSUにはゲーム用のコンテンツの作成に関する多数のユーティリティがバンドルされています。

WWiseサポート

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のリリースに使用されるs
  • 高度に構成可能なパイプラインシステムと、
    • modのリリースの準備ができているzipファイルを自動的に構築するリリースパイプライン。
    • アセンブリの構築、圧縮または圧縮されていないアセットバンドルの構築、およびmodのStreamingAssetsのステージングに使用できる一般的なパイプライン。
    • コントリビューターパイプラインセットアップ。コントリビューターは、modを構築するためのパイプラインを簡単にセットアップするために使用できます。

構成とトークンの管理

modの構成を作成することは、デフォルトのBepInEx実装を使用して非常に詳細になる可能性があります。MSUはBepInExの上に構成システムを実装しており、何でも簡単に構成できるようになります。

ConfigureField、ConfiguredVariable、およびオプションのリスク

MSUは、BepInEx Configシステムの次の抽象化を提供します:

  • 構成フィールド

    • 静的フィールドに適用して自動的に構成できるカスタム属性。
    • 設定プロセスは、カスタム設定ファイルに割り当てた一意の文字列IDを使用して、設定を設定ファイルに結び付けます。
    • 構成部 そして、 あだ名 実装する必要はありません。MSUはデフォルトで 会員情報 コンフィギュレーションNameそして、 宣言タイプ~としての名前 構成部
    • 設定フィールドの「RiskOfOptions」バージョンが存在し、自動的にRiskofOptions APIを利用してオプションを作成します。ただし、これらのオプションは、属性の制限のために大きくカスタマイズできません。
  • 設定された変数

    • ConfiguredVariableは、構成可能な変数を表すクラスです。
    • オプションのリスクを伴う複雑な構成シナリオを作成するために使用できます。

フォーマットトークンシステム

設定変更をトークン値に結び付けることは、コードを使用してトークンを作成するための最良の部分の1つですが、翻訳者は翻訳をC#ソースファイルに直接コーディングする必要があるため、これらのトークンの翻訳を管理するのが困難です。

MSUが提供します フォーマットトークン システムでは、C#の文字列フォーマットシステムを使用してトークンの値を書き込むことができるようになりました。これを使用すると、JSON langaugeファイルを適切にlevrageできます。インデックスの適切な順序を維持していれば、翻訳者は簡単に翻訳に使用できます。

ドキュメントとソースコード

  • ドキュメントとソースコードは、MoonstormSharedUtilのGithubリポジトリにあります。 ここで

寄付金

MSUは、TeamMoonstormのメンバーの一人、Nebbyによる情熱的なプロジェクトです。そのため、彼は自由な時間にこれに取り組んで、コミュニティの他の人々が素晴らしく畏敬の念を抱かせるコンテンツを作成できるようにします。

MSUは永遠に無料で使用でき、ペイウォールの後ろにゲートされることはありませんが、寄付は信じられないほど感謝されています。

ko-fi

MSUを利用したMOD

(クリックしてください!)

(注:アイコンをクリックして、Modの新しいタブを開きます!)

アイコン/URL 名前 説明
StarstormIcon スターストーム2 スターストーム1の続編。新しい生存者、メカニック、アイテム、スキル、敵などを追加します。
LostInTransitIcon 輸送中に失われる 輸送中に失われたモードは、雨1のリスクで失われた機能の復元に焦点を当てたモードであり、現在はアイテムも含まれています。
VarianceAPIIcon 分散API VarianceAPIを使用すると、キャラクターボディのバリアントを作成できます。バリアントには、さまざまなテクスチャ、ライト、スキルなどがあります。
FortunesFromTheScrapyardIcon 解放される-スクラップヤードからの運命 サードパーティの宇宙企業を中心に展開し、ジャンクヤードとサイバーパンクのテーマに視覚的に基づいた拡張型のコンテンツmod。
RulersOfTheRedPlaneIcon 赤い飛行機の支配者 赤い平面上に拡張する一般的なコンテンツmod

感謝とクレジット

  • サンダーキットを作成するためのツイナー。
  • さまざまなコーディング質問を手伝うアイデアとハーブ。
  • VanillaSkinDefシステムのベースとして使用されたRoR2SkinBuilder用のKingEnderBrineとRuneFox237。
  • モジュールシステムの概念化を支援し、スタブシェーダーを提供するためのGrooveSalad。
  • MSUのロゴの未知の釉薬
  • スターストーム2チームは、そもそもネビーがディープエンドから離れてMSUを作成できるようにしたためです。
  • 私の目標を信じ、彼らのmodにMSUを利用したスクラップヤードチームからの運命。
  • KevinFromHPCustomerService、最終的にMSU 2.0になった元のモジュールシステムを作成するための
  • 雨のリスク2コミュニティの皆さんが私の仕事に感謝しています。
本ツールはサードパーティの[bufftool]によって提供されています注意アイコン

今すぐMODをダウンロード

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