カラーパレット

カラーパレットとは、ディスプレイに表示させる色の組み合わせを定義した情報のことである。
このカラーパレットを用いた画像形式や表示方法をインデックスカラーと呼ぶ。
ドット絵によるゲームのおそらく殆どにこの表示方法が用いられている。


「使用カラー」という概念の発生まで


おそらく「同じ人間が二人いるのは不自然」という常識的判断からであろうか、
最初期の格闘ゲームでは同キャラで対戦することは不可能だった
(その代わりにリュウに対する実質的な同キャラであるケンが生まれたわけである)。
しかしアーケードで対人戦が盛んになってくると、自分の持ちキャラで先にプレイされていた場合に
そのキャラが使えないことは不便であったし、同じキャラで直接腕比べがしたいプレイヤーも相当数いたはずで、
同キャラ対戦を不可にした判断とプレイヤーの希望との食い違いは大きくなっていった。

そしてストリートファイターII'で同キャラ対戦が完全解禁*1されたのだが、この時、自分の操作キャラを判別するため
外見の差別化の方法として、リュウとケンのような「グラフィックの変更をともなう差別化」はされず
かつてのマリオルイージのような「パレットだけの変更での差別化」という方法が取られ、
これにより「使用カラー」という概念が生まれた。
カラーの選択はキャラ決定時に押すボタンによってなされたが、その後ほとんど全ての2D格闘ゲームがこれを踏襲。
「1Pカラー」「パンチボタンカラー」「デフォルトカラー」、さらに色数が増えると「弱Pカラー」などの言葉が生まれていった。
家庭用移植版などではこのカラーパレットを自分で製作する機能(通称カラーエディット)が搭載されているものも多く、
プレイヤーの楽しみの1つとなっている。
そのキャラの有名なプレイヤー等が界隈で根付くと、そのプレイヤーの使用カラーのキャラが
「(プレイヤー名)(キャラ名)」と呼ばれるようになったりする。
(例:「ウメハラリュウ」「クソル」「5様シン」等)

なお先述の「同一人物が二人いる不自然」については単なる「ゲームの都合」として特に解決策を講じていない作品もあれば、
何らかの理屈(能力もそっくりに模倣した偽者、生き別れの兄弟、たまたま存在したそっくりさんなど)で説明をつけている作品もある。

サムライスピリッツ』シリーズではパレットは単なる同キャラ対戦時の区別のためという範疇を超えた使われ方がされてきた。
  • ナコルルの2Pカラーを大きくイメージの変わって見える褐色肌にし、後にそれをレラという別人として独立させた
    (ただし2Pナコルルは独立前から「1Pナコルルとは体形が違う」と設定された珍しい存在だった)。
  • 剣質」システムでは同一人物設定のまま異なるキャラ性能を持たせ、その剣質はカラーによって判別可能に。

KOF XIII』では大幅にパレットを細分化することにより、
同じドットを使いながら衣装が変わる「ように見える」という工夫が取り入れられている。
わくわく7』の牧原アリーナのレオタードが、基本カラーでは全体青一色のところ、選択したカラーによっては
黄色とオレンジに塗り分けられたものに変わるがそれを推し進めたようなもので、
GUILTY GEAR』のミリア=レイジもカラーによって生足やタイツになり、
ユリ・サカザキの衣装がタイツになったりスパッツになったりレオタード+ニーソックスになったりといった具合である。
MUGENではシュリセルワンダーウーマンが似たような事をしている他、無敵医師氏のメイも生足化されたカラーパレットが付属されている。


MUGENのカラーパレット


MUGENでも原則的に同キャラ対戦ではキャラクターカラーで自キャラを区別するという方法がとられており、
他の格ゲー同様、同キャラ対戦時に相手と同じカラーの選択は基本的に自動回避される設定になっている。*2
キャラ選択時のボタンで使用カラーが決定されるのもセオリー通りである。
各カラーはACTファイルで定義され、SFFファイルと共にキャラクターの外見を左右する重要な要素となっている。
+ACTとは、Adobe Color Tableの略である。
ACTとは、Adobe Color Tableの略であり、その名の通り、画像編集ソフト大手のアドビ社の
フォトショップやイラストレーター等で使用されるカラーテーブルファイルである。

しかしヘッダも暗号化(圧縮)も全く無く、単に256色分のカラーコードを1色につき
3バイトずつ使って(1色につき情報は「レッド、グリーン、ブルーの3原色×256階調」なのでそうなる)
記録しているだけ、という単純な構造なためか、フリーウェアを含む多数の画像編集ソフトで扱える。
と言うか、 ファイルの構造とカラーコードの事が良く分かっていればバイナリエディタでも編集が可能である。

