HSP Dishでは BMPの 0黒を透過しない???


2020年 2月 11日
 
 
 SAVE関連で大きなバグを潰したら、大きなバグは大体潰したみたいで、現在は最終段階で「表示調整」というかグラフィックの仕上げにかかってる。

 それ以外で残ってるのはオープニング、エンディング、後はゲームバランスの調整くらいかな。

 mes命令は実機の環境によって文字の表示が変わってしまうため、文字を全部グラフィックに置き換えないといけない。

 そこで改めて、と言うか今更気がついたんだけど「HSP Dishでは BMP形式のグラフィックの 0黒を透過しない」という事。

 0,0,0の黒を gmode 2で透過しない、え?そうなの?

 つまりこんな感じになります。

 キャラ名とアイテム名の黒が透過しません。

 キャラ名とアイテム名はエディッターでデータを書き出しするときに自動で.bmpで書き出す、というのを前にやりました。

 改めてマニュアルを見てみると「アルファチャンネルは、PNG形式などの画像データに付加される情報です。 通常のHSPにあるRGBが0の場合に透過するモードや、特定の色コードを透過するモードは選択できませんので注意してください。」と書いてありました。

 間単に結論を言いますと「PNGの透明しか透過しません」

 その他は bmpだろうと pngだろうと色を指定しようと透過しないようです。

 という事は HSP Dishの場合はグラフィックを「PNGで統一すれば良い」という事になりそうですね。
 
 

 表示実験してみました。

 まず BMPのグラフィックと(注:ワードプレスで.bmpがアップロードできないようなので、画像は.jpgです)

 PNGの画像を用意します(注:透明の背景に白の文字なので見えないと思いますけど気にしないでください)

 ではソースを

 
 
 テストは

1、gmode 0でノーマル表示
2、gmode 2で 0黒が透過するか
3、gmode 4の color 0,0,0で 0黒を透過するか
4、gmode 4の color 255,255,255で白を透過するか

 です。

 HSP Dishの結果(上が BMP、下が PNGです)

 gmode 0は透過しませんので、PNGは真っ白、後の gmodeは PNGの透明チャンネルを透過してます。

 BMPは一切変化無し。
 
 
 ノーマルの HSPで同じ事をするとこうなります。

 gmode 0で PNGの透明は黒になるようです。

 gmode 2では BMP、PNGとも背景を透過してます。

 gmode 4も 0黒指定なので同じです。

 gmode 4の color 255,255,255指定だと、文字色が 255,255,255なので、どちらも文字を透過してます。
 
 
 という事なので、HSP Dishでは「PNGの透明しか透過しない」だと思います。
 
 
 さて、キャラ名とアイテム名の文字グラフィックは BMPで自動書き出しで作ってますが、ちょっと調べた感じでは HSPでは BMPに書き出す bmpsave命令はありますが、PNGで書き出す方は流石に無いようです。

 そこで、この BMP画像をグラフィックソフトで背景を透明にして PNGで書き出す、という作業が必要になりました。
 
 
 グラフィックソフトで取り込んだ元の画像。


 
 
 色指定(色域指定選択)で選択範囲を指定します。

 そうしないと「ロ」のような文字の中が抜けないからです。


 
 
 切り取って透明にします。

 所々黒いのは、文字の書き出しを「アンチエイリアス」でしてるからです。

 気になるならアンチエリアスを切って書き出せば良いでしょう。

 つまりこの場合は HSPの自動書き出しの再に、font “”,,16で描けばアンチエイリアス有り、font “”,,0で描けば無しです。

 後は PNG形式で書き出します。
 
 
 やっとできました。

 今回は以上です。
 
 
 その他の表示も整えてます。


 
 
 国の色が分かり難かったので HEXの色表示調整もしてます。


 
 
 まだソース内に大量に mes命令で書いてる部分が残ってるので、しばらくかかるでしょう。

「HSP Dishでは BMPの 0黒を透過しない???」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。