Skip to content

音声/BGM

オーディオファイルは accmp3oggwav 形式で、ファイル名がオーディオIDとして使用されます。音声を使用すると、デフォルトの同名メタデータJSONが生成され、編集して次回ゲーム起動時に音声ファイルのメタデータを適用することができます。

メタデータで"type": "BGM"を設定すると、オーディオはBGMDataとしてではなくSoundDataとしてインスタンス化されます。また、メタデータ内でBGMの小節部分をカスタマイズすることもできます。

同じIDを使用して、既存のゲーム内音声を上書きすることができます。例えば、ひよこの鳴き声はID Animal/Chicken/chickenを使用しているので、Sound/Animal/Chicken/フォルダーにchickenという名前の音声ファイルを用意して上書きすることができます。

Soundフォルダー内のサブディレクトリはオーディオIDのプレフィックスとして使用されます。たとえば、AI_PlayMusicInstrument/sound_idを使用するため、楽器音楽を置き換える場合は、同名のオーディオファイルをInstrumentフォルダーに配置してください。

例:

cs
pc.PlaySound("clown_horn"); // <- Card.PlaySound
SE.PlaySound("clown_horn");

カスタムBGM/プレイリスト

バージョン要件

この機能はCWL 1.19.0 以降のバージョンが必要です。

ゲームには100以上のBGMが含まれており、それぞれに数字IDと音声IDがあります。

BGM
BGM ID音频 IDBGM 名称
1001 no bgmNo BGM
2002 pop01Pop01
3003 PSML516PSML516
4004 hoshinokisekiHoshi No Kiseki
5005 elomap1Tyris 1
6006 elomap2Tyris 2
7007 elomap3Tyris 3
8008 town2 magicTown 2
9009 fun villageFun Village
10010 bouken no junbiBouken No Junbi
11011 bukikoubouBuki Kobo
12012 kiminoita natsuKiminoita Natsu
13013 ruinsRuins
14014 village1Village
15015 Atlantean_Twilight256Atlantean Twilight
16016 intro2Intro 2
17017 cobaltCobalt
18018 mitologiaMitologia
19019 morning breezeMorning Breeze
20020 morning breeze(sunny day)Morning Breeze(Sunny Day)
21021 PSML047PSML047
22022 Pyramid-naibuPyramid
23023 mysterious-forestMysterious Forest
24024 PSML514PSML514
25025 nodokana muraNodokana Mura
26026 kokyoKokyo
27027 fun gameMayonakano Omochabako
28028 kagayaku tsukiKagayaku Tsuki
29029 MapBGMMap BGM
30030 a moment in the morningA Moment In The Morning
31031 SBGMv2_05SBGM 5
32032 daybreakDaybreak
33033 hoshi to tsukiHoshi To Tsuki No Oka
34034 ep2Epilogue 2
35035 nibiiro no soraNibiiro No Sora
36036 oita kataribeOita Kataribe
37037 kaerimichi pianoKaerimichi(Piano)
38038 moriMori
39039 rainaRaina
40040 laid back guitarsLaid Back Guitars
41041 earlgreyEarlgrey Guitar
42042 mayonakano-parkMayonakano Park
43043 Along-the-riverside-roadAlong the riverside road
44044 heya_guitar 1Heya Guitar
45045 Sancho_Panza 1Sancho Panza
46046 dwarfDwarf
47047 nonbiri dwarfNonbiri Dwarf
48048 nazoooki shindenNazoooki Shinden
49049 kamigamiga nemuru bashoKamigamiga Nemuru Basho
50050 titleTitle
51051 yukiYuki
52052 dark themeFear 2
53053 hoardHoard
54054 The House of LeavesThe House of Leaves
55055 BGM_0 sirube-2Sirube
56056 orc01Orc01
57057 VillageMearas Village 2
58058 PSML060PSML060
59059 tyris4Tyris 4
60060 mayoimichiMayoimichi
61061 hyousetsuHyousetsu
62062 workshopMearas Workshop
63063 shopShop
64064 TownMearas Town
65065 soaringSoaring
66066 soraochiSoraochiruhi
67067 WizartoriumWizartorium
68068 grayGray
69069 escapeEscape
70070 arifureta shiawaseArifureta Shiawase
71071 TaikutsuTaikutsu
72072 Netherworld_ShantyNetherworld Shanty
73073 tabinohajimeTabino Hajime
74074 gagGag
75075 happyMearas Happy
76076 villageMearas Village 3
77077 dragon and toastDragon and Toast
78078 legend of oneLegend of One
79079 koudouKoudou
80080 big mojoBig Mojo
81081 exoticsExotics
82082 magic cityMearas Magic City
83083 gothicGothic
84084 fieldField
85085 PSML0515PSML515
86086 anosoraAnosorano Mukouni
87087 memoryMemory
88088 memory 2Memory 2
89089 semi yuugataSemi. Yuugata.
90090 hirusagariHirusagari Kibun
91091 nichiyoNichiyo No Gogo
92092 itazuraItazura Kids
93093 cat lifeCat Life
94094 ensolaradoEnsolarado
95095 BGM3 11BGM3-11
96096 BGM3 7varBGM3-7 Var
97097 BGM3 11var 1BGM3-11 Var
98098 Pixel MythPixel Myth
99099 TsukitowatashiTsukito Watashi
100100 Tsukino KobuneTsukino Kobune
101101 flashbackFlashback
102102 punipuniPunipunichuiho
103103 sabakuSabakuwo Iku
104104 butouButoukai
105105 anime OPElin OP
106106 anime EDElin ED
107107 BGM3-1 1BGM3-1
108108 wafuWafu
109109 Into LegendAnd Thus Into Legend
110110 defenderDefender
111111 snow forestSnow Forest
112112 hirahiraHirahira
113113 lunaLuna
114114 orc05Orchestra 5
115115 xmasHoly Night
116116 xmas 2Jingle Bell
117117 atonementShokuzai No Mori

