Hatena::ブログ(Diary)

悟茶辞苑ッ このページをアンテナに追加 RSSフィード

2007-11-04 日曜日

キャラクターなんとか機 おたすけ隊!

すもも

キャラクターなんとか機のサイトに変なコメント発見〜」

# HSP3たん 「yes/no型ダイアログの戻り値は6/7なんです! 1でチェックしてると上書き確認できないんです!」

gocha

「すもも、それ書き込んだの私だよ」

すもも

「……なんでまともに報告できないかな、この人は」


すもも

「それにしても、妙に原因が詳細だね」

gocha

「うん、本体を逆コンパイルしたから」

すもも

「え、暗号化機能とかついてなかったっけ」

gocha

「かなり昔に解いてるよ(spihsp)。しかも解読ソース付き」

すもも

「困った子だなあ。恩を仇で返すようなことばっかり」

gocha

「そんなことないよ。Cherry拡張パッチのときとおんなじだよ」

すもも

「それってつまり私的に改造できるとうれしいってこと?」

gocha

「それはたしかに間違ってないかも」

※余談:#includeしたファイルはpackfileに入れなくてもよいのですよ


すもも

「で、おたすけって言うのはそれだけ?」

gocha

「違うよっ! ここからが本題っ!」

すもも

「今までの前フリ意味あったのかなあ……」

gocha

「天使の輪(1.xx)、虫はね、いろんなパーツをキャラクターなんとか機で出力したけど、どれも私の求めているプレビュー画面の表示とは違っていた」

gocha

「そして一週間前のあの日、ついに見つけたのさ(ブレンド法を)! それがセクシーアルファブレンド(仮)!」

すもも

「セクシーアルファブレンド(仮)?」

gocha

「そこで出来たのが、このDLLだ〜!!」

http://gocha.s151.xrea.com/down/tool/charaex-20071104.rar

f:id:GOCHA:20071104183115j:image

すもも

(何も分からない!)

gocha

「もう少し説明しよう!」

キャラクターなんとか機はpng+pnaの出力時に、RGBチャンネルを黒背景にアルファブレンド(gmode 7)、アルファチャンネルを加算合成(gmode 5)して対処していた! そのため、半透明部分はRGBチャンネルの背景の影響で黒ずんでしまい、天使の輪(1.xx系列)が黒くなるという悲しい事態が発生していたのだ!

このことが気になったgochaは、レイヤー重ね合わせのアルゴリズムを考えだし、もとい、ほとんど答えを教えてもらい、HSP3用拡張プラグインとして実装したのだ!

すもも

「要するに、きちんと合成するための処理を即席で作ってみたってこと?」

gocha

「そういうこと。Photoshopと同じような重ね合わせができるよ*1

f:id:GOCHA:20071104184711p:image

gocha

「ほらっ! ベリー クロクナーイ!*2

すもも

「これで安心して天使が作れるね!*3


ちなみに、やってみたいことがまだ少しあります。

  • アルファチャンネル付きPNG保存機能(これもimgctl.dllでは出来ないのです)
  • imgctl.dllのDIBをHSVでぐりぐりする(RGBベースの機能しかないのが不思議)

imgctl.dllのソースコードは公開されていたのですね。制作中に気づきました。まあ、置いてあったからといってどうするわけでもないのだけれど。

*1:減らしてはあるけど少なからず演算誤差があるかも。目につく範囲じゃないけどね。

*2:ブラウザが表示に対応している前提。そしてなぜかはてなフォトライフにアップロードしたらチャンネルが8bitから16bitに……

*3:一般にはukagaka_alphaで満足ではないかという噂も(>◇<)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/GOCHA/20071104/character