FC2ブログ

KyuR1 Blog

この上無く不定期更新。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

身内用メモ

みんなにスプレー作ってって言われるのにいい加減ウンザリしてきたので作る方法書いとく。
かなり分かり辛いのが俺流。

☆基本的に先にサイズを縮小してからHLLCで取り込む方法を対象に記述しています。

[1]HLLCver1.0をダウンロードする

[2]起動したらなんかエラー出るんで
そのあと出るダイアログでc:\program files\steam\steamapps\ユーザー名\counter-strikeにあるhl.exeを指定する。

[3]Openで画像ファイル選んで開く。

[3-1]下の方にある[Team Fortress]のチェックボックスを外す。
[3-2]下にある[Save it to]の横にチェックを入れた上で出力先&出力名を指定

[4]MAKE WADで生成。

[5]指定した場所にできているwadファイルをtempdecal.wadにリネームする。

[6]【重要】それを右クリック→プロパティ開いて読み取り専用にする。
こうしないと何かの拍子にスプレーがデフォに戻ってしまう。

[7]それを[steamディレクトリ\steamapps\ユーザー名\counter-strike\cstrike\tempdecal.wad]に上書きコピーする。

[8]ゲーム内で確認。(ゲーム中にスプレーファイルを変えた場合、サーバーに入り直さなければ有効になりません。
何かがおかしくてCSがwadファイルを読み込めない場合、なんかめっちゃ小さいλマークのスプレーになります。)


スプレーの仕様について--画像の解像度

縦*横の面積が12288px以内ならHLのスプレーにすることが出来ます。

画像の解像度が正方形だとすると
xy=12288
x=y
x^2=12288
3 *2*2 *2*2 *2*2 *2*2 *2*2 *2*2
x=64√3
x=64*1.7320508=110.8512512
計算上は一辺110pxまでいけるらしいんですが、

なんかHLEngineの仕様上、"縦横共に16の倍数のサイズでないといけない"っぽいので

実際に利用できる最大サイズは
80*144の11520pxまでで、

正方形(1:1サイズ)のスプレーにしたい場合
96*96の10752pxです。

4:3で一番でかいのは
64*48なんですよね残念ながら
この範囲の中で4:3の組み合わせって他にないっぽそう。

ちなみに、16:9サイズのスプレーで一番でかいのは
144*80です。
*実はこの値16:9じゃないけどその比率のものに一番近いので(144*81が16:9)
144*80は16:8.88....くらい?


他の知識+まとめ

・R:0,G:0,B:255(純粋な青)が透過色

・縦*横が12288px以内

・縦横共に16の倍数の値でないといけない。(16x32とか112x96とか)

・透過色有りでする場合はデフォの縮小は使わずに先に他のツールを使ってうまく96x96とかに縮小しとかないと青っぽいのがにじみ出る変なスプレーになる。(うまく縮小する方法は後述)
(理由:HLLCの縮小アルゴリズムが中間色を利用して縮小するものなので、縮小の際に『透過色として指定した青色』までもがそれで縮小されてしまう=境界の一部が純粋な青色ではなくなり透過色ではなくなるから。)
[要約:HLLCの縮小クソだから使うな。特に透過色使う時にじむから。]

うまく縮小する方法:
最短距離法(*1)と呼ばれる圧縮アルゴリズムで縮小するプログラムを探すか、
オススメは縮小した後に自分で、透過色を付け足すっていう手段。
なんでオススメかっていうとメインの画像部分は中間色でキレイに圧縮できて、その上で透過色を指定するので枠がにじむ恐れが無い。

最短距離法について(*1)
画像の拡大「Nearest Neighbor法」
にて解説されています。
これのデメリットはアルゴリズムがアルゴリズムなだけにメインの画像部分までもが汚く縮小されてしまう。
特に元々サイズがデカイ画像とかでやっちゃうと何がなんだか解んなくなっちゃう



あ、縮小する際にはGIMPとかそーいうの使ってください。そこまでは解説しませんでした。
正直アルゴリズムはもとより中学数学ですらさっぱりなんで間違いあったら指摘よろ。
ホントは画像があったら違いを示したいんだけど撮る気力も暇もない。
スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。