
Kritaでゲームリソースを作り、Adobe CCを解約した話
以前の記事で紹介しましたが、Kritaは無料の高機能なグラフィック編集ツールです。
KritaのおかげでAdobe CCを解約し、いわゆるAdobe税を他のものに充てられる素敵な日々を送ってます。
そんな無料でゲーム開発を送るためのスタートアップは以前の記事をご覧ください。
ゲーム用のカスタマイズをしちゃう
Kritaは標準で優れた機能を持ったツールではありますが、汎用的にある程度広い範囲をカバーしているツールとも言えます。
逆に言うと、専門的な部分がカバーをするためにはプラグインを導入していくといいでしょう
例えば、アニメーションが非常に作りやすいKritaですが、ゲーム用のスプライトシートにするには手作業を必要とします。
しかし、スプライトシートに自動的に変換しエクスポートしてくれるプラグインがあります。
Photoshopは写真加工ソフト
僕はPhotoshopが、ゲームリソースを作るのにはあまり向いていないツールだと思ってます。
例えば色設定はデフォルトでガンマ値が入ってて、0~255の値が数値通りに描画されなかったりします。
もちろん設定で直すことはできるんですが、複数人の作業を行う上で、誰かが設定をデフォルトのまま使用していると、数値的には色が狂うわけです。
AdobeRGBとsRGBの差はもちろんあるんですが、出力結果を変えるのはやめてほしいわけです。
アーティスト的には微々たる差なので、そこまで重要視されませんが、ゲームリソースとなるとそうも行きません。
例えば、アルファ値128(浮動小数点の揺らぎにより若干の前後あり)をしきい値として、何らかの処理を行うシェーダーがあったとすると、
先程のPhotoshopのデフォルトでは128を128として出力してくれないのです。
細かな手順は省きますが、デフォルトでマスクにグレースケールでアルファ値を設定するとわかるはずです。
RGB179でマスクに色を塗ると、大体70%の透明度になるはずです。
大体と言っているのは、255*0.7=178.5 なので割り切れないからです。
アルファ値だけ%指定になっている時点で、すでに若干の矛盾を抱えているのです。
結果、小数点以下は切り捨てられているのかどうかも判別が付かないです。
更に、Photoshopで赤 (255, 0, 0) 単色に塗りつぶし、マスクやレイヤーの設定でアルファ値0の画像を出力すると悲劇が起こります。
この、透明になっているピクセルはRGBAでいうと (255, 0, 0, 0) なはずですよね。
赤色だけど、アルファ値が0だから透明になっている。そういう情報なはずです。
しかしPhotoshopさんはやらかしてくれます。
「どうせ見えないからRGB値も0でいいべ」
まるで、そう聞こえるように、ピクセル情報は (0,0,0,0) になっています。
これはすごく困ります。
正直、シェーダーをやっている人からすると絶望でしょう。
こういった部分から、僕はPhotoshopを使うことをやめました。
KritaやGIMPならこんなことは起こらない
Photoshopはあくまでも写真を加工するソフトなんです。
だから、そもそもシェーダーやゲームのためにリソースを作るソフトではないと割り切り、解約しました。
オープンソース系のソフトたちは、デフォルトはPCで見ているRGBAを基準としているので、ゲームグラフィックを作るにも困りはしません。
Adobeのツールたちは、高価な分、機能もたくさんあって、メリットも多く素晴らしいのですが、
ある意味独自のワールドを展開していて、個人ゲーム開発には向かないんじゃないかと思います。
今後も、機能や特性を知って、自分の開発環境に合っているかどうかを判別しながらツールを導入していきたいと思います。
むやみにお金を使って装備を固めても意味はない。
RPGでよくやらかします。(だからRPG苦手なのかもな・・・)