(戻る)

壁紙
ピクチャー : 深度  座標について  定義する  表示する  アニメーション  変化させる
フロントピクチャー
概要
ゲームと関係のない画像を表示させる事が出来る。
一時的な演出、クリップ、シャッターの再現などが出来る。

大別して「壁紙」「ピクチャー」「フロントピクチャー」の3種類がある。

壁紙 ・・・ 画面の一番奥に1枚の画像を表示する事が出来る
ピクチャー ・・・ 1000枚までの画像を用意し、任意の場所に表示したり変化させたりアニメーションさせたりする事が出来る
フロントピクチャー ・・・ 10枚までの画像を用意し、画面の一番手前に表示することが出来る

壁紙
壁紙は、1つの画像ファイルを画面の一番奥に表示させておくもので、一番簡単に扱える画像である。
以下のような壁紙用の画像ファイルを用意する。

・bmpかjpg
・画面のサイズ(標準で512x384)と同じ大きさが望ましいが、そうでなくても良い。
・譜面ファイルと同じ場所に置くこと。

壁紙を使う場合、設定項に以下を記述する。
&wall=ファイル名,不透明度

不透明度とは、その画像をどのくらい透明にして表示するかである。
画像をそのまま表示するとゲーム画面の邪魔になる可能性があるため
暗く表示させることが出来る。
不透明度は0~100の範囲であり、100の時そのまま表示、50の時半分透明になる。

例:
&wall=kabegami.jpg,80

kabegami.jpgという画像を不透明度80で表示する


画面と画像の大きさが合わない時、自動的にサイズ調整することも出来る。 不透明度のあとに、さらに「,1」と書く。 例: &wall=kabegami.jpg,80,1 kabegami.jpgという画像をサイズ調整しつつ不透明度80で表示する (画像の横幅が画面の横幅に合うように拡大縮小される。 拡大する場合はあまり綺麗にならない事に注意)

ピクチャー
ピクチャーとは、ファイルを読み込んで定義し、画面に表示したり、動かしたり、回したり、アニメーションさせたりと様々な事が出来る画像のことである。
最も汎用性があるが、扱いは一番複雑と言える。

ピクチャーに使う画像の仕様は以下である。
・bmp/jpgファイルの画像 (bmp推奨)
・大きさは自由
・R=0 G=0 B=0 である部分は透過されるように出来る(画像ごとに設定)
・1000枚まで画像を登録出来、同時に100枚まで表示出来る。


深度
ピクチャーは100個の深度を持つ。
深度とは、その画像が「どのくらい手前または奥にあるか」という数である。

CarmVTRでは深度は0から99の値を持ち、数が大きいほどそれは手前にあるという事である。
深度0〜49と深度50〜99ではピクチャー自体が表示される位置も変わる。
また、同じ深度には1枚までの画像しか表示出来ない。深度0から99にそれぞれ別の画像を表示すれば、同時に100枚の画像を表示出来る事になる。

深度は0番から順に(奥側は50番から順に)欠番なく使ったほうが良い。
欠番の深度が多いと処理時間に影響する可能性がある。

CarmVTR全体での具体的な深度は以下のようになっている。

壁紙                  ↑奥
背景
ピクチャー(深度50〜99)
小節線
ロングノートの帯
ノート(時間が遅い)
ノート(時間が早い)
ピクチャー(深度0〜49)
情報表示        
フロントピクチャー    ↓手前

深度0〜49のピクチャーはノートなどよりも手前にあり、他の物を覆い隠す事が出来る。シャッターの表現などに使える。
深度50〜99のピクチャーは背景より手前、ノートよりも奥にある。ノートの表示を邪魔したくない場合や、背景そのものを入れ替えるのに使える。

座標について
CarmVTRの標準の画面サイズは、512x384である。
左上の座標が(0,0)、右下が(511,383)となる。

ピクチャーのどの部分を基準として表示するのか(基準座標)を、以下の2つから選ぶ。


1.
画像の中心を基準とする。これは画像の大きさに関係ない。
(100,100)の座標にピクチャーを表示すると、(100,100)の地点は画像の中心になる。

この方法にする場合、何も設定は必要ない


