RGB同値グレーの罠

実際この罠にかかったのは戦艦金剛のMOD作っててなのですが、ノウハウとしてはスキンのほうに関わると思ったのでこのカテゴリで書きます。

注:
私は専門的なコンピュータグラフィックス理論を勉強したことはないので、テキトーなこと書いてたら訂正お願いします。


コンピュータがモニタで色を出すには、一般的には光の三原色である赤(R)・緑(G)・青(B)の強さを組み合わせて決めます。
24bitカラーといった場合には、RGBそれぞれが8bitずつの、10進の整数で言えば0~255・16進数で言えば00~ffの数値で色が決まります。
webのHTMLなどでも、#0099ffなどと書いてあるのがそれですね。
PNG形式やTGA形式など、透明度をアルファチャネルで持てる場合は、アルファチャネル(A)の8bitを足した32bitとなる場合もありますが。このときも「色を決めている」のは8bit×3の24bitなことは変わりません。

このRGB形式は、記録管理表示は大変簡単で扱い易いものですが、一方で色を演算して変化させるのには不向きです。
そういう色の演算には、色相(Hue)・彩度(Saturation)・明度(ValueまたはBrightness)の3値で色を管理する「HSV方式」(HSB方式と呼ぶこともあるようだ)が向いていて、実際これが使われています。
GIMPを使ってたら、カラーパレット、あるいは色メニューから着色などを実行してみてください。
HSVでの色指定を体験できるはずです。

で、話がIL-2 1946に戻ってきます。
IL-2 1946の内部のことは(C++でネイティブコードになってることもあって)分かりかねますが、おそらくはこうだということを書きますね。
IL-2 1946は3Dゲームなので、スキンに書いた色がそのままパンと画面に出ることはないです。
ゲーム中の太陽光の高さ、角度から夕方であれば光も赤みをかかってるとか、それに視点への反射などを計算して、リアルタイムに見える色を変化させます。
その変化させる演算を、HSVで行っていると推測されます。
RGBで描かれたスキンをHSVに変換して演算をし、画面に描画するときは再びRGBに計算しなおすわけですが。
この2度の変換のときに、どうしても処理しきれない条件があります。
それが、記事タイトルにした「RGB同値グレー」なんです。

今回、金剛の船体など全体を塗る軍艦色に、RGB同値で323232なグレーを使ってみました。
すると、IL-2 1946内で表示した時ものすごくおかしいんです。
昼なのに夕焼けに当たってるみたいというか、赤紫色の、もともとピンクだったラブホテルが廃墟になって10年後みたいな色になってしまいました。
あっれーー???って思って。
何度も何度もスキンを確認したり、30分ぐらい格闘したでしょうか……
GIMPでいろいろ見てて、「あ、これHSV問題に引っかかってる」と気づくのにかなり時間がかかりました。
HSVでは色相(Hue)で色が決まるんですが、変換元のRGBが同値だと、この色相が決まらないんですね。色がないから。
んでそのときは便宜上、H=0で「赤」になってしまうという。
それをただそのまま置いとくならH=0で問題ないのですが、3Dで光線・反射の演算をして値が動くと、H=0に影響されて赤い色がついてしまった。
……ということだと思うんです。
えっらい苦労しました。
分かってしまえば、「なーんだ」な話なんですけどね。

じゃあ、色がつかない範囲でRGBちょっとずらせばいいのかなと、313233などにしてみたのですが、まだ赤い。
303234と2ずつずらしてあげたら、影響がおおむねなくなりました。
ふむ。
3ずつにしたほうがいいのかもしれないけど。ま、いっか。

今回はたまたまMOD作成中にハマりましたが。
IL-2 1946の描画エンジンは固定スキンか、飛行機の任意着せ替え可能なスキンかの区別をしないはずなので。
飛行機スキンでもRGB同値のグレーを塗ると、この罠にはまるんじゃないかと思います。
スポンサーサイト

GIMPは(現時点では)2.6系統をインストールすべし?

2chフラシム板本スレで話題になってて知った。
自分は経験してない。

