I want to detect overlap with terrain without colliding with it

Is there a way to create an object that triggers an action when it overlaps with terrain, without hitting a wall?

You could use my Gimmick Tile addon and generate an object that will change the action. It would be a cool base setting to add to the addon itself, but there is no API to run action/conditions outside of Visual Script at the moment.

Is this based on collision detection with tiles? For example, can this be used to make a ghost character that passes through terrain become semi-transparent only while passing through?

I think it would be better to use “Overlap” and “Area Variable” in the tile effect judgment pattern.

In the case of “Overlap,” it should be detectable even when collision is disabled, so I believe it could also be used for that purpose.

  1. Set Tile Effect > Area Variable on the “Wall” tile.
  2. Turn “Receive Tile Effect” on for the Ghost GameObject.
  3. When the Ghost object’s variable “Current Area ID” matches the specified value, apply transparency via the action filter or make the sprite’s alpha property semi-transparent using the sprite color.
  4. When “Current Area ID” no longer matches the specified value, remove the effect applied in step 3.

I believe this approach should work.

By the way, can the same thing be done with object wall collision detection?

For objects, disabling collision would make them uninteractable, so it would likely involve using “attack hitbox” and “collision detection.”

  1. Set the wall object’s attack power to 0 and add an attack hitbox.
  2. When the ghost hits the wall object’s attack, it becomes semi-transparent.

Is that correct?

I see… It doesn’t seem very usable, so I’ll omit it. Thank you very much.

I just thought of something.

It’s not perfectly transparent, and color adjustments for the objects would also be needed, but how about simply layering a semi-transparent Rectangle on top?

  1. Set a ColorRect as a child of the object (in this case, configure the Z-coordinate so it appears in front of the player. The hierarchy should be: ColorRect > Ghost > Sprite).
  2. Set the ColorRect’s color to be semi-transparent.
  3. Since the Ghost will be behind the semi-transparent Rect, it will appear semi-transparent… sort of.

Ah, I just mentioned it as an example; it’s not actually used to make things transparent. I don’t think that method would work anyway, so it’s fine…