規定パレット数は256色(255色+透過色)で、このパレットに色が収まっていればFF等のエディタで個別に色の設定が可能である。
SFFファイルで設定する画像には2種類があり、「共通パレット」は設定したACTファイルの影響を受けるが、
「独自パレット」はACTの影響を受けず、どのカラーで選んでも常に同じ色で表示されるため、自由に色を付けることができる。
またポートレイトは常に独自パレットが適用されるため、ボタンによるカラーの変更には対応していないので注意が必要である。
透過色は1色のみ設定することができ、本家であるアドビのフォトショップなどでは右下に位置するのが基本だが、
MUGEN関連のツールでは一番左上に位置付けられることが多い。
+小話
MUGENのパレットの定義はこの256色の組み合わせによって行われるが、これより前のCPS2やNEOGEO等、
格ゲー全盛期のゲームマシンや基板は同時に扱える色数が遥かに少なかった。
基本で使える色数が限られていることに加え、キャラクターの色はそこからさらに 15色だけ 選別して、
パレットとして使用するという流れだった(透明色を含めると16色)。
どれだけベースとして持っている色数が豊富であっても、その中から更に「本当に必要な色」の見極めが必要なことに加え、
決められたドットサイズにその選んだ15色のみでキャラを造形していくという技術も必要である。
ドッターのことを「職人」と呼ぶのには、そういった卓越した色の選出とその配置によってキャラ表現する、
まさに職人芸と呼べる腕を持っていたからである。
+現役ドッターによる余談
とはいえ、15色に色を収めるのは実を言うとそれほど難しい事でも無い。
理由は簡単、同色のグラデーションに使う色数は、その色を使う面積に比例するからだ。
どんなキャラクターでもパッと見で「赤っぽい」とか「白っぽい」とかの
一番多く使う色があるだろう。これを「メインカラー」として4~5色取る。
次に肌や髪の毛の色、服装の2番目に面積が広い色などを「サブカラー」として2~4色、
服飾などのワンポイントに1~2色だけ「エキストラカラー」を取る。
この法則で「メイン1色、サブ&エキストラ1~2色」と種類を割り振れば、
大抵のキャラは15色以内で綺麗に色を割り振ることが可能なのである。
基本的に人間を書く際は肌色は様々なキャラで色味調整して使い回すことが多いのだが、
前述のように面積に比例するという事を念頭に置いて
「このキャラは顔だけしか肌が出ていない」といったケースには
臨機応変に肌色を3色に削るといった機転を利かせればパレットを無駄なく活用出来る。
また全身派手で色々な色があるといった場合は、その分一色に対する面積が減るので
「メインカラー0、サブカラー3」といった振り分けをすれば問題なく収まるだろう。

後は小技として、例えば赤と青を使うキャラなら「赤3、青3」とグラデーションせずに
一番面積の狭い色を類似色にすることで「赤2、青2、紫1」と1色浮かす事が出来る。
色味を上手く合わせれば「赤1、青1、紫2」で
違和感の無いグラデーションを塗る事も可能なので
パレットがキツい時は試してみる価値はあるだろう。

同様に一番明るい色(ハイライト)と一番暗い色(シャドウ)を
白と黒で代用するという小技もある。
白と黒は無彩色、つまり色味が皆無なのでどんな色にでも合う。
そのためグラデーションの一番明るい所と暗い所を
全て白黒で賄うと手軽にかなりのパレットが稼げるだろう。

ちなみにドッターにとって一番辛いのはHDサイズなどの大型キャラで
「広い面積の立体感を3Dのように滑らかに出す」事と
「30度未満の角度の輪郭線を滑らかに描く」事。
どっちもグラデーションの必要段階数が跳ね上がるため、
そこの表現に拘るとパレットをごっそり持っていかれてしまう。
前者は面積が広いほど、明暗の段差が大きいほど、ジャギやモアレが目立つ。
こういった場合は境界をトーン塗りでぼかすといった小技で対処する方法もあるが
いっその事セル画調の所謂「アニメ塗り」にする方が絵として綺麗に見えるだろう。
HDサイズの商業作品キャラでセル画塗りが多いのはこういった理由のせいだと思われる。
後者はやってみるとわかるがドットの線は角度が1度に近いほどグラデーションが増える。
1~2度程度ならいっそ真っ直ぐにするのもありだが10度位になると結構対処に困る。
こういうのは割り切ってジャギ消しに拘らずざっくり済ませても良いかも知れないが
逆に言えばこういった微妙な角度の線の処理が腕の見せ所と言えるかも知れない。

ハードが高性能化された昨今では無理に16色に収める必要は無いかも知れないが、
もうちょっとで15色に収まるのに…という製作者は参考にしてみてはどうだろうか。

