AVR
Note: AVR will be broken in patch 3.3.5. See this
AVR (Augmented Virtual Reality) allows you to draw and add lines, circles and other markings on the 3D world itself. All markings may also be shared with others. Suitable for example to mark locations when explaining raid tactics. These marks can even be left visible for the fight itself.
Other things you can do with AVR:
- Draw range circles around you or someone else at any range
- Clearly mark players close to you
- Mark any location relative to player position and rotation, for example mage blink landing spot
- Measure distances
- Boss encounter warnings (using a separate addon)
Boss encounters
AVR does not contain a built in boss encounters module anymore. They are now done by a separate addon. At the moment there are two options.
- AVR Encounters adds AVR warnings for various boss abilities. It does not require any other boss encounter addon to work. It is not a replacement for traditional boss encounter addons as it does not do ability timers, sound warnings etc. It can be used with any traditional boss encounter addon such as BigWigs, DBM or DXE.
- Raid Watch 2 is a full boss encounter addon much like BigWigs, DBM or DXE. It has built-in support for AVR and also does timer bars and other kinds of warnings.
Whichever you choose to use, you will also need to install AVR.
Important note: If you have installed a previous version of AVR which contained the AVR BigWigs module then you should delete that. Simply delete your Interface\Addons\AVR_BigWigs_Citadel folder.
Limitations and known issues
There are some fundamental limitations caused by what information is available to addons. These are mostly related to the exact position of camera and lack of unit Z coordinates. In particular you should note following:
- Drawing works best on a flat surface (note that for example Dalaran has very uneven roads).
- Camera getting stuck in a wall or ceiling will cause any markings to go out of sync with rest of the world.
- Any kind of stairs/slopes and such cause troubles.
- Jumping and other kinds of vertical movement causes the drawings to move with you.
- Everything is drawn over the 3d world. This means that things that should be behind walls or units will appear in front of them.
- Camera auto follow causes some problems. See also this
Some other known issues are:
- All vehicles (like the ones at the start of Ulduar) are a bit problematic.
- Lifts, moving platforms and in particular Gunships in Icercown Citadel raid have some problems.
- Player map coordinates are unavailable in Icecrown Citadel raid on Lich King platform after the edges have collapsed. This means that any markings tied to zone coordinates or other players than yourself are unusable there. (Lana'Thel's room was fixed in 3.3.3 though the ramps leading there are still a bit odd.)
- Player map coordinates are also not available in arenas or instances released before Wrath of the Lich King and so most things don't work in either of those.
How to use
See How to use.
Frequently asked questions
See FAQ.
[[Interface\AddOns\]]..( ... )..[[\Libs\LibAVR-1.0\textures\]]..TextureName
, assuming a standard Libs folder layout. For non-standard folder layouts, you could allow optional TOC file metadata like "X-LibAVR10-LibPath" to specify the Libs subfolder.Instead of having the textures in the library couldn't the user supply that? Would also make each addon using it a bit more unique, even the standalone AVR addon (Sure lines cant be that unique, but other things in the future maybe).
Something like:
I've told various people that I'd be making an embeddable library for the 3d drawing. That certainly was my intention at the time but after thinking about it more I probably won't go that way after all. Main reasons are that the library would be pretty big and many users would still be installing the standalone AVR addon. Also including the needed texture files in an embeddable addon would make a mess as you need full path from the interface folder to refer to them. Instead I'll improve the current API and write guide how to use it. Feel free to leave any comments you may have regarding this.
@Genericflame I'll try to improve sharing in general soon. One other annoying thing is that only the original author of a scene can resend it. Need to find some kind of balance that allows collaborative editing without making it possible for everyone to overwrite each other's data.
@Morgalm That is a bit high but not necessarily surprising. Haven't checked memory usage recently with more boss warnings present. Still, you probably have more than enough memory available so memory usage as such shouldn't be a problem. Rather than memory usage, the 3d drawing is going to affect your fps much more since that's quite cpu intensive.
AVR was using upwards of 32MB of memory last night during a 25 man raid. Is this normal? I was using AVRE not bigwigs for events.
If I create a scene and send it to a raid/guild/whisper it saves a note that this scene was sent (not for users)
If I delete this scene (which was sent) - addon will automatically send delete request to raid/guild/whisper, so every one will lose this scene +_+
This is a relatively minor issue, but have you considered setting "Sharing" defaults from only Raid Leader and Raid Assist? I had to spend a good amount of time trying to explain to our less-savvy addon users how to delete scenes because someone decided to broadcast trash scenes to the whole raid.
FYI, this line:
Didn't work on a AVRRangeWarningScene. I eliminated the call for now, but controlling the alpha could be useful.
First public beta of AVRE is out. Don't yell at me too much if there are bugs, I'll be testing almost the whole zone tonight so I'll know before you tell me. :D
I'm not saying it's a bad idea, it just might get a bit complicated. And so far I haven't really had a need for anything like that. Sure it would be nice for example to have markers for frost beacons visible only in Sindragosa air phase. But then again it doesn't really matter if they're there all the time. Of course in the future we might get some multiphase boss where you need complicated plans for each phase and they get all messy if you have them all on top of each other. Or maybe we'll find some new uses for AVR that I haven't thought of yet, I don't know.
So go for it if you feel like doing the work.
I do intend to wait on scene toggling and range checks until after I've gotten the core abilities all working (I'm already at that stage, though). I'm curious, why do you think it's a bad idea? Is it really bad from a performance standpoint, or do you have some other objection? I would think you'd want players to utilize all the work you've done, without having to install 3-4 separate add-ons.
I do agree that splitting the rendering engine out into a library is a good idea. Thanks for the code!
until this bug is fixed i dont recomend to install it.
To fix the issue run "/script SetView(3); ResetView(3)". After that the follow seemed to work even after relogging. It also worked with AVR running. It shouldn't be necessary to run the repair tool or otherwise reset your interface.
With all that said, AVR doesn't work very well with camera auto follow. All markings will kind of jump around whenever the camera is being automatically rotated.
although in my mind it was the addon that caused this. cos i havnt installed any other addon or in any other way altered WoW.
but again, thx for the fix. much apritiated.
keep up the good work
It helps our Guild to kill Sindragosa, the only boss we cannot kill easily rihgt now...except Arthas of course. ^^
As mentioned below a version working with DBM would be wonderful.
And for the usage:
We tried it out yesterday.
Raidlead had Bigwigs + AVR installed and everybody else just AVR...we werent able to see the sindragosa marks. Did we forget something ?
We went on and all installed Bigwigs + Sindragosa Plugin to show Raidicons and it finally worked.
Is there a way to use avr without using Bigwigs ?
I've seen several guilds use AVR on Sindragosa to mark positions for frost beacons. This doesn't require BigWigs on anyone. To do this have one person prepare a scene using the scene editor (see the How to use link in the description above). Place icons or circles of different colors or whatever you want in the desired positions. Then that person sends this scene to others before the fight. One thing to note is that the stairs at Sindragosa can make it a bit tricky to get the markers in the positions you want.
The normal raid icons on people are done by BigWigs Sindragosa plugin or some other boss module. One way to coordinate the frost beacon positions is to place AVR raid icons on the ground and then people run on the same icon they get above their head. Note that different boss mods seem to be using different icons for frost beacon.
If you have both BigWigs and AVR installed, then red circles will be automatically placed on people who get frost beacon. Then you really can't miss who has them. This also works in phase 3. Only people who have BigWigs installed will see these warning circles. As mentioned below, alpha version of Raid Watch 2 has similar features built in and you don't need BigWigs or the BigWigs AVR module if you're using that.
I think toggling visibility of other scenes based on certain events will complicate things a bit. I'd wait with that until after the basic boss ability warnings or maybe even make it a completely separate addon. But if you want to do that then identify scenes by id and from fields. The from field tells you who the scene is from, nil if it's made by you. Two scenes can have same id only if they're from different people. When iterating the scenes you'll probably also want to ignore scenes that have save==false or guiVisible==false.
Also I'm going to make the core 3D drawing functions a separate embeddable library soon. All the options, sharing and scene editors will remain in a standalone addon. I'm trying to keep the interface mostly same, you'll just include the library with LibStub instead of using a global.
To create a range warning scene
Then when you need to make it visible just do
Sorry for all the questions. How much code is involved if I want to dynamically turn on a new Range Check scene at a specified range (during one portion of the fight, for example) and then turn it off? Thanks again for all your help.
Refer to the comment I quoted. He wants to create his own scene and turn it on during certain portions of the fight, for example during Sindragosa P2 when the frost beacons go out. I need a list of scenes the user has, and let them choose one to turn on. I won't be making scenes or sending them anywhere.