Reopening after discussion in this thread
Okay, I have something that should work for you. Just throw this script into your custom scripts - it aliases everything, so can go below everything.
class Game_CharacterBase alias shaz_vp_init_private_members init_private_members def init_private_members shaz_vp_init_private_members @viewport = 1 end def set_viewport(value=1) @viewport = value if value.between?(1,3) end def viewport @viewport ? @viewport : 1 endendclass Spriteset_Map alias shaz_vp_update_characters update_characters def update_characters shaz_vp_update_characters @character_sprites.each {|sprite| sprite.viewport = [@viewport1, @viewport2, @viewport3][sprite.character.viewport - 1] } endendTo call it, just do a Call Script command from an event, with this:
Code:
$game_map.events[id].set_viewport(2)
where id is the event id (no leading 0's) and the viewport is the one you want it to go to. 1 is the default, and anything in this viewport will be subject to the screen tone and shake. Anything in viewport 2 will not be affected by tone or shake, but will be affected by flash. Anything in viewport 3 will not be affected by tone, shake or flash, but will be affected by brightness (which changes when the screen fades for a transition). Those are the only viewports you should use. It's unfortunate that removing the influence of screen tone will also remove the influence of screen shake. Maybe with a little more effort that could be overcome (maybe just applying the screen shake to all of viewport2 might do it).You can also do this:
$game_player.set_viewport(2)but I wouldn't make that a permanent thing - I'd set it, do what needs to be done, and ensure at some point (even if it's when leaving the map) that it's changed back to 1 again.It will work on vehicles and followers too, but I haven't looked closely at what the script call would be. Probably something like calling the set_viewport() method on $game_map.vehicles[index] and $game_player.followers[index].
I also added a little security in there to ensure a game doesn't crash if you load a save file after installing this script.