新しいBGMの追加

カスタムBGMは Sound/BGM サブフォルダーに配置されます。カスタム音效とは異なり、メタデータJSONの id フィールドを手動で編集する必要があります。CWLがファイルを生成できるように、最初にゲームを一度起動してください。

CWLは、ElinのUnityバージョン(2021.3.34f1)で使用されているデコーダーがMP3デコードエラーを起こしやすいため、oggまたはwav形式の使用をお勧めします。

id は任意のユニークな数字で、ゲームで最後に使用されたBGM ID(117)より大きく、衝突を避けるために十分ユニークである必要があります。

重要な注意事項、 この id はBGM専用です。音效のIDは拡張子なしのファイル名のままです, e.g. BGM/Happy Birthday

既存の id をBGMに割り当てると、それはグローバルBGMの置き換えになります。例えば、Adventure-YOASOBI.json の曲メタデータに 56 を割り当てると、ゲーム内のBGM 056 orc01Adventure-YOASOBI に置き換えられます。これが、新しいBGM(置き換え音楽ではない)がユニークな id を使用する理由です。そうでないと、次に同じ id を持つBGMがあなたの音楽を置き換えてしまいます。

056 orc01 はタイトルメニューのBGMです。

プレイリストの追加

あなたのプレイリストファイルは Sound/BGM/Playlist サブフォルダーに配置されます。これらはシンプルなJSONファイルの形式です。

json
{
    "shuffle": true,
    "list": [
        "megalovania"
    ],
    "remove": [
        "024 PSML514",
        "023 mysterious-forest"
    ]
}

list に含まれるオーディオID(BGM IDではありません)はプレイリストに追加され、remove はプレイリストからエントリーを削除します(存在する場合)。既存のゲームオーディオIDを使用することもできます。shuffle はそのリストがランダムに並べ替えられるかどうかを設定します。

あなたは listremove リストでワイルドカードを使用することもできます。現在、2つのモードが提供されています:

json
"remove": [
	"**"
]

これは、マージ前にすべてのトラックをクリアします。

json
"remove": [
	"<dir>/*"
]

これは、マージ前に Sound/BGM/<dir>/ フォルダーからのすべてのトラックをクリアします。

プレイリストタイプ

プレイリストのJSONファイル名は、以下のいずれかと一致する必要があります:

  • "Global"
  • 既存のプレイリスト名
  • エリアタイプリスト
  • エリアIDリスト

ここにゲーム内で既に存在するプレイリストがあります:

