ブレンドはBGやスプライトから2つのグループを選択し、一定の割合で色を混ぜて表示するアルファブレンドと、白か黒を一定の割合で混ぜて表示するフェードがあります
アルファブレンド
ロックマンゼロのオープニングムービーでゴーレムのレーザー(緑)とレジスタンスのオイル(赤)部分の重なりにアルファブレンドが使用されています。
白フェード
ロックマンエグゼ2の起動時、真っ白な画面からカプコンロゴが徐々にフェードインしてくる際に白フェードが使用されています。
黒フェード
ロックマンエグゼ2のカプコンロゴ表示後、カプコンロゴが徐々にフェードアウトする際に黒フェードが使用されています。
bit | 内容 |
---|---|
0 | BG0を1stターゲットに |
1 | BG1を1stターゲットに |
2 | BG2を1stターゲットに |
3 | BG3を1stターゲットに |
4 | OBJを1stターゲットに (Top-most OBJ pixel) |
5 | BD(Backdrop)を1stターゲットに |
6-7 | 特殊効果の種類 (後述) |
8 | BG0を2ndターゲットに |
9 | BG1を2ndターゲットに |
10 | BG2を2ndターゲットに |
11 | BG3を2ndターゲットに |
12 | OBJを2ndターゲットに (Top-most OBJ pixel) |
13 | BD(Backdrop)を2ndターゲットに |
14-15 | 未使用 |
Addr | 7-6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
0x0400_0050 | 特殊効果 | BD/1st | OBJ/1st | BG3/1st | BG2/1st | BG1/1st | BG0/1st | |
0x0400_0051 | 不使用(0) | BD/2nd | OBJ/2nd | BG3/2nd | BG2/2nd | BG1/2nd | BG0/2nd |
第1ターゲットと第2ターゲットに、どのBGやスプライトを割り当てるかの設定です。両方のグループに同じものを割り当てることもできます。
BG0-BG3はその番号のBG、OBJはスプライトすべて、BDは背景(詳細は不明)です。
フェードモードのときは第1ターゲットに設定したものだけが対象になります。
スプライトはスプライト同士の色の混ぜ合わせは行われないようです。
すべてのレイヤーが第1ターゲットと第2ターゲットの両方を選択することも可能で、 その場合は最上位の画素が第1ターゲットとなり、 次の下位の画素が第2ターゲットとなります。
- 0: 特殊効果なし
- 1: 2つのグループの色を混ぜ合わせるアルファブレンド
- 2: 白フェード。グループと白色を一定の割合で混ぜます
- 3: 黒フェード。グループと黒色を一定の割合で混ぜます
bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内容 | 不使用 | EVB | 不使用 | EVA |
EVA: 第1ターゲット色割合 (0..16 = 0/16..16/16, 17..31=16/16)
EVB: 第2ターゲット色割合 (0..16 = 0/16..16/16, 17..31=16/16)
各ピクセルのRGBは次のように計算されます。
R = min(31, R1*EVA + R2*EVB)
G = min(31, G1*EVA + G2*EVB)
B = min(31, B1*EVA + B2*EVB)
bit | 31-5 | 4-0 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内容 | 不使用 | EVY |
EVY: フェード率 (0..16 = 0/16..16/16, 17..31=16/16)
各ピクセルのRGBは次のように計算されます。
白フェード
BLDCNTのbit6-7が2(白フェード)のときは次のようになります。
R = R1 + (31-R1)*EVY
G = G1 + (31-G1)*EVY
B = B1 + (31-B1)*EVY
どれも255に近づいているので明るくなり白に近づいています。
黒フェード
BLDCNTのbit6-7が3(黒フェード)のときは次のようになります。
R = R1 - (R1)*EVY
G = G1 - (G1)*EVY
B = B1 - (B1)*EVY
OAMで半透明と定義されているOBJは、常に第1ターゲットとして選択され、常にアルファブレンドが適用されます。これはBLDCNT.4とBLDCNT.6-7に関係なく適用されます。
BLDCNTレジスタは、OBJ(または 他のBG/BDレイヤー)に対してフェードを行うために使用することもできます。
しかし、半透明のOBJピクセルが第2ターゲットのピクセルと重なっている場合、半透明なOBJに対するアルファブレンドが優先され、(第1ターゲットも第2ターゲットも)フェードは行われません。
アルファブレンドは、OBJ-to-BGやBG-to-OBJには使用できますが、OBJ-to-OBJには使用できません。