2.
画像の左上を基準とする。
(100,100)の座標にピクチャーを表示すると、(100,100)の地点は画像の左上になる。

この方法にする場合、設定項に以下を記述する。
&picposmode=1

全てのピクチャーの画像の基準座標を左上にする。
ピクチャー毎に別々に設定する事も出来る。(後述)


ピクチャーの定義
使うピクチャーの画像は、設定項に「&pic」という行を書いて設定する。
画像を透過するかしないかで記述が変わる。

画像を透過する(R=0 G=0 B=0の部分を表示しない)場合(こちらが標準)
&pic=ピクチャー番号,ファイル名

画像を透過しない(黒い色もそのまま表示する)場合
&pic=ピクチャー番号,ファイル名,0
ピクチャー番号は、そのピクチャーを指定する時に使う数である。
1〜899の範囲である。欠番があっても構わない。

例:
&pic=1,emi.bmp
&pic=2,yuni.bmp,1
emi.bmp を、そのまま表示する画像として1番ピクチャーに登録。
yuni.bmp を、透過する画像として2番ピクチャーに登録。

このピクチャーだけは基準座標を別にする、という記述が出来る。
&picposmode=1
&pic=1,emi.bmp
&pic=2,yuni.bmp
&thispic_posmode=0

全てのピクチャーの基準座標は1(左上)だが、
最後に定義した2番(yuni.bmp)だけは基準座標を0(中心)にする。



次に、ピクチャーを表示する座標を設定する。
ピクチャーは、深度ごとに表示する座標を決める必要がある。あとで変更する事は出来ない。
デフォルトでは全て、画面の中央になっている。

譜面ファイルに以下を必要なだけ書く。
&picpos=深度番号,X座標,Y座標

ピクチャーの表示
定義したピクチャーを実際に表示させるには、行命令として書くか、拍データにノートのように書く方法がある。

行命令として書く場合:
PIC/ピクチャー番号,深度

ノートのように書く場合:
[ピクチャー番号/深度]

例:深度0にピクチャー1番を表示する
PIC/1,0
または
[1/0],,,,


2つのピクチャーを同時に表示したい場合:
PIC/1,0
PIC/2,1
PIC行を使う場合、行命令を書いても時間は進まないので、2行並べて書けばよい。
[1/0][2/1],,,,
拍データに書く場合、必要なだけ同じ拍の中に書ける。

ピクチャーを消したい場合は、ピクチャー0番を表示する。
ピクチャーを消去:

PIC/0,深度

または

[0/深度],,,,

深度を省略すると、前回使われた深度が使われる。
PIC/1,0
PIC/2
PIC/3
PIC/4

このように続けた場合、全て深度0のピクチャーを変更していく。

アニメーションの定義
複数のピクチャーを自動的に順番に表示させておくような事が出来る。
この事をアニメーションと呼び、
何番のピクチャーを、どれだけの時間表示する
次に、何番のピクチャーを、どれだけの時間表示する
次に、何番のピクチャーを、どれだけの時間表示する
 ・
 ・
およそこのような事を決めて、1つの「アニメーション」として定義する。
定義したアニメーションは普通のピクチャーと同じように表示する事が出来る。
使うピクチャーはあらかじめ定義しておくこと。

具体的な記述は以下である。
&anime=アニメーション番号/ピクチャー番号,表示時間,ピクチャー番号,表示時間

アニメーション番号とは、このアニメーションにつける番号である。
1001〜1100の範囲で決める。欠番があっても良い。

次に、表示するピクチャーの番号と、それを表示しておく時間を、必要なだけ書き並べる。
時間の単位は「1小節の時間の何倍か」であり、1であれば1小節の長さと同じ、2であれば2小節の長さと同じになる。
また、「\2」のように書くことも出来、この場合は1÷2で「0.5」と書くのと同じになる。

この「ピクチャー番号、時間」を1セットとして、表示していく順番に書き並べていく。いくつ書いてもよい。
全てを表示すると、最初に戻ってまた表示していく。
0番のピクチャーを指定すると、その間は何も表示されない。

&anime=1001/1,0.25,2,0.25

