Mit einem Skript ginge das schon, denke ich.
Aber grundsätzlich ist es eine gute Idee, alle Animationen eines Charakters in der gleichen Größe zu halten. Da hat man auch weniger Stress bei der Positionierung der Frames.
Abgesehen davon die Grafiken anzupassen, sehe ich folgende Möglichkeiten:
1. schalte die Zentrierung auf den Charakter aus, wenn der Charakter nicht läuft - automatisiert mit einen Skript.
 function disableScroll()
 
  if game.CurrentCharacter.AnimState ~= 1 then
-- wenn der Charakter nicht läuft (1 = walk)
   game.ScrollCenterCharacter = false
  else
   game.ScrollCenterCharacter = true
  end
 
end
registerEventHandler("mainLoop", "disableScroll")
 
(da könnte man noch eine Bedingung vorschalten, die bei Beginn der scollenden Szenen umgeschaltet wird)
oder 
2. schalte die Zentrierung bei den scollenden Szenen mit dem Aktionsteil bei Beginn der Kulisse aus und bastle für diese Szenen ein eigenes Scrollen.
 function NewScroll()
  if game.ScrollCenterCharacter == false then  -- wenn Zentrieren auf Charakter ausgeschaltet ist
  local pos = game.CurrentCharacter.Position  -- Charakterposition speichern
  local scrollpos = pos.x - game.WindowResolution.x/2  -- Scrollposition auf X-Achse berechnen (obere linke Ecke des Bildschirms)
   if scrollpos < 0 then scrollpos = 0 end
   
   if game.ScrollPosition.x ~= scrollpos then
    game.ScrollToPoint = {x = scrollpos, y = game.ScrollPosition.y}  -- zur neuen Position scrollen (nur X-Achse)
   end
  end
end
registerEventHandler("mainLoop", "NewScroll")
 
Wobei hier das Scrollen unmittelbar einsetzt, sobald sich der Charakter bewegt, ohne die sonst eingebaute Pufferzone.
Edit: Da fällt mir ein: das Aus- und Anschalten der Zentrierung nach Lösung Nr. 1 könnte man auch ohne Skript in die jeweils ersten Frames der Lauf- bzw. Stand-Animation legen.