+にゃんにゃんにゃんこの演習+ 環境に関わらずゲームを綺麗なアイコンに!(マルチアイコン)

スポンサーサイト

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

環境に関わらずゲームを綺麗なアイコンに!(マルチアイコン)

最近、「どうやったらどのOSでもゲームのアイコンを綺麗に表示できるんだろー?」とか悩んでしまったので、
微妙に知名度が低いと思われる「マルチアイコン」について記しておきたいと思います。

32ドットのアイコンしか持ってないEXEファイルは、それ以上大きいサイズで表示する環境だと汚く表示されてしまいます。
それを、アプリケーションのアイコンを、「一覧」なら16ドット、「アイコン表示」なら32ドット、xp以降の「並べて表示」なら48ドット、vista以降の拡大表示ならそれ以上のサイズのアイコンで表示されるようにしよう、ということです。
(冗長でわかりにくいな


まぁ、こうやってゲーム制作関係の記事として描いておけば、マルチアイコンの存在を知らずに生きてきた、同じ悩み持った人が見つけて参考にしてくれるんじゃないかなー、と。

実は、つい最近まで「マルチアイコン」というアイコンファイルのフォーマットの存在を知らなかったんですよ。
「xpだと48ドットだけど、vista以降だとアイコンはもっと大きいらしいし……でも大きいアイコンにしちゃうとxpでジャギジャギに表示されちゃうし……」とかなんとか悩んでたわけです。

複数のアイコンをリソースとして埋め込めばいいのかなー……? でもアプリケーションのアイコンとして使用されるのは一番IDの若いアイコンだと言うし…… と。

で、色々ググッた結果、「マルチアイコン」というアイコンのフォーマットがあることが判明したのです。
どうやらこのマルチアイコン、複数のアイコンをまとめたアイコンファイルだというじゃないか!

「これだよ!!」と!



というわけで、マルチアイコンを生成して使う方法です。


まず、アイコンに変換する画像を用意します。
EXEのアイコンは16x16ドット、32x32ドット、48x48ドット、256x256ドットがあればフルセットとして十分なハズです(msdnソース)
でも、個人的には16x16なんてほぼ表示する機会がないので用意しなかったり……。
要らないと思ったら16x16のアイコンは入れなくてもいいと思います。

mi_01.png

今回はわかりやすくするためそれぞれ別のデザインにしましたが、ゲームのアイコンとして使う場合、同じアイコンのサイズ違いにしておくべきです。



「@icon変換」を使い、アイコンファイルを生成します。

用意した画像を全部突っ込みます。
全部選択します。
そしてマルチアイコンとして書き出します。

mi_02.png




(2014/02/17追記)
保存する前に、メニューの「オプション→Vistaアイコンの保存」から「Vista形式」を選択しておきましょう!
256x256サイズのアイコンがPNG圧縮されて200KBほど軽量化されます!





複数のアイコンが一つにまとまったicoファイルの完成です!
mi_03.png



後はこのアイコンファイルをアプリケーションのリソースに埋め込めばいいだけです。
こんな記事読んでる人は埋め込み方くらいわかってると思うので説明はしません。
もしわからなかったら、DXライブラリ公式のミニテクページに書いてあります。
http://homepage2.nifty.com/natupaji/DxLib/dxtec.html#M2






これだけです。


マルチアイコンをリソースとして含んだEXEファイルは表示される状況に合わせて別のアイコンファイルで表示されるハズです。
以下例。


表示モード「一覧」での表示。16x16ドットのアイコンで表示されてます。
mi_04.png

表示モード「アイコン」での表示。32x32ドットのアイコンで表示されてます。
mi_05.png

表示モード「並べて表示」での表示。48x48ドットのアイコンで表示されてます。
mi_06.png


当方xp環境なので、これ以上のアイコンをテストできる環境がないのですが、おそらくこれ以上のサイズを要求されると自動的に上のサイズのアイコンが表示されるはずです。

どうやら、「要求されたサイズ以上のアイコンのうち、一番小さいものを表示」という仕組みになってるみたい。
これはタイトルバー左に表示されるときも同じみたいです。









ふぅ、疲れた。



 

コメントの投稿

Secre

+サークルのサイト+
森の中の猫の小屋 author:稲塚 春
+twitter+
+エントリサーチ+
+カテゴリ別エントリ+
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。