1001番アニメーションとして、以下のように表示する。
・1番のピクチャーを0.25小節(=4分音符)の間表示する。
・次に、2番のピクチャーを0.25小節(=4分音符)の間表示する。
・最初に戻る
カンマ「,」と小数点「.」が混ざると非常に見難くなるので注意のこと。

定義したアニメーションを表示するのは、ピクチャーの場合と全く同じである。
決めたアニメーション番号(1001~1100)をそのままピクチャー番号として使う。
表示したアニメーションを消すには、これも同様に0番ピクチャーを表示すればよい。
&seq=
[1001/0],

深度0にて、アニメーション1001番の表示を開始する。

&seq=
[0/0],

深度0で表示されているピクチャーやアニメーションを消す。

座標、不透明度、大きさ、角度の変更と変化
ピクチャーに関する色々な状態を、変更および変化させる事が出来る。
それぞれ、譜面データの行データとして記述する。
拍に書くことも出来る。(後述)

PCLR : 設定の初期化 (Picture CLeaR)
PCLR/深度
この深度のピクチャーを消し、サイズ、角度、不透明度を初期化する。
PPOS : 表示している座標を変更 (Picture POSition)
PPOS/深度,X,Y
その深度の表示座標を(X,Y)に変更する。
PMOVE : 指定した位置から指定した位置まで移動 (Picture MOVE)
PMOVE/深度,X1,Y1,X2,Y2,使用時間,事後処理
その深度のピクチャーを、(X1,Y1)から(X2,Y2)まで、使用時間だけの時間をかけて移動する。
移動後、事後処理を行う。
PALP : 不透明度を変更 (Picture ALPha)
PALP/深度,不透明度
その深度の不透明度を変更する。
(0〜100)の範囲であり、100の時通常通りの表示、0の時完全に透明になる。
PALPS : 不透明度を指定した値で変化 (Picture ALPha Shift)
PALPS/深度,開始状態,終了状態,使用時間,事後処理
その深度のピクチャーの不透明度を、(開始状態)から(終了状態)まで、使用時間だけの時間をかけて変化させる。
開始状態と終了状態は不透明度であり、(0〜100)の範囲である。
その後、事後処理を行う。
PSIZE : 大きさを変更 (Picture SIZE)
PSIZE/深度,大きさ
その深度の大きさを変更する。
単位は「倍」であり、1の時通常と同じ、2で2倍の大きさになる。
PSIZES : 大きさを指定した値で変化 (Picture SIZE Shift)
PSIZES/深度,開始状態,終了状態,使用時間,事後処理
その深度のピクチャーの大きさを、(開始状態)から(終了状態)まで、使用時間だけの時間をかけて変化させる。
開始状態と終了状態は大きさであり、単位は「倍」である。
その後、事後処理を行う。
PANG : 角度を変更 (Picture ANGle)
PANG/深度,角度
その深度の表示角度を変更する。
単位は「度」であり、0の時標準、90の時右に90度回転となる。
左に90度回転させる時は「270」でも「-90」でもよい。
PANGS : 角度を指定した値で変化 (Picture ANGle Shift)
PANGS/深度,開始状態,終了状態,使用時間,事後処理
その深度のピクチャーの表示角度を、(開始状態)から(終了状態)まで、使用時間だけの時間をかけて変化させる。
開始状態と終了状態は角度であり、単位は「度」である。
「0→360」のように指定すると1回転となる。「0→720」で2回転。
その後、事後処理を行う。
PARC : 座標を変更(円周上) (Picture ARC)
PARC/深度,中心X,中心Y,半径X,半径Y,角度
ピクチャーの座標を、「中心座標が(中心X,中心Y)であり、横半径が(半径X)、縦半径が(半径Y)である円周上の(角度)の地点」に変更する。
開始角度と終了角度は真右を0度として右回りに数え、1周は360度である。
PARCS : 円周上を移動 (Picture ARC Shift)
PARCS/深度,中心X,中心Y,半径X,半径Y,開始角度,終了角度,使用時間,事後処理
ピクチャーを、「中心座標が(中心X,中心Y)であり、横半径が(半径X)、縦半径が(半径Y)である円周上の、(開始角度)の地点から(終了角度)の地点まで」移動する。
開始角度と終了角度は真右を0度として右回りに数え、1周は360度である。
「0→360」のように指定すると1回転となる。「0→720」で2回転。
その後、事後処理を行う。
PJUMP : ジャンプ表示 (Picture JUMP)
PJUMP/深度,高さ,使用時間,事後処理(注意)
その深度のピクチャーを、上方向に跳ねるように移動(ジャンプ)させる。
最大で何ドットだけ上方向に移動するかを高さで指定し、使用時間だけの時間をかけて1回ジャンプする。

