キャラクターの色相を変更したい

RPGツクールXP/VX初心者質問スレ 4より

753 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/07/02(水) 13:43:17 ID:kCH1XykQ
ちょいと質問させてもらいたいんですが……
VXで、イベントグラフィックの「色相」を変数で操作できるようにしたいんですが、どうしたらいいでしょうか?
「移動ルートの設定」では、色調はいじれても色相はいじれないみたいなので。

769 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/07/02(水) 21:27:11 ID:QlWEO51f
>>761
微妙に使いづらいかもしれないけど、こんなものでいいかな。

# キャラクターの色相変化
module Cache;def self.c2(f,h);load_bitmap("Graphics/Characters/",
f,h);end;end;class Game_Character;attr_accessor :hue;end;class
Game_Event;alias xsu setup;def setup(n);xsu(n);@hue=0;end;end
class Sprite_Character;alias xub update_bitmap;def update_bitmap
xub;if @tile_id==0&&@hue!=@character.hue;@hue=@character.hue
self.bitmap=Cache.c2(@character_name,@hue);end;end;end


↑の謎の暗号を素材として貼り付けた後、イベントのスクリプトで

$game_map.events[イベントID].hue = $game_variables[変数ID]


みたいにすると、そのイベントの色相が変わる。値の範囲は0~360。
イベントページが切り替わると元に戻る。ページ切り替え直後に色相を
変えたい場合は、$game_map.refresh を間に挟むこと。

彩度や明度には非対応。




778 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/07/03(木) 00:11:31 ID:eb3H1uRy
>>769
ちょっとまてw
このスクリプト導入したら、イベントで設定したタイルB C D Eが全部表示されなくなったぞw


779 名前:769[sage] 投稿日:2008/07/03(木) 00:33:57 ID:swMrAn/F
>>778
しまった・・・タイルの場合があるのを忘れていた。

module Cache;def self.c2(f,h);load_bitmap("Graphics/Characters/",
f,h);end;end;class Game_Character;attr_accessor :hue;end;class
Game_Event;alias xsu setup;def setup(n);xsu(n);@hue=0;end;end
class Sprite_Character;alias xub update_bitmap;def update_bitmap
xub;if @tile_id==0&&@hue!=@character.hue;@hue=@character.hue
self.bitmap=Cache.c2(@character_name,@hue);end;end;end

修正したけどこれでいいのかな。(バグがないという保証はない)