Are you talking about a simple shadow shape or an animated shadow that mirrors what the character is doing?
If it's the simple shadow shape (blob thing) then it would be easy enough to do with a small loop, to update the shadow image (animation would work best or a character) position to that of the character minus a few pixels or so to make sure it is layered beneath the character (character method).
1. create a new character. name it something like
hero_shadow. & add some animation frames to the idle (standing) animation sections.
2. Define the animation center, so that the shadow will end up where the characters feet are.
3. Set the characters starting point to the same as where your playable characters starting point is.
4. Create a new script & make sure it is set as a definition script. Add the code block below to it... (adjust as needed).
-- * variables * --
local pos, scn -- empty variable (will be used to store current characters position)
-- * function that will be used to update shadows position * --
function updateShadowPos()
scn = game:getLink(VGameCurrentScene):getName()
-- + --
if scn == getObject("Game.GameCurrentCharacter.CharacterScene"):getName() and scn == getObject("Characters[hero_shadow].CharacterScene"):getName() then
pos = getObject("Game.GameCurrentCharacter"):getPoint(VCharacterPosition)
-- + --
getObject("Characters[hero_shadow]"):setValue(VCharacterPosition, { x = pos.x, y = (pos.y - 10) })
end
end
registerEventHandler("mainLoop", "updateShadowPos") -- create loop event
... the loop should only work if both the shadow & currently active character are both on the currently active scene.