7 Days to Dieで独自の銃MODを作っていると、「発砲の炎(マズルフラッシュ)を自作のものに変えたい」という場面が出てきます。この Custom Muzzle Flash(作者: closerex / カテゴリ: Utilities)は、その差し替えを面倒な仕込みなしにできるようにする、MOD制作者向けの補助MODのようです。
どんなMOD?
プレイヤーが遊んで楽しむ系のMODではなく、銃を作るモッダーのための土台にあたるMODのようです。
作者の説明によると、これまで独自マズルフラッシュを付けるには「発砲開始でパーツを追加し、発砲停止で外す」といった手順が必要で、炎が正しいタイミングで出て消えるように追加の条件チェックまで求められていたとのこと。一方でブロックには ParticleName にパスを書くだけでパーティクルを指定できる仕組みがあり、「なぜマズルフラッシュだけこんなに複雑なのか」という問題意識から作られたMODのようです。
このMODを入れると、マズル関連プロパティに書いたリソースパスをゲーム側に登録してくれるため、プロパティを設定するだけで自作の発砲エフェクトを光らせられるようになる、という仕組みのようです。
主な特徴
- 対応するプロパティは以下の4つのようです(一人称視点=fpv用が別に用意されている点に注目):
Particles_muzzle_fire/Particles_muzzle_fire_fpv(発砲炎)Particles_muzzle_smoke/Particles_muzzle_smoke_fpv(発砲煙)
- A21以降はマズルフラッシュの寿命が
TemporaryObjectスクリプトで管理されるようになった、との記述があります。 - ソースコードはGitHubで公開されているようです。
導入のヒント
一般的なMOD同様、Mods フォルダに配置して読み込ませる形になると思われます。加えて、このMODはコード(DLL)を含むため、EAC(Easy Anti-Cheat)をオフにする必要があるとされています。マルチプレイで使う場合はサーバー・クライアント双方の扱いに注意してください。
自作パーティクルを用意する際は、作者の技術メモにあるとおり、パーティクルシステムのコンポーネントが「循環しない・短命・自己破棄する」設計であることが重要なようです(ゲームは生成直後に10個のパーティクルを強制放出し、パーティクルコンポーネントを持たないオブジェクトは破棄する挙動のため)。自前で放出し続けてしまう場合は、エミッションモジュールを無効化しておくとよい、とのことです。
こんな人におすすめ
- 独自の銃MODを作っていて、発砲エフェクトまでこだわりたいモッダー
- バニラの「AddPart/RemovePart」方式のマズルフラッシュ実装が煩雑に感じている方
- 一人称・三人称それぞれで発砲炎や煙を作り分けたい方
逆に、遊ぶ側として銃の見た目を変えたいだけの一般プレイヤーにとっては、これ単体では効果が見えにくいあくまで「下地」のMODである点に留意してください。
必要であれば、この記事に合わせて「実際に自作マズルフラッシュを設定するXMLサンプル」を補足セクションとして追記する案もあります。載せると制作者向け読者にはより実用的になりそうです。