歩行キャラが鏡・水面に映る+キャラにアイコン表示
FSMの掲示板にて発見。
http://www.tekepon.net/fsm/modules/reqbb/viewtopic.php?topic_id=8218&forum=14
質問は「水面に映るキャラ」でしたが、同スクリプトで他にも
●鏡に映る(距離によって小さくなったり、キャラの背中が表示されたり!)
●影描画(光源を指定して、リアルタイムに影が変わる!)
●キャラの頭上にアイコン表示してそのまま追随する
という事ができるようになる様子。
元サイトは http://galvs-scripts.com/galvs-character-effects/
で、サンプルプロジェクトと英語で詳細な使い方が付いてますが、一例を上げると、タグでの事前指定と、イベントコマンドからのスクリプトでの指定があるみたい。
タグは
<reflect>(水面に映るキャラにする) <shadow>(影を描画するキャラに) <icon:99,0,0>(アイコンを表示するキャラに。アイコンの番号,座標? を入れる 座標は有効じゃないような…)
などで、イベントコマンドの一行目の注釈や、アクターの場合はデータベースのメモ欄に書いておく。
イベントコマンドのスクリプトからは様々な指定があり、
reflect(14,17,3,1,true) (水に映らせるイベントIDを続けて書き、最後にtrue(有効)かfalse(無効)) shadow(1,false) (影で同じく) icon(1,2,3,4,38) (アイコンで同じく。最後の38はアイコンの番号)
これがアクターになると
actor_reflect(actor_id,status) actor_shadow(actor_id,status) actor_icon(actor_id,icon_id)
と、アクターIDとtrue(有効)かfalse(無効)・もしくはアイコンの番号を書いてやる…という感じ。
影の光源設定は
shadow_source(event_id,id) shadow_source(x,y,id)
の2通り。イベントIDか、座標を直に書くことで、その位置に光の元ができる。
最後の光源IDは後から再指定する予定がなければ、省略できる様子。
そして光源の強さは
shadow_options(intensity,fade,flicker)
でデフォルトの設定から変えられるみたい。
それぞれ一つめから 明度、 光の長さの有効距離、ゆらゆらするか(trueかfalse)。
一つ分からなかったのは、"水面"だと認識されるタイルの種類。
鏡はリージョンコードで1を指定すれば出来るのに、水面はデフォルトのまま変えられない…?
誰か英語堪能な人、分かったら教えて下さい…。
*FSM掲示板のコメントにある通り、水面・鏡面描写だけなら「みんとのお部屋」さんのVXAサンプルプロジェクトが使いやすそう?(地形タグで指定もできる)
ところで、みんとのお部屋さんの灯りスクリプトと、この光源処理を組み合わせられたらすごいキレイな仕上がりになりそうですね…