Comments (24)
I can confirm that this is now working! :D
from planarally.
Hi, I'm not entirely sure if I understand the question right, but I believe that what you want already exists.
So you indeed have the dedicated fow layer, where by default everything drawn is both vision and movement blocking. This can be changed per shape but is quite cumbersome.
So instead there is also the FOW tool, not to be confused with the fow layer.
This tool can be used from any layer, and has a toggle to show or hide a region you select regardless of any dynamic light going on.
Is this what you meant ?
Thanks for trying the tool!
edit: You;re going to need to disable the Line of sight (LOS) based vision toggle in the DM settings for this.
from planarally.
Mh lemme try to explain it better :)
I would love to have the FOW layer that is some sort of a mask that I can edit, like in photoshop. Edit the mask directly to what is visible or what isn't. For that, creating objects (squares and circles) to define what is visible and what isn't is a bit hard so I thought that it would be great if we could edit that layer mask directly with a brush.
https://github.com/apclary/dungeon-revealer this project implements something like that, sadly it always requires a refresh hence why I am very excited about this project and :)
Btw, disabling LOS in the DM setting doesn't really chance anything funny enough! Maybe I am doing something wrong though.
from planarally.
Did you try the FOW tool though?
It is not a brush, but just a rectangular tool. I think I should be able to implement what you want fairly easy, I should be able to get a simple brush mechanism up and running in a separate branch tomorrow.
Just to be clear. You would like the entire screen to be black for players at the start of your session, and would like to use a brush to show (or later hide) areas in that black field?
from planarally.
Very sweet, yes indeed that is what I am looking for :) !
When I use the FOW tool to "hide" things again it gets hidden for the DM as well, by the way! A brush that simply edits the mask instead of creating objects would be really great!
This is a square object created by the FOW tool that has reveal off:
It currently doesn't turn the opacity back on but creates a new object that blocks.
Am I understanding this correctly?
from planarally.
It's indeed a new object that obscures an area, (a token with a lightsource would pierce through it though).
If it also hides stuff for the DM than that's a bug :D.
The way I would use that tool, if I'm not using the dynamic lighting, is to have the DM option to fill the entire screen with fog on, and then use the reveal part of the fow tool to show things. The downside is that it's only rectangular atm.
That said, I see merit in the masking stuff you propose and will try to implement it today/tomorrow but initially as a special separate mask layer, because combining the shapes and the mask will require a bit more tinkering.
from planarally.
Ah alright, sweet - no problem with that :) A simple FOW layer and the dynamic FOW layer
If dynamic light is wanted, you could create "objects" with the brush as well? Like, use the brush to create a bigger object
Btw, I have a setup running on docker swarm fully dockerized. Still have a small issue with logging but I'll see to that.
from planarally.
Hi, I was only able to start working on it today, so sorry for the small delay ;).
So I quickly created a very basic prototype which will definitely change in the future to be more polished but should be able to do what you desire.
The brush branch provides an additional 'brush' tool for the dm that will always show or hide stuff on the fow layer, so you can use it from anywhere without having to leave your layer for now. (it probably will change so that it can draw on other layers as well).
The reveal part works pretty straightforward, the hide part is a bit cumbersome but functional.
let me know what you think.
edit: these brush strokes are also selectable in the fow layer, if you want to remove an entire stroke this is better than drawing over it.
from planarally.
Heyo! Good work so far! So onto the report :)
-
It seems that the hide function is still creating a object that has no opacity:
-
When you zoom, the size and shape changes of the brushed area, meaning depending on how you zoom you reveal more or less
Enhancement:
- Any way to see the brush size preview?
Btw, I got it fully dockerized, you can check out a version running on a swarm cluster here: https://dnd.schemen.me
https://github.com/schemen/PlanarAlly/commits/master
from planarally.
Hi,
-
It seems that the hide function is still creating a object that has no opacity
Yes this is for practical reasons regarding synchronization to players. If it is just for yourself I could easily do a simple masking layer as we discussed earlier. The problem arises when you want to synchronize your brush strokes to other players as then you would have to send the current complete canvas image data which is much more data.That said, I'm gonna look into other things that I probably overlooked to make things easier, I forgot to adjust the opacity of the hide brush which is the primary reason you noticed this method. If I for the time being fix the opacity, is that ok for you while I look into something better? or if you have suggestions to synchronize canvas brush strokes, feel free to give them.
-
When you zoom, the size and shape changes of the brushed area, meaning depending on how you zoom you reveal more or less
This is simply an oversight on my end, I'll fix it when I get home in ~1 hour -
Any way to see the brush size preview?
I'll see how fast I can add it, but it definitely is a good idea.
Thanks for testing it!
from planarally.
Yeah, actually if you could add the added FOW Opacity to FOW objects as well maybe?
Lemme know when I can test more!
from planarally.
Ok I fixed the opacity on the brushes and made it so you always have an active brush tip to properly estimate size and effect of the brush.
I've also fixed the opacity on the FOW tool.
I've deliberately not added the opacity to the other fow objects drawn on the fow layer itself, because these are hidden by default if you switch to another layer and I wanted to properly show them on the FOW layer for this reason. I could add some DM setting to finetune it to your needs.
edit: I've managed to screw up the ruler tool though FYI
from planarally.
Heh very nice thought. You still want light blocking objects to be visible, that makes sense :)
from planarally.
I just tested the latest code and it seems to bug out when you try to mix reveal and hide on the same part of the map, not really sure what to do :D
from planarally.
Can you provide a screenshot or something?
from planarally.
from planarally.
Hm, Multiple hide layers on top of eachother will add some darkness effect, which I'll look into,
but I don't know how you get those effects, can you provide some easy steps to reproduce it ?
from planarally.
Mh, I simply draw over the same place with hiding/revealing brush
from planarally.
Do you have the DM setting "Fill entire screen with fog" enabled or not ?
from planarally.
This I do, yes
from planarally.
Ah I now also have the same problem on another pc, maybe I forgot to commit something, at least I now can recreate it.
from planarally.
I fixed the issues, I've update the branch BUT be aware that in its current state it will not synchronize with other players, I'll make it properly sync tomorrow. But if you have time you could already try it out and see if it behaves as you expect.
from planarally.
A bit later as planned, but I updated the brush branch with code that should now correctly work across multiple clients. Note that I've tested this in a clean session, so I advise you to remove any of the shapes drawn with the brush tool earlier before updating your branch.
If you have important save data, be sure to backup before upgrading.
from planarally.
Sweet! I will test this out :)
I currently do not have any save-data, I'll just delete the stuff :)
from planarally.
Related Issues (20)
- [BUG] Polygon edit tool overlay does not follow shape correctly when rotated
- [BUG] Game sometimes forgets which order to display tokens HOT 6
- [FEAT] A vision-blocking object should only block the area behind it, not itself HOT 13
- [FEAT] Explain the dice rolls in the log
- [FEAT] Show who rolled what in the log HOT 5
- [FEAT] Option to change the ruler units HOT 1
- [BUG] It is possible to guess the monster location in the dark by the public description HOT 1
- [BUG] PA wrongly scale assets automatically
- [ENHANCEMENT] Make Note Tags case matched.
- [FEATURE] In the sidebar, if elements have very long names, they are truncated. Add tooltip
- [BUG] Default server_config.cfg has duplicate ssl and cors configs. HOT 1
- [FEAT] Move server_config.cfg into the data directory so it can easily be included in a docker volume. HOT 1
- [BUG] Unable to draw circle shape HOT 5
- [BUG] 'Move to Back' button doesn't take effect until clicking elsewhere
- [BUG] Grid snapping resizing doesn't work when shape is rotated
- [BUG] Note icon on shape can be drawn over by its parent shape HOT 1
- [BUG] Note icon positon inconsistent between shape types HOT 1
- [BUG] Adding or removing shapes from notes not being received by clients until a refresh HOT 1
- [BUG] Floor display does not update until refresh
- [BUG] Undoing shape removal does not reattach shape to notes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from planarally.