ZeroDev Sound ドキュメント
ZeroDev Sound:導入ガイド
このリソースには、サードパーティの音声・音楽連携は一切含まれておらず、提供もしていません。音楽は、サーバーオーナーがリソースに追加した音声ファイルと、GTA 内蔵のラジオからのみ再生されます。プレイヤーはリンクを入力できません。追加する音声は、ご自身が所有しているか、使用および配信の権利を持っているものだけにしてください。許可なくコンテンツをストリーミングすると、Cfx.re Creator Platform License Agreement および法律に違反するおそれがあります。
プレイヤーが買って、持ち歩いて、置いて、連結できるスピーカーと、自分の車に組み込むカーオーディオ。これは完全なリファレンスです。短い版は docs/SETUP.md(5ステップ)、問題があれば docs/TROUBLESHOOTING.md、1.x からの移行は UPGRADING.md を読んでください。
目次 1. 動作要件 2. インストール 3. インベントリ用のアイテム 4. 初回起動:表示されるべきもの 5. よく変更される設定 6. 操作 7. カーオーディオ 8. 音楽ソース 9. Pulse Phone 10. 警察、近所の住人、管理者 11. 言語 12. トラブルシューティング 13. アップデート
1. 動作要件
| 必須 | oxmysql。ZeroDev Sound は初回起動時に独自のテーブルを作成します。インポートする SQL ファイルはありません。 |
| framework | ESX Legacy、QBCore、Qbox、またはなし(standalone)。自動で検出されます。 |
| インベントリ | ox_inventory、qb-inventory(ps- と lj-inventory も)、qs-inventory、codem-inventory、core_inventory、origen_inventory、tgiann-inventory、ESX のインベントリ、またはなし。自動で検出されます。 |
| 任意 | ox_target または qb-target(ない場合、プレイヤーには代わりに画面上のキー操作の案内が表示されます)。Pulse Phone 1.2.9 以降(Sound アプリと Pulse Drive のカーステレオが追加されます)。マイク用の pma-voice:ない場合、マイクを持って歌うことはできますが、スピーカーからは誰にも聞こえません。 |
他には何も要りません:ox_lib も、API キーも、Google アカウントも不要です。
Linux サーバー
Linux サーバーでは、Latest ではなく Recommended のサーバーアーティファクトを使ってください。FiveM のサーバーダウンロードページ(docs.fivem.net/docs/server-download/)で Linux と Recommended のアップデートブランチを選んでください。最新の Linux アーティファクトを使ったサーバーが読み込み中にクラッシュし(FXServer が /proc/self/maps のダンプを出力)、Recommended のアーティファクトに切り替えたら解決しました。Linux についての報告はこの1件だけで、当方ではまだ Linux サーバーで ZeroDev Sound を動かしていません。
Linux サーバーでは、Latest ではなく Recommended のサーバーアーティファクトを使ってください。FiveM のサーバーダウンロードページ(docs.fivem.net/docs/server-download/)で Linux と Recommended のアップデートブランチを選んでください。最新の Linux アーティファクトを使ったサーバーが読み込み中にクラッシュし(FXServer が /proc/self/maps のダンプを出力)、Recommended のアーティファクトに切り替えたら解決しました。Linux についての報告はこの1件だけで、当方ではまだ Linux サーバーで ZeroDev Sound を動かしていません。
standalone サーバー(framework なし)ではすべて無料です:ストアもカーパーツも料金はかかりません。
2. インストール
手順1. フォルダーを入れる。zerodev-sound フォルダーを resources フォルダーに入れます(サブフォルダーでも構いません。たとえば resources/[zerodev]/zerodev-sound)。フォルダー名は zerodev-sound のままにしてください。ox_inventory のアイテム項目がその名前で呼び出します。
手順2. server.cfg に追加する。データベース、framework、インベントリの後に:
ensure oxmysql
ensure es_extended # or qb-core / qbx_core, or nothing on a standalone server
ensure ox_inventory # or your inventory
ensure ox_target # optional, or qb-target
ensure phone # optional: Pulse Phone
ensure zerodev-sound手順3. 管理者に admin 権限を与える(スピーカー数の上限なし、/soundadmin の一覧、リモートでの停止と撤去):
add_ace group.admin zerodev.sound.admin allow手順4. アイテムを設定する。お使いのインベントリ用に:セクション3。ESX のインベントリと QBCore では自動で行われます。
手順5. サーバーを再起動する(すべてのプレイヤーがモデルを読み込むよう、リソースだけでなくサーバー全体を再起動)。そしてコンソールを確認します:セクション4。
3. インベントリ用のアイテム
アイテムは12個:10種類のスピーカー、マイクスタンド、修理キットです。
| アイテム名 | ラベル | 重さ |
|---|---|---|
zds_roam |
Roam ポータブルスピーカー | 2 kg |
zds_room_shelf |
シェルフスピーカー | 4 kg |
zds_room_tower |
タワースピーカー | 10 kg |
zds_room_ceiling |
天井スピーカー | 2 kg |
zds_room_sub |
家庭用サブウーファー | 8 kg |
zds_stage_pa |
PA スピーカー | 10 kg |
zds_stage_sub |
コンサート用サブウーファー | 15 kg |
zds_stage_array |
ラインアレイスピーカー | 12 kg |
zds_stage_monitor |
ステージモニター | 6 kg |
zds_stage_mixer |
DJ ミキサー | 5 kg |
zds_stage_mic |
マイクスタンド | 3 kg |
zds_repair_kit |
スピーカー修理キット | 0.6 kg |
画像は zerodev-sound/web/img/items/ にあります。推測する必要はありません。何かが足りないときは、サーバーコンソールがお使いのインベントリ用の項目をそのまま表示し、まだ置かれていない画像の名前を示します。
お使いのインベントリは?
| インベントリ | やること | 画像の置き場所 |
|---|---|---|
| ESX インベントリ(ox なしの ESX Legacy) | 不要です。アイテムは起動時に items テーブルに追加されます。 |
コピーするものはありません |
| ox_inventory(ESX、Qbox、standalone) | ox_inventory のブロックを ox_inventory/data/items.lua のテーブル内に貼り付けます。ox_inventory を再起動し、その後 zerodev-sound を再起動してください。 |
コピーするものはありません:項目が zerodev-sound から画像を読み込みます |
| qb-inventory、ps-inventory、lj-inventory(QBCore) | 不要です。アイテムは起動時に QBCore の共有アイテムに追加されます。 | web/img/items/*.png を <your inventory>/html/images/ にコピー |
| qs-inventory | QBCore では QBCore のブロックを qb-core/shared/items.lua に貼り付けます。ESX では同じ項目を qs-inventory/shared/items.lua に貼り付けます。 |
qs-inventory/html/images/ |
| codem-inventory | 12個のアイテムを、codem-inventory/config/itemlist.lua に、QBCore のブロックにある名前、ラベル、重さで追加します。QBCore では、QBCore.Functions.UseItem を codem-inventory に向ける codem-inventory 自身の導入手順も完了してください。そうしないとアイテムを使えません。 |
codem-inventory のアイテム画像フォルダー |
| core_inventory | 不要です。アイテムは QBCore の共有アイテムか ESX の items テーブルに自動で追加されます。 |
core_inventory のアイテム画像フォルダー |
| origen_inventory | 12個のアイテムを、origen_inventory/config/items.lua に、QBCore のブロックにある名前、ラベル、重さで追加します。 |
origen_inventory のアイテム画像フォルダー |
| tgiann-inventory | 12個のアイテムを、tgiann-inventory/items/items.lua に、QBCore のブロックにある名前、ラベル、重さで追加します。 |
inventory_images/images/ |
| インベントリなし | 不要です。購入したスピーカーや片付けたスピーカーは、/sound の Your speakers に Set up ボタン付きで待機しています。 |
コピーするものはありません |
スクリプトに任せず手で qb-core にアイテムを追加するには、QBCore のブロックを qb-core/shared/items.lua に貼り付けてください。
これらの API を模倣した他のインベントリの場合:Config.Inventory をそのインベントリに設定してください(セクション5を参照)。自作のインベントリは server/bridge.lua で接続できます。このファイルは読める形になっており、各インベントリは3つの小さな関数(数える、追加、削除)でできています。
ox_inventory のブロック
return { ... } テーブル(ox_inventory/data/items.lua 内)の中に貼り付けます:
['zds_repair_kit'] = { label = 'Speaker Repair Kit', weight = 600, stack = false, close = true, description = 'Fixes a broken speaker. Use it next to one.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_repair_kit.png' } },
['zds_roam'] = { label = 'Roam Portable Speaker', weight = 2000, stack = false, close = true, description = 'Portable speaker with twin bass radiators. Carry it or set it down.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_roam.png' } },
['zds_room_ceiling'] = { label = 'Ceiling Speaker', weight = 2000, stack = false, close = true, description = 'Indoor. Round ceiling or wall speaker for background music in a business.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_ceiling.png' } },
['zds_room_shelf'] = { label = 'Shelf Speaker', weight = 4000, stack = false, close = true, description = 'Indoor. Bookshelf speaker: link several around a home or shop.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_shelf.png' } },
['zds_room_sub'] = { label = 'Home Subwoofer', weight = 8000, stack = false, close = true, description = 'Indoor. Cube subwoofer: link it to your indoor speakers for deep bass.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_sub.png' } },
['zds_room_tower'] = { label = 'Tower Speaker', weight = 10000, stack = false, close = true, description = 'Indoor. Floor-standing tower with two woofers: deep, clean sound for a whole room.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_room_tower.png' } },
['zds_stage_array'] = { label = 'Line Array Speaker', weight = 12000, stack = false, close = true, description = 'Concert. Line-array speaker for long throw over a big crowd. Stack them.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_array.png' } },
['zds_stage_mic'] = { label = 'Mic Stand', weight = 3000, stack = false, close = true, description = 'Concert. A mic on a boom stand: link it to your concert speakers, stand at it and sing through them (/soundmic).',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_mic.png' } },
['zds_stage_mixer'] = { label = 'DJ Mixer', weight = 5000, stack = false, close = true, description = 'Concert. Not a speaker: whoever stands at it runs every linked concert speaker (volume, bass, sound, timing).',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_mixer.png' } },
['zds_stage_monitor'] = { label = 'Stage Monitor', weight = 6000, stack = false, close = true, description = 'Concert. Wedge monitor so the DJ or band hears the mix on stage.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_monitor.png' } },
['zds_stage_pa'] = { label = 'PA Speaker', weight = 10000, stack = false, close = true, description = 'Concert. Powered 15" PA top on a tripod: link many for an event.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_pa.png' } },
['zds_stage_sub'] = { label = 'Concert Subwoofer', weight = 15000, stack = false, close = true, description = 'Concert. Double 18" sub cabinet: the bass you feel at a show.',
client = { export = 'zerodev-sound.useItem', image = 'nui://zerodev-sound/web/img/items/zds_stage_sub.png' } },QBCore のブロック
qb-、ps-、lj-、qs-inventory が読む QBCore のアイテム形式:
['zds_repair_kit'] = { name = 'zds_repair_kit', label = 'Speaker Repair Kit', weight = 600, type = 'item', image = 'zds_repair_kit.png', unique = true, useable = true, shouldClose = true, description = 'Fixes a broken speaker. Use it next to one.' },
['zds_roam'] = { name = 'zds_roam', label = 'Roam Portable Speaker', weight = 2000, type = 'item', image = 'zds_roam.png', unique = true, useable = true, shouldClose = true, description = 'Portable speaker with twin bass radiators. Carry it or set it down.' },
['zds_room_ceiling'] = { name = 'zds_room_ceiling', label = 'Ceiling Speaker', weight = 2000, type = 'item', image = 'zds_room_ceiling.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Round ceiling or wall speaker for background music in a business.' },
['zds_room_shelf'] = { name = 'zds_room_shelf', label = 'Shelf Speaker', weight = 4000, type = 'item', image = 'zds_room_shelf.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Bookshelf speaker: link several around a home or shop.' },
['zds_room_sub'] = { name = 'zds_room_sub', label = 'Home Subwoofer', weight = 8000, type = 'item', image = 'zds_room_sub.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Cube subwoofer: link it to your indoor speakers for deep bass.' },
['zds_room_tower'] = { name = 'zds_room_tower', label = 'Tower Speaker', weight = 10000, type = 'item', image = 'zds_room_tower.png', unique = true, useable = true, shouldClose = true, description = 'Indoor. Floor-standing tower with two woofers: deep, clean sound for a whole room.' },
['zds_stage_array'] = { name = 'zds_stage_array', label = 'Line Array Speaker', weight = 12000, type = 'item', image = 'zds_stage_array.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Line-array speaker for long throw over a big crowd. Stack them.' },
['zds_stage_mic'] = { name = 'zds_stage_mic', label = 'Mic Stand', weight = 3000, type = 'item', image = 'zds_stage_mic.png', unique = true, useable = true, shouldClose = true, description = 'Concert. A mic on a boom stand: link it to your concert speakers, stand at it and sing through them (/soundmic).' },
['zds_stage_mixer'] = { name = 'zds_stage_mixer', label = 'DJ Mixer', weight = 5000, type = 'item', image = 'zds_stage_mixer.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Not a speaker: whoever stands at it runs every linked concert speaker (volume, bass, sound, timing).' },
['zds_stage_monitor'] = { name = 'zds_stage_monitor', label = 'Stage Monitor', weight = 6000, type = 'item', image = 'zds_stage_monitor.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Wedge monitor so the DJ or band hears the mix on stage.' },
['zds_stage_pa'] = { name = 'zds_stage_pa', label = 'PA Speaker', weight = 10000, type = 'item', image = 'zds_stage_pa.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Powered 15" PA top on a tripod: link many for an event.' },
['zds_stage_sub'] = { name = 'zds_stage_sub', label = 'Concert Subwoofer', weight = 15000, type = 'item', image = 'zds_stage_sub.png', unique = true, useable = true, shouldClose = true, description = 'Concert. Double 18" sub cabinet: the bass you feel at a show.' },config/catalogue.lua でラベル、価格、重さを変更した場合は、代わりにご自身のコンソールから項目をコピーしてください。設定をもとに表示されます。
4. 初回起動:表示されるべきもの
サーバーコンソールで
ZeroDev Sound はチェックボックスをひとつ表示します(サーバーコンソールで soundcheck と入力すると再表示します):データベースとスキーマ、framework、お金、インベントリとアイテム、ガレージのテーブル、ターゲット、Pulse Phone、モデル、取り付けベイ、ゲーム内で変更された設定。OK 以外の行にはすべて、やるべきことが書かれています。docs/SETUP.md に例があり、docs/TROUBLESHOOTING.md で各行を説明しています。
- framework の行に見つかったものが表示されます。間違っている場合は、
Config.FrameworkかConfig.Inventoryをconfig/config.luaで設定してください。 - 黄色の行
Add these to ox_inventory/data/items.lua ...(または... if these items are not in ... yet, add them)の後にアイテムの項目が続く場合:お使いのインベントリについてセクション3を行い、再起動してください。ox_inventory のメッセージはアイテムが入ると表示されなくなります。qs-、codem-、origen-、tgiann-inventory では、追加したかどうかにかかわらず、リマインダーとして毎回の起動時に項目が表示されます。 - 黄色の行
Copy zds_....png from zerodev-sound/web/img/items into ...:それらの画像がまだインベントリの画像フォルダーにありません。フォルダー名が表示されます。 Pulse Phone app not registered: ...:Pulse Phone は動いているが、アプリを拒否しました。セクション9を参照してください。
ゲーム内で(5つのチェック)
- マップの Legion Square に ZeroDev Sound のブリップ、Benny's に Car audio bay のブリップが表示されます。
- ストアでは、スピーカーを展示したスタンドに店員が立っています。店員をターゲットして(ターゲットリソースがない場合は E を押して)、Roam Portable Speaker を購入してください。
- インベントリから使うと、手に取り出されます。E を押し、Library を開いて Night Drive(スクリプトに同梱のデモ曲)を再生してください。周りの人にも聞こえます。
- 車に乗ります。最初の数回は、画面の隅にカーステレオを開くキー(既定では K)が表示されます。
- ドライバーとしてカーオーディオの取り付けベイに車を入れ、E を押します。お使いの車でインストーラーが開きます。
5. よく変更される設定
ゲーム内で:/soundadmin > Settings で、よく使う設定(取り付けベイ、取り付けできる人、対象の車、価格、最大音量、静音時間、制限、ストア、警察、損傷)を全員に即時反映で変更できます。これらはデータベースに保存され、config.lua より優先されます(パネルで Reset to config を押すまで)。
特に記載がない限り、すべて config/config.lua にあります。製品、価格、カーパーツは config/catalogue.lua に、各車の純正サウンドは config/vehicles.lua にあります。
| やりたいこと | 設定 |
|---|---|
| framework やインベントリを強制指定する | Config.Framework (auto, esx, qb, qbox, standalone), Config.Inventory (auto, ox, qb, qs, codem, core, origen, tgiann, esx, none) |
| リモコンのコマンドを変更する | Config.Command(既定は sound で、/sound になります) |
| カーステレオのキーを変更する | Config.HeadUnitKey(既定は K)。プレイヤーは GTA の設定 > Key Bindings > FiveM で自分で割り当てを変更できます。 |
| プレイヤーごとのスピーカー数 | Config.MaxPlacedPerPlayer(既定は 8)。管理者は無制限です。 |
| ひとつの連結グループ内のスピーカー数 | Config.MaxLinkedPerGroup(既定は 16) |
| 接続できる距離、操作できる距離 | Config.PairRange (15 m), Config.ControlRange (80 m) |
| ストアを移動する、またはストアを追加する | Config.Shop.locations。それぞれに label、coords、blip、任意で heading(スタンドの向き)と clerk(ped モデル)を指定します。Config.Shop.account は bank か cash です。Config.Shop.enabled = false でストアがなくなります。 |
| スピーカーの価格 | price(config/catalogue.lua > Catalogue.Speakers の各製品)。修理キットの価格は Config.Damage.repairPrice です。 |
| カーオーディオを取り付ける場所 | Config.Install.bays(それぞれ label、coords、radius、blip 付き)。既定:Benny's にベイがひとつ。 |
| オーナーがどこでも自分の車に組み込めるようにする | Config.Install.anywhere = true。カーステレオに Install ボタンと、/caraudio コマンド(Config.Install.command)が追加されます。 |
| 組み込める車 | Config.Install.vehicles:'owned'(既定)または 'any'。セクション7を参照してください。 |
| メカニックだけが取り付けできるようにする | Config.Install.anyone = false にして、ジョブを Config.Install.jobs に記載します(勤務中である必要があります)。 |
| カーパーツを無料にする | Config.Install.chargeParts = false。Config.Install.account は bank か cash です。 |
| カーパーツの価格と既製キット | Catalogue.CarParts と Catalogue.CarKits(config/catalogue.lua 内) |
| 車の純正サウンド | Vehicles.ByClass と Vehicles.ByModel(config/vehicles.lua 内)(basic、premium、reference、bike、none) |
| ライブラリのオン・オフ | Config.Sources.library。セクション 8 を参照してください。 |
| オリジナルの曲 | Config.Library(web/library/ 内のファイル) |
| 静音時間 | Config.QuietHours = { enabled = true, from = 23, to = 7, maxVolume = 0.35 }(サーバーの現地時間) |
| 警察のジョブと権限 | Config.Police(セクション10を参照) |
| 撃たれたスピーカーの破損 | Config.Damage.enabled |
| パフォーマンスの制限 | Config.Streaming.propRange(モデルを描画する距離 90 m)、maxAudibleSessions(同時に聞こえる別々の曲は6曲)、maxMovingParts(1フレームで動くコーンは24個) |
| サポート用の追加のコンソール出力 | Config.Debug(問題を調べている間は true に設定) |
アイテム名。他のスクリプトがすでに zds_ のアイテム名のどれかを使っている場合は、Catalogue.Speakers にあるその製品のキーの名前を変え(たとえば zds_roam = { ... })、インベントリで新しい名前を使い、画像の名前もそれに合わせて変えてください。
6. 操作
| 項目 | 方法 |
|---|---|
| リモコンを開く | /sound、スピーカーの前で E、または Pulse Phone の Sound アプリ |
| カーステレオ | 車に座っている間に K(GTA の設定で割り当て変更可能) |
| スピーカーを置く | そのアイテムを使います。置きたい場所を狙うと、置ける場所では緑色に表示されます。マウスホイールまたは Q / E で回転します。Enter か左クリックで設置、Backspace か右クリックでキャンセルします。 |
| ラインアレイを積み上げる | 設置中に Arrow Up / Arrow Down で上げ下げします |
| Roam を持ち歩く | 手に取り出され、歩いている間も鳴り続けます。E で音楽、G で置く、H で片付け。車に乗ったり水に入ったりすると片付けられます。 |
| 所有するスピーカーを移動する、片付ける | ターゲットして Move か Pack up を選ぶか、ターゲットリソースがない場合は横に立って:G で移動(Roam の場合は再び持ち歩く)、H で片付け。リモコンの Speakers タブでも片付けられます。 |
| スピーカーを連結する | 自分のスピーカーのひとつに接続し、リモコンの Speakers タブを開いて、近くにある他の自分のスピーカーの横の Link を押します。ハンディはハンディ同士、屋内用は屋内用同士、コンサート用はコンサート用同士で連結します(それぞれ 40 m、60 m、250 m 以内)。 |
| カーオーディオのインストーラー | ドライバーとしてベイに車を入れ、E を押します(どこでも組み込める設定がオンなら、ステレオの Install ボタン / /caraudio)。パーツをドラッグすると車の表面に沿ってスライドし、Alt + ドラッグならその高さのまま水平にスライドし(スナップなし)、Shift + ドラッグで持ち上げ、Q / E または Shift + スクロールで回転します。 |
| スピーカーで歌う | 接続しているスピーカーの DJ ミキサーまたはマイクスタンド(ストアで販売、スピーカーと同じようにリンクします)の前、または車の取り付けのマイクスタンドの前で:/soundmic でマイクを取り、もう一度 /soundmic で戻します |
| うるさい音楽を通報する | /noise |
| 管理者用一覧 | /soundadmin |
| アイテムを渡す(サーバーコンソール) | givespeaker <player id> <item name> |
| 演出としてサブを飛ばす(スタッフ) | 車内で /soundblow、またはコンソールで soundblow <plate> |
リモコン内:Music(サーバーのライブラリ)、Queue(次に再生、保存した プレイリスト)、Speakers(各スピーカーの電源と音量、リンク、片付け)、Tune(6 つのサウンドモード、 3 バンドイコライザー、音楽を選ぶ人、営業時間、コンサート用セットの「Real distance」)。 音楽を選ぶ人:Only me、Party(近くにいる誰でも曲をリクエストでき、オーナーが 承認)、Anyone(近くにいる人が再生、一時停止、スキップ、キュー追加、シークを操作可能)。Opening hours は、2 つの時刻の間、オーナーのプレイリストの 1 つを自動で再生します。ショップやクラブ向けです。
マイク(pma-voice が必要)。マイクを持っている間、そのシステムのどのスピーカーの近くにいる人にも、あなたの声がそのスピーカーから PA のような音で聞こえます。音量はそのスピーカーが音楽を鳴らす音量と同じで、届く範囲も同じです。ミキサーやマイクスタンドから 4 m 離れるか、接続を切るか、マイクを戻すと、声は通常に戻ります。スピーカーで歌えるのはシステムの所有者(車の場合は管理者も)だけです。他のプレイヤーがどのシステムでも使えるようにするには zds.mic の ace を付与してください。あなたの声は各スピーカーの位置から聞こえるわけではありません。ボイスチャットは声をその位置に置けないため、スピーカーの近くにいる人には、そのスピーカーの音量であなたの声が聞こえます。設定:Config.Mic。
7. カーオーディオ
プレイヤーの組み込み方
- カーオーディオの取り付けベイ(既定は Benny's)に車を入れ、ドライバーとして E を押します。
- 既製キット(Daily thump、Competition、Trunk wall、Sound quality、Clean and hidden)から始めるか、パーツを選びます:サブウーファー(8" から 18")、ボックス、アンプ、ドアスピーカー、ツイーター、ポッド、フォルスフロア、パネル、アクリル板、キャパシター、セカンドバッテリー、LED ストリップ、ヘッドユニット。
- 各パーツを車の好きな位置にドラッグします。サブはボックスの開口部にはまります。各パーツに仕上げ(8色)を選べ、サブとスピーカーにはグリルとライトリングも選べます。Mirror はパーツを反対側にコピーし、Fine position は小刻みに動かします。カメラビューは5つ:Boot、Cabin、Side、Front、Top。サイズ:サブは 8"、10"、12"、15"、18"(ボックス内のサブはすべて同じサイズで、ボックスはそれに合わせて作られ、元のサイズより最大30%大きく、または小さくできます)。ドアスピーカーは 5.25"、6.5"、6x9"。その他のパーツはすべて 80% から 130% まで 5% 刻み(ヘッドユニットは標準サイズ)。大きいボックスやパネルほど高くなり、小さくしたパーツは無料です。大きいドライバーほどコーンが大きく動き、大きいドアスピーカーほど低音まで届きます。
- Test system を押すと、支払う前に組んだシステムが車で鳴るのを聞けます。
Config.Libraryの最初の曲(変更していなければ同梱のデモ曲)が再生されます。 - Install を押します。料金がかかるのは車に新しく付けるパーツだけで、前回の取り付けから残したパーツに再び料金はかかりません。
取り付けはナンバープレートに紐づけて保存され、どのガレージ、押収、リスポーンからでも車と一緒に戻ってきます。ガレージスクリプトの編集は不要です。
プレイヤーに聞こえる音
- すべての車には、クラスとモデルに応じた純正サウンドがあらかじめあります:4スピーカーのシステム、プレミアムの10スピーカー、リファレンスの13スピーカーのシステム、バイクにはフェアリングスピーカー。自転車、航空機、列車にはありません。取り付けたスピーカーは最も近い純正スピーカーを置き換え、サブはそれに追加されます。
- 車の外では、ボディを通り抜けるのは主に低音です。開いたドア、開いた窓、開いたトランクは、それぞれ向いている側へより多くの音を漏らします。
- サブ付きの車は、駐車中や徐行中に低音に合わせてサスペンションで軽く揺れ(走行中は揺れません)、車内の全員がキックを感じます。
- ステレオ(K)には、音量、サブのレベル、フェーダー、バランスがあります。
- アンプや定格の許容範囲を大きく超えて、ほぼ最大音量でしばらく鳴らしたサブは飛ぶことがあります。車の近くにいる全員が、そのサブから立ちのぼる細い煙を見て、こもったポンという音を聞きます。飛んだサブは動かなくなり、低音が弱まり、ベイで交換するまでコーンは焦げたままです(新しいサブは有料で、焦げ跡を消すのは無料の修理ではありません)。スタッフは演出として見せることができます:車内で
/soundblow、またはサーバーコンソールでsoundblow <plate>。
組み込める車(Config.Install.vehicles)
'owned'(既定):framework の所有車両テーブルにある車だけ(ESX はowned_vehicles、QBCore と Qbox はplayer_vehicles)。'any':誰も所有していない車(NPC の車、スポーンした車、レンタカー)も対象。- どちらの場合も、他のプレイヤーが所有する車はその人のものです。変更できるのは、その持ち主、
Config.Install.jobsにある勤務中のメカニック、または管理者だけです。standalone サーバーでは、すべての車が所有車として扱われます。
ガレージ、ナンバープレート、押収
- ナンバープレートは前後の空白を除き、大文字にして照合するため、プレートに空白を足したり大文字・小文字を変えたりするガレージでも一致します。
- 偽装または変更したナンバープレートの車は、保存されたプレートに戻るまで取り付けが見つかりません。
- 1人のプレイヤーの画面上にしか存在しない車(ガレージのプレビュー、一部のショールームの車)には取り付けできません。他の人にとっては実在する車ではないからです。
他のサウンド・ステレオスクリプト
ZeroDev Sound は独自のコマンド(/sound、/caraudio、...)、イベント、車両の state bag を持つ独立したリソースなので、他のスクリプトを置き換えたり変更したりしません(車内で再生している間は、GTA 自身のカーラジオをオフにするだけです)。2つのカーオーディオスクリプトを同じ車で同時に動かす組み合わせはテストしていません。車1台につきステレオはひとつにしてください。
8. 音楽ソース
音楽は、リソースに追加した音声ファイルからのみ再生されます。プレイヤーはリストから選びます。 リンクは入力できず、Web アドレスが再生されることもありません。追加する音声は、ご自身が所有しているか、 使用および配信の権利を持っているものだけにしてください。
- mp3 または ogg ファイルを
zerodev-sound/web/library/に置き、それぞれをConfig.Libraryに{ title = '...', artist = '...', file = 'name.mp3' }の形式で登録します。これで 3D サウンド、部屋 や壁、車内、サウンドモード、EQ、実際の低音に合わせて動くコーンまで、すべて使えます。 Config.Sources.library = falseでライブラリをオフにできます。- GTA 標準のカーラジオは、このリソースの曲がその車で再生されていない間は、どの車でも引き続き使えます。
- 起動時のボックスには、プレイヤーが選べる曲数が表示され、スキップした項目(
web/library/内の mp3 でも ogg でもないファイル名)があれば警告が出ます。 - 3.0.0 からの更新:リンクだった保存済みの曲、最近の曲、プレイリストの項目は、表示も 再生もされなくなります。ライブラリの曲は引き続き使えます。
9. Pulse Phone
設定は不要です。サーバーで Pulse Phone が動いている場合(リソース名 phone、どちらのエディションでも):
- すべてのスマホのホーム画面に Sound アプリが入ります。
/soundと同じリモコンで、スピーカーや車に接続し、音楽を選び、グループ全体を操作できます。プレイヤーは削除しても App Hub から再び入れられます。 - 接続したスピーカーや車で再生中の曲が、残り時間とともに Island とロック画面に表示されます。タップすると Sound アプリが開きます。
- Pulse Drive(Pulse のカースクリーン、既定は F10)には、乗っている車のステレオが表示されます:曲名、アーティスト、ジャケット、再生、一時停止、前へ、次へ、音量、そして Sound アプリを開くボタン。Pulse Phone 1.2.9 以降が必要で、古いバージョンでは単に表示されません。
スマホを持っていないプレイヤーは /sound と K を使います。アプリでできることはすべてできます。
スマホのフォルダー名を変えた場合は、config/config.lua にその名前でこの行を追加してください:
Config.PulseResource = 'phone'10. 警察、近所の住人、管理者
| 項目 | 方法 | 設定 |
|---|---|---|
| うるさい音楽を通報する | /noise は、最も近くで再生中のスピーカー(60 m 以内)を、勤務中の警察に3分間点滅するブリップとして送ります。通報はプレイヤーごとに2分に1回までです。 |
Config.Police.complaints, complaintRange |
| スピーカーを止める | 勤務中の警察:スピーカーをターゲット > Turn off (police)、またはリモコンの Tune タブ > Police。12 m 以内。 | Config.Police.canSilence, silenceMinutes (15) |
| スピーカーを押収する | 勤務中の警察、4 m 以内:ターゲット > Seize (police)、または Tune > Police > Seize。スピーカーは警察官のものになります。 | Config.Police.canSeize |
| 警察のジョブ | これらのジョブで勤務中のプレイヤー | Config.Police.jobs |
| 壊れたスピーカー | 設置したスピーカーを撃つと壊れ、パチパチと音を立てて止まります。スピーカー修理キット(ストアの Accessories で販売)で直せます。スピーカーの横でキットを使ってください。 | Config.Damage |
| 管理者用一覧 | /soundadmin:サーバー上のすべてのスピーカー、再生中の曲、持ち主を表示し、ウェイポイントの設定、音楽の停止、スピーカーの撤去のボタンがあります。 |
Config.AdminAce (zerodev.sound.admin) |
| アイテムを渡す | サーバーコンソール:givespeaker <player id> <item name> |
11. 言語
このスクリプトは Pulse Phone と同じ25言語に対応しています。config/config.lua で言語を設定します:
| コード | 言語 | コード | 言語 | コード | 言語 |
|---|---|---|---|---|---|
en |
英語 | hu |
Magyar | pt-PT |
Português (Portugal) |
ar |
العربية | it |
Italiano | ro |
Română |
bs |
Bosanski | ja |
日本語 | ru |
Русский |
cs |
Čeština | ko |
한국어 | sl |
Slovenščina |
da |
Dansk | nb |
Norsk bokmål | sv |
Svenska |
de |
Deutsch | nl |
Nederlands | th |
ไทย |
es |
Español | pl |
Polski | tr |
Türkçe |
fr |
Français | pt-BR |
Português (Brasil) | uk |
Українська |
zh-CN |
简体中文 |
たとえば Config.Locale = 'de' のように設定します。デフォルトの 'auto' は Pulse Phone に従います。サーバーは Pulse の Config.Locale を使い、各プレイヤーにはスマホで選んだ言語で Sound が表示されます。Pulse がない場合は英語です。ゲーム内メッセージ、キー操作の案内、アイテム名、ステレオのキー名は locales/<code>.lua に、インターフェース(リモコン、カーステレオ、ストア、インストーラー、Pulse アプリ)は locales/<code>_ui.lua にあります。足りない部分は英語で表示されます。
行を変更するには、その言語のファイルで編集します。%s、%d、%.1f、%%、~a~ はすべてそのまま残してください。独自の言語を追加するには、locales/en.lua を locales/xx.lua にコピーし、Locales['en'] を Locales['xx'] に変更し(2か所とも)、引用符の間のテキストを翻訳して、Config.Locale = 'xx' を設定します。locales/ui_strings.txt には xx_ui.lua 用のすべてのインターフェースキーが載っています。
12. トラブルシューティング
プレイヤーがスピーカーのアイテムを使えない
- ox_inventory:項目は
ox_inventory/data/items.luaの中に、そのclientの行とともにある必要があり、貼り付けた後に ox_inventory を再起動する必要があります。フォルダー名はzerodev-soundのままである必要があります(項目がzerodev-sound.useItemを呼び出します)。 - QBCore / ESX:
zerodev-soundは、server.cfgで framework の後に起動する必要があります。 - QBCore 上の codem-inventory:
QBCore.Functions.UseItemを codem-inventory に向ける、codem-inventory 自身の手順を完了してください。 - インベントリなし:スピーカーはアイテムではありません。プレイヤーは
/soundを開いて Set up を押します(Your speakers の下にあります)。
アイテムの画像がない
- ox_inventory:コピーするものはありません。画像のパスは zerodev-sound を指しています。空白で表示される場合は、項目の
image = 'nui://zerodev-sound/...'の行とフォルダー名を確認してください。 - その他のインベントリ:コンソールの
Copy ... into ...の行を読んでください。足りない画像とその置き場所のフォルダーが一覧になっています。zerodev-sound/web/img/items/からコピーし、インベントリを再起動してください。
プレイヤーはリンクを再生できません
仕様です。プレイヤーが選べるのはサーバーのライブラリの曲だけです。曲を
Config.Library に追加してください(セクション 8)。
まったく音が出ない
- FiveM の内蔵ブラウザーはクリックなしで音を再生するため、プレイヤーが音声を「許可」するために何かを押す必要はありません。他の人には聞こえるのに1人だけ何も聞こえない場合は、その人の Windows の音量ミキサーで FiveM を確認してください。
- リモコンの Speakers タブでスピーカーを確認してください。電源が切れているか、Broken になっている可能性があります。
- 警察が止めた(
Config.Police.silenceMinutesの間)可能性や、静音時間が音量を制限している(Config.QuietHours)可能性があります。 - プレイヤーが同時に聞ける別々の曲は、近い順に最大
Config.Streaming.maxAudibleSessions曲(6曲)です。 - インストーラーの Test system は、
Config.Libraryが空か、Config.Sources.library = falseの場合は無音になります。ライブラリの最初の曲を再生するためです。
ストアがない
Config.Shop.enabledはtrueである必要があります。- 店員とスタンドは、プレイヤーが
Config.Shop.locationsから約 70 m 以内にいるときだけ、そのプレイヤーの画面にだけ表示されます。設定した座標を確認してください。 - ox_target か qb-target がある場合は店員をターゲットします。ない場合は店員の前に立って:E でスピーカーを見る。
スピーカーが GTA の普通のスピーカーとして表示される、またはまったく表示されない
stream/ フォルダーがないか名前が変更されている、またはリソースが起動する前にプレイヤーが参加しました。サーバーを再起動して再接続してください。
カーオーディオのメッセージとその意味
| メッセージ | 原因 | 対処法 |
|---|---|---|
| Drive into a car audio bay to build.(組み込むにはカーオーディオのベイに車を入れてください) | どこでも組み込める設定がオフで、車がベイの中にありません。 | ベイ(Config.Install.bays)に車を入れるか、Config.Install.anywhere = true を設定してください。 |
| Stand next to your car to build its sound system.(サウンドシステムを組むには車の横に立ってください) | どこでも組み込める設定がオンで、車から 8 m より離れているか、/caraudio で 4 m 以内に車が見つかりませんでした。 |
車のそばに立つか、車に乗ってください。 |
| Stop the car first.(先に車を止めてください) | 車が動いています。 | 停車してください。 |
| Car audio can only be fitted to a car you own.(カーオーディオは自分が所有する車にしか取り付けられません) | Config.Install.vehicles = 'owned' で、このナンバープレートが所有車両テーブルにありません。そのテーブルを読み込めない場合も、管理者以外の全員にこのメッセージが表示されます。そのときコンソールには赤い行 could not read the owned-vehicles table が表示されます。 |
所有している車を使うか、'any' を設定するか、コンソールが示すデータベースのエラーを修正してください。 |
| Only the owner can change this car's audio.(この車のオーディオを変更できるのは持ち主だけです) | 車が他のプレイヤーのものです。Config.Install.anyone = false で、プレイヤーが Config.Install.jobs にあるジョブで勤務中でない場合にも表示されます。 |
持ち主、勤務中のメカニック、または管理者が組み込みます。 |
| Not enough money.(お金が足りません) | 新しいパーツの料金が、プレイヤーの Config.Install.account の残高を上回っています。 |
パーツを外すか、Config.Install.chargeParts = false を設定してください。 |
| A subwoofer blew. It needs replacing.(サブウーファーが飛びました。交換が必要です) | サブがほぼ最大音量で長時間、無理に鳴らされました。 | ベイでサブを交換してください。より大きなアンプが効果的です。 |
警察に操作の選択肢が表示されない
警察のジョブ名を Config.Police.jobs に追加してください。プレイヤーは勤務中である必要があります。
13. アップデート
1.x から 2.0 へ:UPGRADING.md を読んでください。2.x のバージョン間では:
config/フォルダー、翻訳している場合はlocales/、そしてweb/library/に追加した曲をバックアップします。- サーバーを停止します。
zerodev-soundフォルダーを新しいものに置き換えます(名前はそのまま)。 config/のファイルを戻します。アップデートノートに新しい設定が書かれている場合は、新しいファイルからその行をご自身のファイルにコピーしてください。- サーバーを起動してコンソールを読みます。新しいアイテムがあれば、お使いのインベントリ用に表示されます。
設置したスピーカー、車への取り付け、プレイリストはデータベース(zds_speakers、zds_car_builds、zds_playlists、zds_stash)に保存されており、アップデートで変更されることはありません。
元に戻すには:新しいバージョンが問題なく動くまで、以前の zerodev-sound フォルダーを resources の外に残しておき、アップデート前にデータベースをバックアップしてください。元に戻すときは、サーバーを停止し、以前のフォルダーと config/ を戻してから起動します。同じデータベースで 3.0 から 2.x に戻す操作はテストしていないので、何かおかしいと感じたらデータベースのバックアップを復元してください。