プレイリスト
  • Battle [1]
    • 054 The House of Leaves
  • Blank [4]
    • 041 earlgrey
    • 090 hirusagari
    • 044 heya_guitar 1
    • 043 Along-the-riverside-road
  • Day [1]
    • 004 hoshinokiseki
  • Dungeon [4]
    • 024 PSML514
    • 022 Pyramid-naibu
    • 023 mysterious-forest
    • 048 nazoooki shinden
  • Dungeon2 [6]
    • 072 Netherworld_Shanty
    • 077 dragon and toast
    • 078 legend of one
    • 079 koudou
    • 080 big mojo
    • 081 exotics
  • Dungeon_Boss [1]
    • 098 Pixel Myth
  • EloMap [3]
    • 006 elomap2
    • 007 elomap3
    • 059 tyris4
  • Festival_Noyel [1]
    • 051 yuki
  • Festival_Olvina [1]
    • 051 yuki
  • Festival_Yowyn [1]
    • 093 cat life
  • Field [1]
    • 015 Atlantean_Twilight256
  • Hoard [1]
    • 053 hoard
  • Lot [1]
    • 061 hyousetsu
  • Night [2]
    • 005 elomap1
    • 004 hoshinokiseki
  • Underground [2]
    • 046 dwarf
    • 047 nonbiri dwarf

Blank は、明示的に指定されたプレイリストがないすべてのZoneのデフォルトプレイリストです。

Zoneタイプ名とそのプレイリストを確認してください:

全局リスト

Global.json という特別なプレイリストを準備することで、すべてのプレイリストに統合されます。

指定プレイリスト

例えば、すべてのダンジョンエリア(Zone_RandomDungeonZone_RandomDungeonFactoryZone_Mine など)は、Dungeon という名前のプレイリストを共有しています。このプレイリストに曲を追加または削除したい場合は、Sound/BGM/Playlist/ フォルダー内に Dungeon.json を準備する必要があります。

Dungeon.json 内での変更は、ゲームの Dungeon プレイリストに統合され、曲の追加や削除が行われます。これは、このプレイリストを共有するすべてのエリアに影響を与えます。

別の一般的な使用例は、大マップにいるときに曲を追加することです。大マップは Region タイプのエリアであり、EloMap というプレイリストがあります。

エリアタイプリスト

プレイリストの統合に加えて、各エリアタイプに対してエリアオーバーライドを指定することもできます。これらのプレイリストはエリアタイプ名を使用し、その内容はエリアのデフォルトプレイリストに統合されます(表に指定がない場合は Blank になります)。

例えば、Zone_Vernis.json はヴェルニスエリアタイプのオーバーライドを行い、Zone_Forest はこのタイプを使用する草原と森林に対してオーバーライドを行います。

したがって、Region.json を使用して大マッププレイリストに曲を追加することも可能です。なぜなら、これは Region タイプを使用しているからです。

エリアIDリスト

同じエリアタイプに複数の異なるエリアが存在する場合、エリアIDを使用して個別にオーバーライドすることができます。例えば、Zone_dungeon 洞窟と Zone_dungeon_ruin 遺跡はどちらも Zone_RandomDungeon エリアタイプに属し、そのIDを使用して個別に指定できます。エリアIDを使用する際は、特定の N 層を指定するために @N を追加することもできます。例えば、ダルフィ地下1層は Zone_derphy@-1.json となります。

統合順序

複数のプレイリストが同時に存在することができ、それらは全局リスト、指定プレイリスト、エリアタイプリスト、エリアIDリストの順に統合されます。重複する曲は削除されます。プレイリストの統合順序は、Modの読み込み順序にも影響されます。remove リストでワイルドカードを使用する際は、プレイリストの統合順序が最終的な曲リストと順序に影響を与えることを忘れないでください。

ホットリロード/BGM ビュー

ゲーム内でセーブデータを読み込んだ後、CWLパネルを使用して現在のプレイリストを表示および制御できます:

ゲームが実行中のときにプレイリストのJSONを編集した後、すべてのプレイリストをホットリロードできます。CWLには新しいオーディオのホットリロード用のコンソールコマンドがありますが、インデックスの問題が発生する可能性があるため、使用は推奨されません。

最後の例

大マップ探索のすべてのデフォルト曲を削除し、新しい曲を追加したい場合は、Sound/BGM/Playlist/EloMap.json または Sound/BGM/Playlist/Region.json を使用します:

json
{
    "shuffle": true,
    "list": [
        "my new BGM sound id1",
        "my new BGM sound id2"
    ],
    "remove": [
        "**"
    ]
}