基本的に共通のカラーパレットを使用するのはキャラクター本体の画像やカットインなどに限られる。
ボタンによるモードセレクトなどを搭載している場合はゲージ類の色の変化などにも応用できるが、
特に色の変化が必要ないエフェクトなどは独自パレットで登録する方が手っ取り早く済ませられることが多い。
たとえばintense mc氏の右京さんは血のエフェクトに共通パレットを適用してしまっているため、
カラーによって緑色や紫色の血が飛び散るという事態が起こる(わざとそうしてるのかどうかは謎)。

WinMUGEN(現在主流となっているバージョン)ではSFFファイルの画像登録の仕様にややクセがある。
「共有」にチェックを入れた画像にのみACTファイルの情報が適用され、それ以外は独自パレットとなるのだが、
共通パレットは登録した順番で1つ前の画像を適用するという仕組みになっている。
つまり、途中で1枚でも独自パレットの画像を挟んでしまった場合、それ以降は共通パレットにチェックを入れると
途中の独自パレットが適用されてしまい、色化けが起こってしまう。
現在は「Fighter Factory」など自動的に並び順でパレットを整理してくれるツールが出回っているのであまり気にしなくても良いが、
「MCM」などのツールしか存在しなかった初期の時代は、登録順をよく考えておかないと、後々修正するのにかなりの手間がかかっていた。
今でも最初にポートレート、次に共通パレットを使用するキャラ画像、最後に独自パレットを使うエフェクト類
といった順番で画像を登録する製作者が多いのはこの名残である。

一方DOSMUGENでは、独自パレットはポートレートにのみ適用でき、それ以外は全て共通パレット扱いになっていた。
その為「共有」にチェックが入った画像が一切無くWinMUGENで使うとカラーパレットが機能しないキャラがいる。

MUGENキャラは最大12種類までカラーパレットの設定が可能となっており、DEFファイルで登録する
(Pal1…aボタン、2…b、3…c、4…x、5…y、6…z、7…s+a、8…s+b、9…s+c、10…s+z、11…s+y、12…s+z)。
pots氏製作のキャラやまじっく氏製作のカンフーマンEXの様にさらに多くのACTファイルを搭載しているキャラや、
キャラ本体と別にパッチ形式でACTファイルを配布している例もあるが、
実際に使用するにはDEFファイルを書き換えるか、ACTファイルの名前を変更して既存のカラーと入れ替える必要がある。
また、MUGENにはDEFファイルで設定したパレットの番号を判別するトリガー「Palno」が存在し、
モードセレクトやGGシリーズの金カラーや黒カラーと言った特殊モード、ボタンによるAI起動の分別などに応用されている。

多くの格ゲーでは基本的にキャラクターセレクトの際に弱パンチボタン(xボタン)で決定する事で
キャライラスト通りの通常カラー(いわゆる 1Pカラー )を選択する事が出来る。
しかしMUGENの場合、1番目のカラー(=Pal1)はaボタンに割り振られており、以下順番はb、c、x、y、zと続くので、
2Pカラーまでしかないような原作からベタ移植したキャラの場合、aボタンとbボタンに割り振るのがごく自然であった*3
その名残か、今でもパレットが6つ未満のキャラの場合は1Pカラーをaボタンに置くことも珍しくないようだ。
気になる人はdefファイルの記述を入れ替えるなどしてみるのが良いかもしれない。

ところでMUGENのデフォルトキャラことカンフーマンだが、胴着の色で判別する限りでは
どうやらPal1(aボタン)ではなく、Pal6(zボタン)に1Pカラーが置かれているようである。

色化けの修正方法

一部のエディタの仕様として、共有パレットの途中に独自パレットが登録されている場合に
独自パレット以降のパレットに(主に大ポートレート)異常が出る「色化け」と呼ばれる現象がある。
上記の通り独自パレットを用いたSFFの登録を0,0の前、もしくは共有パレットを全て登録した後に行うことで回避できるが、
既に色化けが起こってしまっている場合は SffAirEditor を用いてそのキャラのSFFファイルを開き、
9000,1番の下のスプライトの「共有」のチェックを外す操作を行うことで解消できるので覚えておこう。

この他、DosMUGEN用のキャラをWinMUGENで使用する場合に起こる色化けの解消ソフトとして CharSffDtoW が配布されている。
現在は伊吹川氏のサイト「無限小学校」などで入手可能。

新MUGENのカラーパレットについて

SFFファイルが拡張され、SFFに直接カラーパレットの情報を格納できるようになったが、
この機能を使用すると従来のツールによって後から単独でカラーを編集することは出来なくなってしまう。
そのため多くの製作者が新MUGENでも今まで通りACTファイルとSFFファイルを分けてキャラを構成しているのが現状である。
また 新MUGENでは新たに追加されたステコン「RemapPal」により、試合中でもパレットを切り替える処理が可能となっている。
詳しくはこちらを参照。