フリーウェア・マルチプラットフォームのグラフィックスエディタ「GIMP」が、ごく最近、バージョン2.8系統にバージョンアップしたそうです。
ところがこの2.8系統はバグがあり、8bitインデックスカラービットマップ(BMP形式)が正しく作成できてないらしいです。
どういうことかというと、IL-2 1946でスキンとして使える画像を作れない。

とりあえずウチでは2.6系統の2.6.11で問題なくインデックスカラービットマップを生成できてるので、これから新規にGIMPをインストールする場合は、最新の2.8系統ではなく、古いバージョンを捜すから2.6系統を探してインストールしたほうがよさそうです。

そのうち、2.8がバージョンアップすれば、解消されるでしょう。

まさか軍用フォントがM4Tでフリー配布されてたとは

公式パッチの配布のほか、いろんなミッションやマップ、スキンテンプレートの配布などでIL-2 1946プレイヤーにはおなじみのMission4Today。
もちろん私もアカウント作ってあるのですが。

空母や飛行機のスキンを作るときに必須といってもいい「軍用フォント」が、なんとMission4Todayの中にコーナーが設けられてフリー配布されていたのです!
これは盲点というかまったく気づかなかった。
これがあればぁ…… コロッサスファミリー増やしたときにラクできただろうにぃ。

で、そのコーナーっていうのはここです。
http://www.mission4today.com/index.php?name=Downloads2&c=126

ドイツ軍のWWI,WWIIのフォント。
アメリカ空軍のフォント(たぶん海軍も共通)。
イギリス空軍とカナダ空軍のフォント。
汎用Armyフォントとドクロマークなどのフォント。

の4種類が配布されてます。

ふーーー
これでアメリカ海軍の空母作るときにフォントで悩まなくて済むぜぃ。
こないだ作ったオランダのドールマンだったかも、似てるけどよく見れば違うフォントで代用しちゃったんだよな。

この配布コーナー、crazyeddieさんに「あなたの素敵な空母スキンのフォントってどこで手に入れたのよぉ?」ってメッセ送って教えてもらったのでした。

flyteam.jp

実在機レプリカのスキンを作る人向けの情報。

自分は普段そういうスキン作ってないんですが、今回の海上保安庁シリーズを作るときは実在の海上保安庁機の機体番号(レジとか呼ばれてるJA+4桁数字もしくはJA+3桁数字+Aなもの)をつけようと思って。
wikipediaとかで調べたんだけど、YS-11は載ってたけどSAAB-340が載ってなくて。
Googleとかでいろいろ引っ張ってこようとしたんだけどなっかなか一覧できるものがなく、写真投稿サイトの添え書きとかたぐって調べてたのだけど。

今夜、たまたま別の語句を検索に入れてみたらこんなサイトが引っかかってきてびっくりした。
http://flyteam.jp/

ここ、所属別に機体番号・機種名が一覧できる。
すげぇ!
今日までの苦労は一体……

本職飛行機(民間機)ヲタクな人には常識なサイトかもしれませんが。
私はあまり民間機に詳しくないので。
知らなかったのですよぉぉぉぉ

ちゅうことで皆様も参考にどうぞ。

植村松治郎さんのコラム

植村松治郎さんのコラム・痛機作成作法その2

http://zoome.jp/MatujiroDiary/diary/198/

が参考になりそうだったのでリンク。
プロフィール

western0221

Author:western0221
2010年7月30日にIL-2 1946を始めました。
好きなアニメは「ゲーマーズ!」「ボールルームへようこそ」「NEW GAME!!」「ひなろじ」「ナイツ&マジック」「天使の3P!」「アイカツスターズ!」「メイドインアビス」「恋と嘘」「サクラクエスト」「プリンセス・プリンシパル」「アクションヒロイン チアフルーツ」「戦姫絶唱シンフォギアAxZ」「徒然チルドレン」「バトルガール ハイスクール」。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2アフィリエイト
アフィリエイト・SEO対策
検索フォーム
RSSリンクの表示
リンク
訪問数
Twitter