Video Renderer for 3D VR180, VR360 and Flat 2D & Audio + BVH Animation Recorder

Plugins Video Renderer for 3D VR180, VR360 and Flat 2D & Audio + BVH Animation Recorder

others should be able to help you much more with this but as a general very quick tip:
you shouldn't be recording in realtime, like what you see on your device to also be the video. The quality will suffer a lot like that. Instead you should go slowmotion (the Time Scale option in vam), record in slowmotion (e.g. 0.25x) and afterwards speed the video itself to get back to the normal speed of 1x (e.g. 4 times the speed, 4 x 0.25 = 1)


disregard this, my suggestion was for general recording, doesn't help in the context of this plugin, sorry!
 
Last edited by a moderator:
It does seem that the video itself records in horrible FPS. Not just slow-mo like when you slow time (hell I actually play some downloaded scenes slowed down where characters pounding at cocaine rabbit velocity isn't so nice), but this is true FPS slowdown. It clocks itself as recording at FPS and I assumed this was just the nature of the recording but it seems like this is not normal. Rechecking my scene - desktop mode on max settings, 140fps *this test, i'm turning VAM's MSAA to off. Turned recorder down to 1920x960, jpeg lossless, render 180 stereo, stereo mode static, no post processing, framerate 120, MSAA in recorder off, aspect ratio 2:1. Hit F10 or F11 - instant mega slowdown onscreen, ~17fps (though preview says recording at ~1000fpm). Tried saving as png - even worse, down to 8fps. I've reduced various gfx settings in virtamate as well as the recorded to bare minimum and the best I've gotten is VM pulling 20fps and the recorder around 1200fpm. :(
 
Pretty sure the game is supposed to slow down while "recording" because the plugin is rendering and exporting individual frames at a time.

On that note, does anyone have any recommendations on recording and rendering fps settings? I set the plugin to record at 72 fps and used avidemux to render the video and it came out smooth but in actual slow motion and much longer than the accompanying recorded audio.
 
Pretty sure the game is supposed to slow down while "recording" because the plugin is rendering and exporting individual frames at a time.

On that note, does anyone have any recommendations on recording and rendering fps settings? I set the plugin to record at 72 fps and used avidemux to render the video and it came out smooth but in actual slow motion and much longer than the accompanying recorded audio.

Yes, this is what's happening to me too. On top of the recording process being painfully slow, the video doesn't come out like it should.
 
Pretty sure the game is supposed to slow down while "recording" because the plugin is rendering and exporting individual frames at a time.

On that note, does anyone have any recommendations on recording and rendering fps settings? I set the plugin to record at 72 fps and used avidemux to render the video and it came out smooth but in actual slow motion and much longer than the accompanying recorded audio.
I think you need to change fps in "filters" in Avidemux. Set the "destination frame rate" to 72 in your case
 
I found a couple of little gotcha's with this. Definitely works great, once I figured these out. All I want if flat videos in 4K I can view outside the game. I render at 4K resolution to Jpg, as it's a lot faster. After rendering a few animations in Daz Studio at 2-10 minutes per frame, getting 300 frames/minute out of this is fantastic! The gotcha is that the avidemux program gets confused by the change of framerate. I tried rendering at 60 FPS, but I could only get slo-mo videos. I rendered at 30 FPS, and I got it to work. Avidemux was still confused thinking the frame rate was supposed to be 25, not 30. 1800 frames came out as 1:12 instead of 1:00. I only noticed it when the audio cut out at 1:00. In the Frame Rate filter, set the input frame rate to 25 (PAL) and the output frame rate to 30 (NTSC), then it works like a charm. One more gotcha. Avidemux does not accept wav input. It wants mp3. I convert wav to mp3 in Audacity, which is also free. A nice to have would be for the render plugin to write mp3 directly. Thanks for the great plugin!
 
I tried rendering at 60 FPS, but I could only get slo-mo videos. I rendered at 30 FPS, and I got it to work. Avidemux was still confused thinking the frame rate was supposed to be 25, not 30.
If you want 60 fps you need to change fps in "filters" in Avidemux. Set the "destination frame rate" to 60
 
Would it speed up recording at all having the preview turned off? If so, can you make the progress bar viewable without it? Seeing the frame count helps a ton to make sure things aren't getting out of sync. Cheers!
 
Added Emptyto the scene attached the plugin to it, moved and rotated the Empty, changed png to jpg, as video will be compressed any way, and just press f11 to write screenshots all fine. Thank you!
 
Hello, thank you. Yes, in fact I prototyped such a plugin but didn't release it because I didn't see much use for it. My thought was that most VR videos have a lot going on so any kind of in-game content would just conflict with the video content and compete for attention in a distracting way. Additional problems being the lack of positional movement, real-life 3D VR videos all being only 180 degrees, and lighting/shading mismatch. So it would force the user to just sit in one spot facing forward; at that point the opportunities for game interaction seem very limited, and any passive experience could then be realized just as well as a VR video in its own right. I was thinking mostly about XR opportunities with superimposing the game onto real-life VR footage in real time, not so much rendered VR videos. So I could consider it for the future.

+1 for this. Real life content in the VAM world is incredibly immersive. You'd be forced to craft your scene around the fixed perspective, but that's common in VAM scenes already. Especially easy with the no-guy style VR180 porn where it's just a camera in front of the actors.

Great plugin btw, thanks. Your description in the overview made it very straightforward to record and save the VR180 vid.
 
EDIT: I figured out the problem I noted below.
TL;DR - There is a naming conflict inside of some Unity assetbundles including the shaderbundle used by this plugin.

You would expect a file named "CAB-9919b51e695690d36770ef35b12f67b9" is some kind of unique hash but it's not.

As a work around I opened the VR Renderer plugin's shaderbundle file inside the Unity Asset Bundle Extractor and renamed the asset file.

I don't work with Unity ever so don't know the right way to prevent those Asset files from defaulting to non-unique file names when creating the assetbundles for use in VAM.

asset-bundle-name-duplicate.PNG
======
Haven't seen @Eosin respond in a while. I hope you are still around!

There is a conflict using this with some Unity Custom Assets. Specifically there is something I can't figure out happening in the unity custom asset loading.

If you set up a scene with this plugin then try to add for example Nial's Industrial Apartment asset - there will be an error saying the custom apartment asset can't be found.

I left a message on Nial's Industrial Apartment asset discussion page but they didn't know what the issue could be. https://hub.virtamate.com/threads/industrial-apartment.18238/#post-59890

In my research trying to figure it out I saw references to the fact that asset loading can be a problem - but couldn't find a workaround for this. My attempts to understand what was going on by reading plugin source code and ripping open the asset bundles with Unity Asset Bundle Extractor were fruitless.

Easy to replicate by using/creating a scene that use's Nial's Industrial Apartment then try to add the capture plugin.
 
Last edited:
sadly it crashes instantly when adding the plugin, have no clue why.
Ram 16GB enough space while running
rtx 3060 12 gb
 
sadly it crashes instantly when adding the plugin, have no clue why.
Ram 16GB enough space while running
rtx 3060 12 gb

Can you try bringing up the default scene and just adding it to the existing window camera?

That will give you a baseline and you can start adding complexity to the scene from there to find what might be crashing.

Depending on other plugins you are using - there could be a conflict of some sort.

Simplify the other parts of your setup as well. Make sure you aren't screencapture, running something like reshade or anything else that could be adding to the render pipeline.
 
Can you try bringing up the default scene and just adding it to the existing window camera?

That will give you a baseline and you can start adding complexity to the scene from there to find what might be crashing.

Depending on other plugins you are using - there could be a conflict of some sort.

Simplify the other parts of your setup as well. Make sure you aren't screencapture, running something like reshade or anything else that could be adding to the render pipeline.
Thank you, ive fixed it already, just reinstalled vam and all working
 
Do all the vocal and other things (triggers, etc) work with this plugin when rendering? Does it basically slow the game down to a crawl? Would this not cause lip sync issues when using a voice track and lip sync plugin?
 
Do all the vocal and other things (triggers, etc) work with this plugin when rendering? Does it basically slow the game down to a crawl? Would this not cause lip sync issues when using a voice track and lip sync plugin?

It should work. The lip-sync plugin I believe is locking the audio playback speed to the render engine's processing time instead of it using the system clock time. Streaming audio and video that the engine can't "clock" won't work. Youtube for example appears sped up.

In general anything that adheres to the games speed slider should always work.

Note the rendering plugin isn't dropping the frame rate really low - it's fully stopping things to frame-by-frame processing independent of real time. The scene can be super complex and it won't matter that your PC barely plays it at 1 fps and you monitor is only 1080p. You can record it at 4K and 60fps no problem - it will just take a while.

You can think of it the same way a video editor works rendering out complex effects processed video and audio. The real-time it takes to do the effects processing doesn't effect what you get in the end
 
Last edited:
I'd appreciate some help here. I haven't really figured out how to use this plugin. My biggest issue is that my videos come out slow motion even though I think I'm doing everything right. Could someone who actively uses this plugin show their settings in the plugin and Avidemux that would result in a good balance between quality, file size and rendering speeds? I have RTX 2080
 
I'd appreciate some help here. I haven't really figured out how to use this plugin. My biggest issue is that my videos come out slow motion even though I think I'm doing everything right. Could someone who actively uses this plugin show their settings in the plugin and Avidemux that would result in a good balance between quality, file size and rendering speeds? I have RTX 2080

For your problem ...

I do my editing in Davinci Resolve not Avidemux ... but a classic way to get a speed shift is to not have the speed of capture not set in the editor (Avidemux). If you are capturing at 60fps and Avidemux happens to be defaulting to 24 fps like standard movies/TV it will come out as slow motion.

But I also think that the new Timeline plugin can do more time tricks now? I don't remember previous a setting for "realtime" versus "frametime" in the options for each animation sequence. When capturing you want "frametime". It defaults to "realtime". The current scene I'm working on has triggered triggered audio and fully dies when set to realtime.
The plugin can't "drop" frames so it can never get out of sync when set to gametime. One frame rendered is one delta time of audio.

Cool Trick: You can even do things like triggering appearance changes and other things that take time and you don't see it in the output. The capture plugin stops and waits. This means you can do far-far-far more complex scenes captured than you can ever run in real-time VAM. The ability to do appearance and clothing swaps and otherwise immersion breaking triggered actions as part of the animation is a big bonus.

For scene and rendering recommendations ....
I can't give you advice on what "reasonable" looks like. In the pr0n world everyone seems to want to max out their Quest 2 and I can give tell you how I do that.

In VAM...

While rendering scenes I have the standard VAM set to .5 with no aliasing. The plugin doesn't care. It runs it's own render pipeline and has it's own settings for that.
You want to set shader quality to max that one matters. Smoothing to taste.

"Usually" in game engines you want the physics rate at the desired frame rate. But the latest thing I'm working on has so much soft body, hair, and clothing VAM just stopped cold. I ended up flailing a solution by doubling the physics rate and setting the queue to 3. A game engine shouldn't need to compute physics more than once time per frame or ever need to queue physics ticks - so *shrug*.

The only thing I use PostMagic for is LUT if the scene I'm rendering already uses a LUT. Otherwise I do the color grading in Davinci. I can't think of any other plugins I use that make more pretty or change how things are computed.

In the capture plugin settings ...

My 2080ti is able to handle ful 8x anti-aliasing and 2048 per cubemap face (for 8K capture) without running out of vram. You should be able to do teh same with the 2089.

You have to enable the post effects check mark to catch anything done by PostMagic (the LUT). I capture 60fps with no frame skipping.
I changed jpeg from 99 to full max 100 - cuz why not? PNG would be even better for post editing but it's way to slow even for me. Especialy if I don't do any color grading.

Assuming VAM can render out fast enough (for my latest scene it definitely can't) I'm getting about 180 frames (jpeg images) per minute written to disk. So a 3 minute video takes about an hour to render fully.

In my latest capture the least jpeg friendly 8K frames are saving as 10meg each on disk. A "pure black" 8K frame is 3 megs on disk.

For my editing and compression in Davinci Resolve ...

(I used the $300 pay version but the only version most people need is free. I definitely recommend it.)

If you are rendering for a Quest 2 - the max it can handle in it's decoder is ~80 Mbit/s of h.265 "target" bitrate.
In my latest clip the actual bitrate after encode was 93 Mbit/s.

The resulting for size for 35 secs of 8K video was ... wait for it ... 400 megs.

Think that's big? Fun fact ... YouTube can handle uploads of Avid files. The VC-3 compressed DNxHD version is 16 gigs ... just for 35 seconds of 8K video.

The "sweet spot" in my opinion is 5K 30Mbit/s h.265 encode from 7K capture in VAM. Playable in a Quest 1 and still looks great in a Quest 2.
The actual bit rate after encode was 47 Mbit/s with a 200 meg file size.

What are the encode settings used?

This is the guide for the newest nvidia preset naming schemes. https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/

I believe the highest quality setting in Davinci for h.265 encodes in using settings similar to the "P5" profile level of nvenc.

Using 7K plugin output, tweaking down the target bit rate to 60 and lowering the profile to P4 (old name "HP" for High Performance) might be closer to what someone calls "reasonable".

Hopefully this long winded non-answer can give you some ideas for your own captures and encodes.
 
Last edited:
is there some way to automatically rename the jpg's so that i do not have to manually write in a new filename every time i want to take a picture? like if it finds a file with the same name, just add x+1 at the end or something.
 
is there some way to automatically rename the jpg's so that i do not have to manually write in a new filename every time i want to take a picture? like if it finds a file with the same name, just add x+1 at the end or something.

If you don't give It name it will create a new file every time with the name based on the date/time taken. There isn't another way I've found for that.
 
Back
Top Bottom