MillicentのAggressor用リバリーローダー

Tool

概要

Millicents-Aggressor-LiveryLoaderは、Unity製ゲーム「Aggressor」向けのカスタムスキン(リバリー)を追加するための小さなプラグインです。BepInEx 5.4のプラグインとしてゲームに組み込み、外部で作成したUnityアセットバンドル(AssetBundle)を読み込むことで、ハンガー画面やミッション中の機体にカスタムテクスチャやマテリアルを適用できます。本プロジェクトは軽量・単機能ながら、なるべく普遍的にどの機体にもスキンを適用できるよう設計されており、アセットバンドルの作成にはゲーム側と適合するUnityバージョンでのビルドが推奨されています。導入によりユーザーは自作のスキンを簡単にゲームへ反映でき、コミュニティ製のリバリー配布も容易になります。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 5
  • ファイル数: 9
  • メインの言語: C#

主な特徴

  • Unityアセットバンドルを読み込んで機体へカスタムスキンを適用するBepInExプラグイン
  • ハンガー表示とミッション中の両方へ適用可能なスキンロード機能
  • 軽量で単機能、既存のアセットバンドルを利用すれば導入が容易
  • C#で実装され、BepInEx 5.4に依存

技術的なポイント

このプラグインは、BepInExプラグインとしてゲーム起動時にロードされ、外部フォルダからUnityのAssetBundleファイルを検出して読み込むことで機能します。典型的な実装フローは、AssetBundle.LoadFromFile(もしくは同等の読み込みAPI)でバンドルを開き、中に含まれるテクスチャやマテリアル、プレハブ等を取り出してゲーム内の既存オブジェクトへ適用するというものです。AssetBundle内のアセット名やマテリアル名をキーとして、対象機体のRendererコンポーネント/マテリアルを差し替える処理を行うことで、ハンガーやミッション中の表示を差し替えます。

開発上の注意点として、AssetBundleはビルドに使ったUnityのバージョンと互換性が強く作用します。ゲーム側のUnityバージョンと異なるバージョンでビルドしたバンドルは正しく読み込めない場合があるため、READMEに記載されたUnityのバージョン(READMEでは途中で切れていますが、ゲームに合わせたバージョン)が重要です。また、シェーダー互換性やテクスチャのインポート設定(フォーマット、圧縮、sRGBなど)によって見た目が崩れたり読み込みに失敗することがある点も留意が必要です。

メモリ管理やアンロードも技術的に重要です。AssetBundle.Load後は使用しなくなったアセットやバンドルをAssetBundle.UnloadやResources.UnloadUnusedAssetsで解放しないと、長時間のプレイでメモリが膨らむ可能性があります。さらに、実行時にGameObjectを差し替える際は、既存のアニメーションやマテリアルのプロパティを維持する処理(プロパティのコピーやマテリアルインスタンスの作成)を行わないと、期待しない挙動が出ることがあります。

互換性面では、他のBepInExプラグインやゲームのアップデートによる内部クラス名の変更が影響します。プラグイン側は可能な限り汎用的なオブジェクト探索(タグ・名前・型に基づく検索)と例外処理を行い、変更に強くすることが望ましいでしょう。導入手順と要件はREADMEに明記されており、ユーザーはBepInEx 5.4を事前に導入した上で、作成したAssetBundleを所定のフォルダへ配置するだけで利用開始できる想定です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitattributes: file
  • .gitignore: file
  • Liveryloader.csproj: file
  • Liveryloader.sln: file
  • Plugin.cs: file

…他 4 ファイル

まとめ

簡潔で実用的なAggressor向けスキンローダー。導入が容易で拡張性も見込める。

リポジトリ情報:

READMEの抜粋:

Millicents Aggressor Livery Loader

version 0.1.0 ig

What is this mod

This mod is a hopefully universal way to add custom skins to any aircraft in the game, the mod takes a unity asset bundle and loads up the skin for use in the hangar and in missions :3


Requirements