レイヤーの重なり順の謎
ティラノのレイヤーは以下のようになっています。
下
base:背景
layer0:
layer1:
layer2:
layer3:
layer4:
layer5:
message0:テキストウインドウ
message1:
message2:
fixレイヤー:glinkやbuttonに使われる。(ボタンより上に画像表示させたいときは、画像をボタンとして表示させることで対応。公式のサンプル10_fixbutton.ks)
上
背景が一番下にあり、画像用のレイヤーがその上、さらに上にテキスト用のレイヤ、そしてボタン用のレイヤという順です。
(ボタン用のfixレイヤーが最前面にあるため、その上に画像や文字を表示させることができない件と、その解決法は前回書きました)
テキストウインドウの上にキャラを表示させたい時などには、messageレイヤに画像を出せばいいとwikiで拝見しました。
そこから、単純にmessageレイヤはlayer5などの通常レイヤの上に来るレイヤなのかと思ったのですが、違ったようです。
たとえばlayer5にptextで文章を表示させ、その上にかぶるようにmessageレイヤの画像を表示させるとこんな感じになります
下にあるはずのlayer5の文章が、messageレイヤの画像の上に来てしまいます。
何が何だかわからなくて悩んだのですが、messageではなく、layer6を使ったら、layer5の文章の上にちゃんと画像が来てくれました。
そこから想像したのが、以下のようなレイヤの仕組み。
画像同士の重なり順は layer0<layer1<layer2<messageという順になっています
ところがptextで文章を表示させると
layer0の画像<layer1の画像<layer2の画像<messageレイヤの画像<layer0のテキスト
と、こんなふうになっているようです。
検証不十分なので、あくまで「こんな感じかなあ?」という想像で、
他に何か間違ってる可能性もあるのですが…。
個人的教訓として、
「ptextの文章の上に画像を表示させたければ、ptextに使ったレイヤーよりも数字の大きいレイヤーを使え。messageレイヤに画像を置いてはだめ」
ということが分かりました。
そもそも、messageレイヤはテキストウインドウの画像と文章を表示させる想定にしかなっていないのかもしれません。
文字色の指定の謎
[font]で 0xRRGGBB 形式で文字色を指定することができる、とリファレンスにあります。
ところが、#RRGGBBでも指定することができます。
普通に表示されるので、自分は#RRGGBBを使っていました。ところが、たまたま0xRRGGBB で指定してみたところ、#RRGGBBと色が違うのです。
リファレンス的に正しいのは0xのほうなので、「#でも表示できるけど正しくない色になる」、ということでしょうか?
#RRGGBB形式のnscripterからの移植なのでたまたま気が付いたのですが・・。
#RRGGBB形式のスクリプトから移植するときには注意ですね。