プロフィール

JaJa

JaJa
ツイニ スマートフォンヲ テニイレタゾ~! ('▽'ノ

...Now Developing
→ちょっと大きいサイズ
ブログ内検索
リンク

スポンサーサイト

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

2012/05/12▼テクスチャアトラス作成

今日は、メニュー画面に必要なグラフィック素材を並べたテクスチャアトラスを作成しました。

グラフィック素材は、以前作成した画面デザインのpsdファイルから取り出します。
ユニット名やユニットクラス名は専用の文字列レンダリング処理で扱うため、テクスチャアトラスとしては用意しません。
そんなわけで、今回のメニューテストでは素材も少なく、すぐに作業終了。

次は、スプライトの切り出し。
プログラム内で扱う個々のスプライトについて、テクスチャアトラスのどの部分と対応させるかを定義していきます。
これによって、画面にテクスチャアトラスに入っている絵が表示されるわけです。
アイコン、数字、スクロールバーなどの部品をの座標を1つ1つ、プログラム内に書いていきます。

ちなみに、ドットキャラと顔グラフィックについては、ユニットデータ側でこの定義を管理することにしました。
Excel上でユニットデータの表に数値を書き込むと、その座標値で自動的にスプライトの切り出しを行ってくれる仕組み。
ユニットやユニットクラスは数が増えると、1個1個プログラム上で座標を指定するのが面倒そうだったので、一昨日作成したxmlファイル読み込み機能を利用することに。

……とまあ、ここまでは順調でした。
が、切り出したスプライトとレンダリング処理した文字列を使って、画面デザインを実装作業を始めてすぐ問題が……。

なんと、文字列の透過になっている部分がなぜか透過にならずに、紫色で塗りつぶされてしまっているのです。
文字列単体で表示テストを行ったときには起こらなかった現象ですが、実際の描画処理の中で運用してみると困ったことに。('-';

ネットで原因を調べていたら、同じような症状の記事が見つかりました。
どうもレンダリングターゲットというのは、DiscardContentsモードだと、デバイスにセットすることで自動的に紫色にクリアされる仕様みたいです。
DiscardContentsモードっていう言葉も初耳だったけど。。。

自動的にクリアしないPreserveContentsモードもあるけど、WindowsPhoneでは負荷が大きすぎるみたいなので、DiscardContentsモードの仕様を確認しつつ、文字列のレンダリング処理を組み直して解決。
このネットの記事が無かったら、原因究明にもっと時間がかかっていたことでしょう。感謝!('▽'*

20120512.jpg
▲メニューテスト用のテクスチャアトラス。自分の場合、管理しやすいように8ドット単位で配置しています。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。