ACT制作支援あれこれ

手描きキャラ制作者へのヒント

Windowsに登録されているMSpaintはパレットを入れ替え出来ないため、透過色の設定が行えない。
保存後にIrfanView等の画像加工ソフトやSAEでパレットを編集する、
もしくはD-Pixed、EDGE、GraphicsGaleなどのパレット位置の変更が可能なソフトを予め選んでおくといいだろう。

便利ツール紹介

ACTやSFFの編集に有用なフリーツールをご紹介。

文字通りACTファイルの編集に特化したツール。
ACTファイルの作成・編集、PCXファイルの読込、及びパレットデータの取り出し・差し替えが出来る。
PCX形式の画像を読み込むことでリアルタイムでのプレビューが可能となっており、
パレット情報のコピー&ペーストが出来るのがウリ。
常に完成図を見ながら作業することができ、機能やインターフェースがシンプルにまとまっているため非常に使いやすい。
尚、2011年1月に7年ぶりの更新がなされ、選択中のパレットの使用箇所のみをPCXウィンドウにて表示する機能が追加された。
(使用箇所以外は選択中の色が反転して表示される)

こちらもACTファイル編集専用のツール。
bmpと銘打っているが、インデックス形式であればpngでもgifでもpcxでもドラッグ&ドロップでACTファイルを生成できる。
元画像を用意できる環境にある制作者向けのソフト。

  • siden氏製作 Unify-Bitmap
複数のBMP形式の画像を、指定したBMP画像と同じフォーマットに自動変換してくれる。
そのキャラのパレットで使う色を全て使った画像を最初に用意し、残りの画像をこのソフトで一括変換すると
SFFに登録する画像のパレットを統一する手間を一気に省くことが可能。
ビット数やパレット数が異なる画像も自動的に変換してくれるが、一定条件下で生成される画像が乱れてしまうバグがある。
特にPhotoshopで作成したBMP画像を変換しようとすると高確率で発生するが、
このソフトを使う前に一度IrfanViewなどを通して8ビットに変換しておけば回避可能。
転載自由で、現在は伊吹川氏のサイト「無限中学校」などで入手可能。

BMP、PNG、PCX形式に対応。
上記のUnify-Bitmapの『パレット統一』に加えて、パレットをそっくり交換する『入れ替え』、パレットに無い色を
背景色で置き換える『クリーン』機能が付いている。
オプション(チェックボックス)で背景色の変換を許可⇔不許可やクロップ(余白を削る)もできる。



*1 厳密に言えば、初代ストIIにおいてもリュウに限り同キャラ対戦を行うことはできた。
やり方はまず1Pが対CPU戦を開始し、負ける。コンティニュー画面に入ったら2P側でコンティニューし、
キャラ選択画面の時点で1P側が乱入すると1P・2P両方のカーソルがリュウになるので、そのまま選択する、というもの。
ただしお察しの通りこれはバグであり、基盤に2Pカラーのデータなどは無いのでどちらも白胴着。
その区別のしづらさは同時に投げを狙った時に顕著で、投げたのか投げられたのかさっぱり分からなかった。
ちなみに、既にストII'が稼働していた時期の発売のスーパーファミコン版ストIIでは
「電源を入れた後のメーカーロゴ表示中に素早く↓、R、↑、L、Y、B、X、Aと入力する」という
裏技により同キャラ対戦が可能になる(入力に成功すると効果音が鳴る)。

*2 もちろん、カラーパレットがひとつしかないキャラクターでは強制的に同キャラ同カラー対戦になる。
また、ほとんど意味はないが全く同じカラーを別のカラー扱いとして2つ以上割り振ることで擬似的に同キャラ同カラー対戦を実現することも可能。
タッグ戦で全員違う色にするためには4種類、チーム戦で全員違う色にするためには8種類のカラーバリエーションが必要である。

*3 実は必ずしもカラーはPal1から連続で登録する必要は無く、
原作が6ボタン式でパンチボタンカラーとキックボタンカラーの2つに分かれていた場合に限っては
pal3 = k.act;キックボタンカラー
pal6 = p.act;パンチボタンカラー
この様にDEFファイルに記述すれば原作同様の配置にできる。
ちなみに、こんな風にしてしまうと…
pal1 = k.act
pal2 = k.act
pal3 = k.act
pal4 = p.act
pal5 = p.act
pal6 = p.act
これでは同キャラ同カラー対戦の防止という本来の役割を果たさなくなるので注意。