これの事後処理だけは他と扱いが違い、
・事後処理に何も書かない→1回だけジャンプ
・事後処理に「L」と書く→永遠にジャンプ
となる。
PJSTOP : ジャンプ終了 (Picture Jump STOP)
PJSTOP/深度
現在進行しているジャンプが終わったら、ジャンプを終了させる。
PJEND : ジャンプ強制終了 (Picture Jump END)
PJEND/深度
ジャンプをただちに終了する。ピクチャーの座標は現在の位置で維持される。

使用時間とは、その変化にかかる時間のことである。
単位は「1小節の時間の何倍か」であり、1であれば1小節の長さと同じ、2であれば2小節の長さと同じになる。
また、「\2」のように書くことも出来、この場合は1÷2で「0.5」と書くのと同じになる。

事後処理とは、その変化が終わったあとどうするかという文字の事である。以下より選んで1文字を書く。
(何も書かない)
終了状態で終了
変化の最後の状態を維持したまま、変化を終了する。
S
開始状態で終了
変化の最初の状態にしてから、変化を終了する。
D
消去
ピクチャーを消去して終了する。
表示座標は終了状態のままである。
L
ループ
再び、開始状態から終了状態への変化を始め、この深度に対して別の命令が行われるまで永遠に繰り返す。
R
逆ループ
開始状態から終了状態への変化が終わると、逆に終了状態から開始状態への変化を行う。その後再び開始状態から終了状態、と往復する。
この深度に対して別の命令が行われるまで永遠に繰り返す。

気にかけておくとよい事:深度に対する命令
これらの位置や大きさなどの指定は、ピクチャーではなく深度に対して行われる。
「深度1に対して不透明度50の指定をした」のならば、この深度にあるピクチャーを消して、その後別のピクチャーを表示した時も「不透明度50」のままである。
必要に応じて変化を元に戻す事も考える。

これらの命令は全て行データとして書く必要があるが、
拍データとして、ノートなどの記述に混ぜて書くことも出来る。
拍データとして書くには、前後に大カッコ [〜] をつければよい。

PMOVE/0,0,0,100,100,2,D

[PMOVE/0,0,0,100,100,2,D],,,,

上の2つは同じ意味となる。
同じ拍にいくつ書いてもよい。

[2/0][PALP/0,80],,,,

深度0にピクチャー2番を表示するのと同時に、不透明度80にする。

フロントピクチャー
フロントピクチャーとは、全ての表示よりも手前に表示する画像のことである。
最大で10枚をあらかじめ登録しておき、そのうち1枚を表示させることが出来る。

画像はbmp(推奨)/jpgで用意し、大きさは画面の大きさと同じにする。
そうでなくても良いが、表示する座標を指定することは出来ない。
R=0 G=0 B=0 の部分は透過される。透過されないと本当に全てが隠れることになる。

フロントピクチャーとして登録する画像を設定項に必要なだけ記述する。
&fpic=(フロントピクチャー番号(1~10)),(ファイル名)

例:
&fpic=1,front1.bmp
&fpic=2,front2.jpg
「front1.bmp」をフロントピクチャー1番として、
「front2.jpg」をフロントピクチャー2番として登録する。

フロントピクチャーを表示するには、
行命令として「FPIC/n」と書くか、拍データとして「[FPIC/n]」と書く。
ピクチャーと同じである。
フロントピクチャーを消去するには、0番を表示する。
FPIC/1
(行データ) フロントピクチャー1番を表示する

[FPIC/1]z,x,c,v,
(拍データ) zと同時にフロントピクチャー1番を表示する

FPIC/0
(行データ) フロントピクチャーを消す