「BGA配置」の編集履歴(バックアップ)一覧はこちら

BGA配置 - (2015/06/27 (土) 18:11:09) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[ここ>http://www9.atwiki.jp/coolnaurl/pages/13.html#id_d24136f4]]でほんの少し触れているBGAレーンの使い方について、音楽演奏ゲームとしてのBMSには深く関わるわけではないのですが、連番BMPやレイヤーの使い方などはBMS制作の範疇にあると思ったので、ここで簡単に解説しておこうと思います。 先に書いておきますが、ここでは&bold(){BGAの作り方については言及しません}。BGAレーンへのオブジェクトの置き方の説明に留まります。本格的にBGAを作りたいという方は、そのためのサイトが存在しますので、ぜひとも[[BGAのススメ>http://bga.albalunaweb.net/index.php]]様をご参照ください。 #contents ---- #image(bga01.png, right) *BGAレーン  BGAレーンとは、BMSをBMSEで開いた場合の、右図の&bold(){背景が深緑の領域}を指します。 BGAレーンは3つのレーンの総称であり、左から(BMSEの表記に倣って)&bold(){BGA}、&bold(){LAYER}、&bold(){POOR}と称します。チャンネルでいうとそれぞれ04, 07, 06となりますが、直接シーケンスをテキストで書き込む方法は当wikiでは扱わないので、別に覚えなくても構いません。  BGAレーンは、楽曲の演奏に合わせて順次オブジェクトが処理されていくという点ではBGMレーンとさほど変わりません。ただし、BGAレーンに置かれたオブジェクトは音声の代わりに&bold(){画像}を出力します。 BGAレーンにオブジェクトを置く操作は、その他のレーンに置く場合と全く同じように、BMSEの場合は&bold(){書込モード(F3)}でクリックするだけです。置き損じれば&bold(){消去モード(F4)}で消したり、&bold(){編集モード(F2)}でずらし、複数選択、コピーカットやペーストしたり、キー音に対するそれと同様の操作が可能です。 &bold(){BGAレーンに置かれたオブジェクトを演奏やBGMレーンに移す、またはその逆が可能}ですが、後述のように&bold(){定義情報が異なる}ため、意図しない音が鳴ったりいきなりBGA領域が真っ黒になったりしますので、ご注意ください。 ---- #image(bga02.png, right) *BMP定義  BGAを使うには&bold(){BMP定義}を利用します。&bold(){WAV定義}が鳴らす音声(WAV)のファイル名の定義情報であるのと同様に、BMP定義は表示する画像(BMP)のファイル名を連ねます。 BMSEでは&bold(){#BMP}というタブをクリックしてBMP定義を一覧表示することができます。 定義する場合は、空欄をダブルクリックして直接ファイルを選ぶか、WAVの一括定義(下図)と同じようにブラウザ上でまとめて選択したものを定義情報欄にD&Dすることでできます。というか、1個ずつ登録しなければならない信念でもない限りは、用意した画像ファイルを一括選択で定義したほうがはるかに楽ですね。 #ref(dnd.png, 音切り) LR2やuBMPlayといったメジャーなBMSプレイヤーでは一般的な動画ファイルにも対応しています。使えるコーデックなどは[[BGAのススメ>http://bga.albalunaweb.net/index.php?BGA%2FBGI%A5%D5%A5%A1%A5%A4%A5%EB%A4%DE%A4%C8%A4%E1]]様を参照してください。 ---- *BGA  紛らわしい書き方ですが、先に述べたBGAレーン3つのうちの左端のレーンのことです。 ここには主に、曲を通して表示される、文字通り「背景」となる画像や映像を置きます。それは最近では1個の動画ファイルである場合が多いですが、いわゆる連番BMPという手法も残っています。  一本の動画で済ませる場合、このレーンに置かれるオブジェクトはただ一つです。あるいは、曲全体を通して静止画を表示させる(いわゆるSoundOnly)場合も、一つだけ置かれることになります。 最初に貼った画像では、#000小節の開始点にオブジェクトが置かれていることが確認できると思います。 こことLAYERレーンに置かれた画像は、次に同じレーンに別のオブジェクトが置かれるまで表示され続けます。もし途中で消したい場合、黒一色の画像を用意してもいいのですが、わざわざ用意しなくても、未定義の番号(この例では"0Q"以降が全て未定義ですね)を置くことで、プレイヤー側は画像を消去して―つまり"無"を表示して―くれます。  あるいは定義上では存在するように見せかけても、実体の存在しない名前を指定することもできます(BMSEでは怒られるのでテキスト上に直接書き込んで下さい)。上の例では"0P"に定義された"blanc"という名前の画像はフォルダ内に存在しません。これは、BMSをテキストで開いて #BMP0P blanc と書き込むことで定義することができます。BMSEでは新たに定義しようとする場合、該当する名前のファイルが無いといけませんが、既に定義されているものまではチェックしないので、BMSEで開いても怒られません。 この方法は特に実用性が無いのですが、「黒一色にしたい場合はコレ」という定義番号を決めておくのは悪くないと思います。  ちなみにLR2やuBMPlayでは&bold(){ファイルの拡張子はあまり気にされません}。例えばPNG形式で保存された画像"nanika.png"の拡張子をmpgに変更して、BMSで"#BMP01 nanika.mpg"と指定し、そのオブジェクトを配置しても、再生すると正常に画像が表示されます。ただし、ファイル名と定義名は厳密に一致しなくてはなりません。定義は"nanika.mpg"なのに実際にあるファイル名は"nanika.png"であった場合、真っ黒画面になってしまいます。  動画BGAを使う場合、そのオブジェクトを置くタイミングに注意してください。動画が曲と同時に始まるのであれば、BMSE上でも曲の開始(最初のノートの位置)と同時に置かなければなりません。先の例では曲自体は#001から始まっていますが、BGAレーンには#000に置かれていますから、曲が始まる前からこの画像が表示されるようになっています。  [[ここ>http://www9.atwiki.jp/coolnaurl/pages/19.html#id_ff1e450c]]では&bold(){#000にオブジェを置くな}と書いていますが、#000に置かれたオブジェクトが問題になるのは&bold(){演奏レーンのみ}で、BGAレーンやBGMレーンなどでは特に問題になりません。 ---- *LAYER  いわゆる&bold(){レイヤー}です。某本家では一本動画を背景としてその上にレイヤーでキャラクターなどを描画する手法がよく使われています。BMSのレイヤーにはあまり高度な機能はないのですが、それなりに近いことはできます。  レイヤーの使い方は言葉だけで説明するには難しいので、まずは画像をご覧ください。 #image(bga04.png) この図は先の例に挙げた拙作「Яebirth; D.S.E.N.」のBGA(一枚絵)です。#000に配置されたオブジェクトはこの画像を定義しています。つまり、BMSプレイヤーがこのBMSを読み込んで、再生を始めた瞬間、BGA領域にはこの画像が表示されます。 #image(bga03.png, right)  さて、このBMSでは#057に右のような配置が登場します。 32分音符に相当する間隔で何種類かのBMPが置かれていますが、この部分だけを再生するなら、このような動きになります。 #image(bga05.gif) これはLAYERレーンのみで、キャラクターの本体以外の部分は&bold(){透過}されています。この下にあるBGAレーンにはさきほどの画像が表示されたままですから、実際にBMSプレイヤーで再生すると、下のようになります。 #image(bga06.gif) このように、レイヤーは&bold(){透過画像}を利用して、画像や映像の"上に"別の画像パーツを表示させる機能を持ちます。  ここで注意すべきは、&bold(){透過の方法}です。LR2ではLAYERレーンに置かれた画像はアルファチャンネルを参照して透過されます((つまり、ブラウザなどで見た透明部分がそのまま透明になります))が、uBMPlayなど、というか、&bold(){本来のBMSの規格}では、アルファチャンネルは無視して、&bold(){RGB値が(0,0,0)のビットマップ}を透明として扱うことにしています。&bold(){やっかいなことに}両者の仕様は競合しており((これはどちらかといえばLR2が規格違反です))、どのプレイヤーでも確実に透過させたい場合は、&bold(){透過する部分のビットマップを厳密に(0,0,0,0)で塗る}しかありません。あるいはLR2側は不透明度が低ければほとんど見えないので、(0,0,0,1)などと微妙にアルファ値を持たせておくのもいいかもしれません。  また、動画BGAに対応するLR2であっても、&bold(){レイヤーは動画には非対応}です。レイヤーは静止画データでなければならず、動画にしたい場合は先の例のように連番BMPとして配置する必要があります。 もちろんレイヤーに静止画を使うことも可能です。拙作「Electronized Emotion」は静止画BGA(いわゆるBGI)ですが、内部的には一枚絵のBGAと"SoundOnly"とだけ書かれたレイヤーが重ねられています。 &ref(bga07.png)+&ref(bga06.png)=&ref(bga08.png) ただし、静止画レイヤーを使う場合、問題がなければ下地の画像に直接統合してしまったほうが、ファイルサイズは小さくなります。  この項目では「静止画BGAの上に動画レイヤーを表示する」方法を示しましたが、逆に、「動画BGAの上に静止画レイヤーを表示する」、あるいは「動画レイヤーの上に動画レイヤーを表示する」ことももちろん可能です。  &bold(){レイヤーもBGAレーンと同じく一度表示された画像は表示されたままです}。必要がなくなったらきちんと消しておきましょう。先の例では、キャラクターの一連の動作が終わった次の小節頭に"0P"((これはblancと定義されている実在しないファイルです。スペルミスではありません。断じて。))を置いてレイヤーを消しています。先ほど&bold(){存在しない定義を置くと黒一色になる}と書きましたが、BMSの規定では黒一色はイコール透明なので、レイヤーが消去されるのと同じ意味になります。LR2では単に透明なビットマップを表示しているようです。  なおレイヤーを使う意義ですが、一本の動画によるBGAが主流な昨今では薄れてきているというのが現状です。というのも、BMSのレイヤーは、ランダムなタイミングにランダムな映像を出すことも、スコアやコンボ状況に応じて表示されるレイヤーを変化させることもできず、特定のタイミングに特定の映像を流すことしかできないからです。それならば元の動画に組み込んでしまったほうが、配置の手間もファイルサイズも節約できそうです。  もし次世代のBMS的なフォーマット、そしてそれに対応したプレイヤーが作られるならば、私はレイヤー関連での大幅な拡張を期待します。 ---- #POOR  いわゆる&bold(){ミスレイヤー}です。BGAレーンの右端に置かれるオブジェクトで、楽曲の演奏時にミス判定(BMSでいう&bold(){BAD}と&bold(){POOR})が発生した際、&bold(){発生した瞬間から一定時間((LR2のデフォルトでは0.5秒))}表示され続けるレイヤーです。  このレーンに置かれたオブジェクトは他のBGAレーンと同様、次に別のオブジェクトが置かれるまで適用され続けますが、ミスレイヤー自体が特定条件下で一定時間表示されるだけなので、普段は表示されないレイヤーとなります。 ミスレイヤーには動画(AVIなど)は使えませんし、&bold(){画面が完全に切り替わるので透過も無意味}です。現在のBMS規格ではズコーは再現できません。残念ながら。  一般的にはミスした際に表示される一枚絵だけが利用されていますが、連番BMPの要領でミスレイヤーを動画化することは可能です。BGAは静止画でミスレイヤーだけが動画になっているというBMSも存在します。&bold(){ミスし続けると本来とは全く異なったBGAが流れるBMS}というのも考えられますね。手間がすごそうですが。  ミスレイヤーは演奏者がミスした際にしか表示されないので、オートプレイでは見ることができません。またミスレイヤーが表示されている期間は本来のBGAが全く見えなくなるので、そこのところはご留意ください。 もし次世代のBMS的なフォーマットとプレイヤーが作られるなら、透過表示が可能なミスレイヤーの実装も期待されることでしょう。 ----
[[ここ>http://www9.atwiki.jp/coolnaurl/pages/13.html#id_d24136f4]]でほんの少し触れているBGAレーンの使い方について、音楽演奏ゲームとしてのBMSには深く関わるわけではないのですが、連番BMPやレイヤーの使い方などはBMS制作の範疇にあると思ったので、ここで簡単に解説しておこうと思います。 先に書いておきますが、ここでは&bold(){BGAの作り方については言及しません}。BGAレーンへのオブジェクトの置き方の説明に留まります。本格的にBGAを作りたいという方は、そのためのサイトが存在しますので、ぜひとも[[BGAのススメ>http://bga.albalunaweb.net/index.php]]様をご参照ください。 #contents ---- #image(bga01.png, right) *BGAレーン  BGAレーンとは、BMSをBMSEで開いた場合の、右図の&bold(){背景が深緑の領域}を指します。 BGAレーンは3つのレーンの総称であり、左から(BMSEの表記に倣って)&bold(){BGA}、&bold(){LAYER}、&bold(){POOR}と称します。チャンネルでいうとそれぞれ04, 07, 06となりますが、直接シーケンスをテキストで書き込む方法は当wikiでは扱わないので、別に覚えなくても構いません。  BGAレーンは、楽曲の演奏に合わせて順次オブジェクトが処理されていくという点ではBGMレーンとさほど変わりません。ただし、BGAレーンに置かれたオブジェクトは音声の代わりに&bold(){画像}を出力します。 BGAレーンにオブジェクトを置く操作は、その他のレーンに置く場合と全く同じように、BMSEの場合は&bold(){書込モード(F3)}でクリックするだけです。置き損じれば&bold(){消去モード(F4)}で消したり、&bold(){編集モード(F2)}でずらし、複数選択、コピーカットやペーストしたり、キー音に対するそれと同様の操作が可能です。 &bold(){BGAレーンに置かれたオブジェクトを演奏やBGMレーンに移す、またはその逆が可能}ですが、後述のように&bold(){定義情報が異なる}ため、意図しない音が鳴ったりいきなりBGA領域が真っ黒になったりしますので、ご注意ください。 ---- #image(bga02.png, right) *BMP定義  BGAを使うには&bold(){BMP定義}を利用します。&bold(){WAV定義}が鳴らす音声(WAV)のファイル名の定義情報であるのと同様に、BMP定義は表示する画像(BMP)のファイル名を連ねます。 BMSEでは&bold(){#BMP}というタブをクリックしてBMP定義を一覧表示することができます。 定義する場合は、空欄をダブルクリックして直接ファイルを選ぶか、WAVの一括定義(下図)と同じようにブラウザ上でまとめて選択したものを定義情報欄にD&Dすることでできます。というか、1個ずつ登録しなければならない信念でもない限りは、用意した画像ファイルを一括選択で定義したほうがはるかに楽ですね。 #ref(dnd.png, 音切り) LR2やuBMPlayといったメジャーなBMSプレイヤーでは一般的な動画ファイルにも対応しています。使えるコーデックなどは[[BGAのススメ>http://bga.albalunaweb.net/index.php?BGA%2FBGI%A5%D5%A5%A1%A5%A4%A5%EB%A4%DE%A4%C8%A4%E1]]様を参照してください。 ---- *BGA  紛らわしい書き方ですが、先に述べたBGAレーン3つのうちの左端のレーンのことです。 ここには主に、曲を通して表示される、文字通り「背景」となる画像や映像を置きます。それは最近では1個の動画ファイルである場合が多いですが、いわゆる連番BMPという手法も残っています。  一本の動画で済ませる場合、このレーンに置かれるオブジェクトはただ一つです。あるいは、曲全体を通して静止画を表示させる(いわゆるSoundOnly)場合も、一つだけ置かれることになります。 最初に貼った画像では、#000小節の開始点にオブジェクトが置かれていることが確認できると思います。 こことLAYERレーンに置かれた画像は、次に同じレーンに別のオブジェクトが置かれるまで表示され続けます。もし途中で消したい場合、黒一色の画像を用意してもいいのですが、わざわざ用意しなくても、未定義の番号(この例では"0Q"以降が全て未定義ですね)を置くことで、プレイヤー側は画像を消去して―つまり"無"を表示して―くれます。  あるいは定義上では存在するように見せかけても、実体の存在しない名前を指定することもできます(BMSEでは怒られるのでテキスト上に直接書き込んで下さい)。上の例では"0P"に定義された"blanc"という名前の画像はフォルダ内に存在しません。これは、BMSをテキストで開いて #BMP0P blanc と書き込むことで定義することができます。BMSEでは新たに定義しようとする場合、該当する名前のファイルが無いといけませんが、既に定義されているものまではチェックしないので、BMSEで開いても怒られません。 この方法は特に実用性が無いのですが、「黒一色にしたい場合はコレ」という定義番号を決めておくのは悪くないと思います。  ちなみにLR2やuBMPlayでは&bold(){ファイルの拡張子はあまり気にされません}。例えばPNG形式で保存された画像"nanika.png"の拡張子をmpgに変更して、BMSで"#BMP01 nanika.mpg"と指定し、そのオブジェクトを配置しても、再生すると正常に画像が表示されます。ただし、ファイル名と定義名は厳密に一致しなくてはなりません。定義は"nanika.mpg"なのに実際にあるファイル名は"nanika.png"であった場合、真っ黒画面になってしまいます。  動画BGAを使う場合、そのオブジェクトを置くタイミングに注意してください。動画が曲と同時に始まるのであれば、BMSE上でも曲の開始(最初のノートの位置)と同時に置かなければなりません。先の例では曲自体は#001から始まっていますが、BGAレーンには#000に置かれていますから、曲が始まる前からこの画像が表示されるようになっています。  [[ここ>http://www9.atwiki.jp/coolnaurl/pages/19.html#id_ff1e450c]]では&bold(){#000にオブジェを置くな}と書いていますが、#000に置かれたオブジェクトが問題になるのは&bold(){演奏レーンのみ}で、BGAレーンやBGMレーンなどでは特に問題になりません。 ---- *LAYER  いわゆる&bold(){レイヤー}です。某本家では一本動画を背景としてその上にレイヤーでキャラクターなどを描画する手法がよく使われています。BMSのレイヤーにはあまり高度な機能はないのですが、それなりに近いことはできます。  レイヤーの使い方は言葉だけで説明するには難しいので、まずは画像をご覧ください。 #image(bga04.png) #image(bga03.png, right) この図は先の例に挙げた拙作「Яebirth; D.S.E.N.」のBGA(一枚絵)です。#000に配置されたオブジェクトはこの画像を定義しています。つまり、BMSプレイヤーがこのBMSを読み込んで、再生を始めた瞬間、BGA領域にはこの画像が表示されます。  さて、このBMSでは#057に右のような配置が登場します。 32分音符に相当する間隔で何種類かのBMPが置かれていますが、この部分だけを再生するなら、このような動きになります。 #image(bga05.gif) これはLAYERレーンのみで、キャラクターの本体以外の部分は&bold(){透過}されています。この下にあるBGAレーンにはさきほどの画像が表示されたままですから、実際にBMSプレイヤーで再生すると、下のようになります。 #image(bga06.gif) このように、レイヤーは&bold(){透過画像}を利用して、画像や映像の"上に"別の画像パーツを表示させる機能を持ちます。  ここで注意すべきは、&bold(){透過の方法}です。LR2ではLAYERレーンに置かれた画像はアルファチャンネルを参照して透過されます((つまり、ブラウザなどで見た透明部分がそのまま透明になります))が、uBMPlayなど、というか、&bold(){本来のBMSの規格}では、アルファチャンネルは無視して、&bold(){RGB値が(0,0,0)のビットマップ}を透明として扱うことにしています。&bold(){やっかいなことに}両者の仕様は競合しており((これはどちらかといえばLR2が規格違反です))、どのプレイヤーでも確実に透過させたい場合は、&bold(){透過する部分のビットマップを厳密に(0,0,0,0)で塗る}しかありません。あるいはLR2側は不透明度が低ければほとんど見えないので、(0,0,0,1)などと微妙にアルファ値を持たせておくのもいいかもしれません。  また、動画BGAに対応するLR2であっても、&bold(){レイヤーは動画には非対応}です。レイヤーは静止画データでなければならず、動画にしたい場合は先の例のように連番BMPとして配置する必要があります。 もちろんレイヤーに静止画を使うことも可能です。拙作「Electronized Emotion」は静止画BGA(いわゆるBGI)ですが、内部的には一枚絵のBGAと"SoundOnly"とだけ書かれたレイヤーが重ねられています。 &ref(bga07.png)+&ref(bga06.png)=&ref(bga08.png) ただし、静止画レイヤーを使う場合、問題がなければ下地の画像に直接統合してしまったほうが、ファイルサイズは小さくなります。  この項目では「静止画BGAの上に動画レイヤーを表示する」方法を示しましたが、逆に、「動画BGAの上に静止画レイヤーを表示する」、あるいは「動画レイヤーの上に動画レイヤーを表示する」ことももちろん可能です。  &bold(){レイヤーもBGAレーンと同じく一度表示された画像は表示されたままです}。必要がなくなったらきちんと消しておきましょう。先の例では、キャラクターの一連の動作が終わった次の小節頭に"0P"((これはblancと定義されている実在しないファイルです。スペルミスではありません。断じて。))を置いてレイヤーを消しています。先ほど&bold(){存在しない定義を置くと黒一色になる}と書きましたが、BMSの規定では黒一色はイコール透明なので、レイヤーが消去されるのと同じ意味になります。LR2では単に透明なビットマップを表示しているようです。  なおレイヤーを使う意義ですが、一本の動画によるBGAが主流な昨今では薄れてきているというのが現状です。というのも、BMSのレイヤーは、ランダムなタイミングにランダムな映像を出すことも、スコアやコンボ状況に応じて表示されるレイヤーを変化させることもできず、特定のタイミングに特定の映像を流すことしかできないからです。それならば元の動画に組み込んでしまったほうが、配置の手間もファイルサイズも節約できそうです。  もし次世代のBMS的なフォーマット、そしてそれに対応したプレイヤーが作られるならば、私はレイヤー関連での大幅な拡張を期待します。 ---- #POOR  いわゆる&bold(){ミスレイヤー}です。BGAレーンの右端に置かれるオブジェクトで、楽曲の演奏時にミス判定(BMSでいう&bold(){BAD}と&bold(){POOR})が発生した際、&bold(){発生した瞬間から一定時間((LR2のデフォルトでは0.5秒))}表示され続けるレイヤーです。  このレーンに置かれたオブジェクトは他のBGAレーンと同様、次に別のオブジェクトが置かれるまで適用され続けますが、ミスレイヤー自体が特定条件下で一定時間表示されるだけなので、普段は表示されないレイヤーとなります。 ミスレイヤーには動画(AVIなど)は使えませんし、&bold(){画面が完全に切り替わるので透過も無意味}です。現在のBMS規格ではズコーは再現できません。残念ながら。  一般的にはミスした際に表示される一枚絵だけが利用されていますが、連番BMPの要領でミスレイヤーを動画化することは可能です。BGAは静止画でミスレイヤーだけが動画になっているというBMSも存在します。&bold(){ミスし続けると本来とは全く異なったBGAが流れるBMS}というのも考えられますね。手間がすごそうですが。  ミスレイヤーは演奏者がミスした際にしか表示されないので、オートプレイでは見ることができません。またミスレイヤーが表示されている期間は本来のBGAが全く見えなくなるので、そこのところはご留意ください。 もし次世代のBMS的なフォーマットとプレイヤーが作られるなら、透過表示が可能なミスレイヤーの実装も期待されることでしょう。 ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: