FiveMサーバーをカスタマイズしてみる(アセット編)

Game

ローカルFiveMサーバーをカスタマイズしてみる試み。前回の続きです。

まず、アドオンの仕組みを理解するところから

アドオンのストリーム制限

FiveM上に衣類や髪型のアドオンを配置することで、FiveMクライアントに対してアセットをストリームできるようになります。この機能のおかげでログインすると新しく追加されたアセットを自動的にダウンロードしてくれるのですが、公開サーバーでこの機能を使うにはPatreonで一定ランクのサブスクをする必要があります。

ただし、今回のようなローカル非公開サーバーで利用したい場合、サーバー定員が8名以下であれば、無料でストリーム機能を利用できます。

txAdminでserver.cfgを以下のように修正(デフォルトは48)

# 最大接続人数を 8人 に設定
sv_maxclients 8

この機能制限はエラーが表示されたりしないので気づきにくいです。ゲーム内に衣装や髪型が反映されない場合は最初に確認したほうがよさそう。

アドオンの配置

アドオンはサーバーのresourcesフォルダに配置します。前回起動したローカルFiveMサーバーの場合、以下のフォルダとなります。

~/projects/fivem/txData/QBCore_80E5A5.base/resources

resourcesフォルダの構造

resourcesフォルダの下には[]で囲まれたフォルダがいくつかあり、これは下の階層のアドンも全部読み込みますという意味らしい。conf.dみたいな感じです。

- resources
  - [cfx-default]
  - [defaultmaps]
  - [qb]
  - [standalone]
  - [voice]
  - [mymod]

とりあえず、[mymod]というフォルダを作成しておくことにします。ロードされているアドオンはtxAdminのResoucesでも一覧で確認できます。

アドオンフォルダの構造

FiveMのアドオンは、以下のようなフォルダ構造になっています。

- myaddon
 - stream
 - fxmanifest.lua

衣類や髪型のアドオンはフォルダ内に必ずstreamフォルダがあります。どうやら、このstreamフォルダ内のファイルをFiveMがまとめてクライアントにストリーミングしてくれるようです。

衣類や髪型のアドオンを配置する

配布されている衣装や髪型のアドオンをダウンロードして配置してもゲーム内に反映されないことがあります。その場合は大抵、前述のストリーム制限に引っかかっているか、アドオンフォルダが正しく認識されていないせいです。

GitHub - grzybeek/grzyClothTool: grzyClothTool is a free tool to create and manage GTA5 addon clothing packs
grzyClothTool is a free tool to create and manage GTA5 addon clothing packs - grzybeek/grzyClothTool

grzyClothToolのようなツールにydtファイルやyddファイルを読み込ませて、アドオンとしてビルドすると、正しいフォルダ構造とmetaデータやfxmanifest.luaファイルを生成してくれます。

  • 無料や市販の髪型アドオンをダウンロードして集める
  • 解凍してytd/yddファイルを取り出す
  • grzyで新規アドオンを作成する
  • grzyの左側のリストにytd/yddファイルをドラッグアンドドロップして放り込む
  • 3D Previewで表示の確認をしてうまく表示されない物は削除する
  • BUILDボタンでアドオンフォルダを出力する
  • 出力されたフォルダをまるごとサーバーに設置

のような流れでアドオンに自分でまとめて設置したほうがよさそうです。

自作アドオンの登録

アドオンをビルドしたら、そのアドオンフォルダを[mymod]の下にコピーします。そして、server.cfgに以下の行を追加

ensure [mymod]

これでFiveMサーバーを再起動すると、自作アドオンがサーバーに反映されます。

最近のスト鯖GTAでよく利用されているRCORE Clothingという衣料品店アドオンは有料アドオンで50ユーロ(約9000円)です。こういった有料アドオンも基本的に同じ設置方法になります。

ちなみに、この有料アドオン、衣装を追加インストールすると自動でサムネも生成してくれたりします。

コメント

タイトルとURLをコピーしました