Presently, the property of an object which blocks line of sight seems to be its collider (specifically, it seems that any collider which passes through the same y-coordinate as the origin of an object which is set to reveal fog will obscure that revealing object's vision).
This is very intuitive for 3D maps, but it also means that there is no practical way to prevent players from seeing through walls etc. on a 2D map, as any barrier to vision must also be a barrier to the movement of tokens and minis. Putting invisible walls everywhere only works if the pieces can be fit through small gaps between them- and doesn't work at all for terrain that should obscure vision, but also be navigable (a thicket of trees, for example, can either be a thicket you can walk into OR a thicket you can't see through, but not both).
Here are a few potential solutions:
- Allow object collision to be disabled
Whether this takes the form of an "allow collision" checkbox in an object's properties (which would require that the object be locked first, so as not to fall out of the world) or a sister tool to the Joints tool that would allow one or more objects to phase through one or more other objects (a la Garry's Mod), there are plenty of additional uses for selectively ignoring object collisions beyond its implications on the fog of war system, as well as a fair amount of demand.
- Implement a dedicated "Fog Mask" subtool
This could be something similar to the line tool, only it would presumably be put in the "Hidden Zones" section of the Tools menu; much like the lasso select tool in image editors, you could draw successive lines, each starting at the previous line's endpoint, and close the shape at the end to carve out an area within the fog zone to never be revealed—and which would act to block vision, as colliders do (but not to collide). This would likely be the most intuitive implementation for users to, uh, use (IDK I can't think of a better way to phrase that right now) but could also take the most work to implement.
- Separate vision occluders from physics colliders
Using a separate collider to obstruct vision, and only vision, would not only allow for the enhanced fog behavior I'm looking for, but it would also allow for physics objects that do not affect vision, which could be very useful— this leaves it up to the individual whether they'd rather, for instance, allow vision up a hill or staircase, and also allows for easier decoration, without driving a need to check fog after every new object (although some object behavior settings already exist which are capable of opting an object out of vision calculations). The vision collider could be cloned from the physics collider by default, which would prevent this change from breaking any maps which already use the fog of war as it is currently implemented. Finally, these colliders' properties could be exposed via the API, allowing for some pretty cool scripting opportunities.
It would be really great if any of these could be implemented with a one-way option, as well; not being able to see into a room, but being able to see out of it, would allow for some compelling tactical decisions (though I also understand that "sidedness" could be tricky to implement with these suggestions).
Finally, thank you for making such a great program! You all deserve even more recognition for such a contribution. I wish you all a safe and happy 2019.