• Hi Guest!

    We have posted a new VaM2 dev log on Patreon, starting a monthly cadence of written progress updates between Beta releases. Highlights include the new Gizmos System, Selection Carousel, and Modes System with Context-Specific Editing. Beta1.2 is 15 of 21 items complete.

    Read the full post on Patreon, or follow progress on the public Trello roadmap.
VAMStory

Plugins + Scripts VAMStory

Download [26.87 MB]
So is it a "you" thing ( only you see it while devin' ). Or a end user thing?
 
hazmhox updated VAMStory with a new update entry:

Bug Fixes / Features / QoL

Tools
  • Bind to Cam, Fixed a bug where objects were positioned incorrectly after the first bind if the target object was parented to something
  • FOV Controller, handled disabling the plugin by resetting to the default FOV. Handling restoring chosen FOV when enabling the plugin after disabling it. ( thanks @Mxx for the idea / code contribution! )
  • Added CUA Sizer, a tool allowing sizing your CUAs above or below the limitation...

Read the rest of this update entry...
 
Hi! Thanks again for this wonderful plugin and continue to add features.
For some time I search for a way to add a variable to the story text. It would have the personal effect that is often found in visual novel games (that are basically a story with pictures).
Something like "${name1}" (or whatever c# friendly) that, when playing, is replaced by the text chosen by the player.
It's something that can make the story more personal or a lot more kinky (and still TOS compliant). Typical variables are names of the main characters and their relations to each other.
Is this even possible? Would it be possible to add this feature?
 
Hey @hazmhox Thanks including my suggestion/request in the update! However, I was still having some problems, so I tackled the code again (with use of AI tools I should add) and made a version that completely fixes my issues in my workflow. I will include the entire file, and you're free to check it out yourself and use that version for your next update! (you don't even need to credit me if you want). Here's what I changed:


1. Performance: optional UI scaling
Animating the FOV Value in Timeline causes big FPS drops because SuperController.singleton.monitorCameraFOV triggers VAM's internal UI rebuild every frame. I added a Scale UI toggle (default ON = original behavior). When OFF, SetFovValue writes directly to the monitor camera's fieldOfView instead, which skips the UI rebuild and animates smoothly. This is intended for my cinematic shots where the UI is hidden anyway. It's toggleable from triggers so you can flip it off before a cinematic and back on after.

2. Disabling the plugin actually disables it
Previously, when the plugin was disabled in VAM, Timeline would still drive Force FOV Value and the callback would keep forcing the monitor FOV (the storable callbacks fire regardless of MonoBehaviour enabled). Added an if (!enabled) return; guard at the top of SetFovValue so all paths become no-ops when the plugin is disabled. This lets users leave the FOV animation in Timeline but disable the plugin to watch the scene from freecam without FOV being forced.

3. OnDisable restores original FOV
OnDestroy already restored _originalFOV, but disabling ≠ destroying, so the monitor FOV stayed stuck on the last animated value until plugin reload. Added an OnDisable that resets to _originalFOV so toggling off cleanly releases control.



I hope you're not offended by me changing your plugin's code, and it's absolutely not my intention to get any credit for this. It's just that this fix would greatly increase the quality and workflow of my scenes. Also, since I don't expect you to update VAMStory so soon, are you okay with me packaging this version of vams_fovcontroller.cs in my upcoming scene? Once you were to release this as an update, I would of course just reference your plugin as usual, but I'm planning on releasing my next scene this week and would love to be able to use this version.
 

Attachments

  • vams_fovcontroller.cs
    5.5 KB · Views: 0
(you don't even need to credit me if you want)

I'd argue that (as a friendly poke/joke), that you shooting me AI code is by essence, not creditable :p

1 - This does not take into account a set of synchronizations needed in VAM. Adding that will fail if people switch cameras (as there are different rigs) and UI might get desynchronized, this requires way more than a simple FOV setter. I'll see how I can adapt this properly.

2 - I'll check, that might be a side effect / oversight from Meshed (or VAM's original behavior). This should indeed not execute if disabled.

3 - It litterally does already, I don't know why you'd have that effect. I did both destroy and disable after you initial request is it was logical to have it in both.


I hope you're not offended by me changing your plugin's code

I'm not offended by making a plugin evolve. You are a witness on how I build my plugins and how I respond to people using them. On the other hand, if you're not a coder, I'd like you to ask me for changes/improvements/tweaks/fixes, news features or whatever... but don't drop me AI code. I'm not using AI, I will probably never do, for all sorts of reasons... but mainly because I like coding, understanding things... and creating things myself.

So in the future, I wish you'd simply expose/explain your needs without dropping me AI code. Especially because I'm not very fond of having my code feeded to machine learning tools (even tho I suspect half the wave of new plugin creators don't care and do it).


are you okay with me packaging this version of vams_fovcontroller.cs in my upcoming scene?

Absolutely no problem! Go for it :cool:(y)
 
I'd argue that (as a friendly poke/joke), that you shooting me AI code is by essence, not creditable :p

1 - This does not take into account a set of synchronizations needed in VAM. Adding that will fail if people switch cameras (as there are different rigs) and UI might get desynchronized, this requires way more than a simple FOV setter. I'll see how I can adapt this properly.

2 - I'll check, that might be a side effect / oversight from Meshed (or VAM's original behavior). This should indeed not execute if disabled.

3 - It litterally does already, I don't know why you'd have that effect. I did both destroy and disable after you initial request is it was logical to have it in both.




I'm not offended by making a plugin evolve. You are a witness on how I build my plugins and how I respond to people using them. On the other hand, if you're not a coder, I'd like you to ask me for changes/improvements/tweaks/fixes, news features or whatever... but don't drop me AI code. I'm not using AI, I will probably never do, for all sorts of reasons... but mainly because I like coding, understanding things... and creating things myself.

So in the future, I wish you'd simply expose/explain your needs without dropping me AI code. Especially because I'm not very fond of having my code feeded to machine learning tools (even tho I suspect half the wave of new plugin creators don't care and do it).

I'm sorry. My only intention with this was to alleviate the work I'd be putting on your shoulders with the extra questions/requests and the many back and forth messages. In this very discussion thread I've seen you having to ask users for more info many times before fully understanding what their problem is and what they're trying to achieve. I just wanted to prevent this and not take too much of your time implementing these fixes. I understand your distaste for AI as a coder, so next time I will explain my problem/suggestion rather than send you a 'fix'.

Absolutely no problem! Go for it :cool:(y)

Thank you so much!
 
Hi! Thanks again for this wonderful plugin and continue to add features.
For some time I search for a way to add a variable to the story text. It would have the personal effect that is often found in visual novel games (that are basically a story with pictures).
Something like "${name1}" (or whatever c# friendly) that, when playing, is replaced by the text chosen by the player.
It's something that can make the story more personal or a lot more kinky (and still TOS compliant). Typical variables are names of the main characters and their relations to each other.
Is this even possible? Would it be possible to add this feature?

I'm currently working on a "Character" plugin (which will be added on the person atom). Which would allow first and foremost, to pop advanced speech bubbles. At least, with some visual options, offsetting and so on...
The other idea I had was to indeed have a value in this character plugin to set a name for that specific character.

The problem is, that is not the technical problem/complexity. The actual problem is to give players a way to do it easily... and since I'm accounting all the time for VR and Desktop. I would need to come up with a specific UI, user friendly enough so that creators could use that to give a tool/UI to their players to input their values.

The other limitation I have with that, is... it works for characters, but for anything else, it would require somewhere... a way to add values than can be parsed at runtime. I'm still thinking about it, I'm not sure how to handle this properly without having to make an insane plugin for a very very narrow user base.

I'll keep you posted : )
 
I'm sorry. My only intention with this was to alleviate the work I'd be putting on your shoulders with the extra questions/requests and the many back and forth messages. In this very discussion thread I've seen you having to ask users for more info many times before fully understanding what their problem is and what they're trying to achieve. I just wanted to prevent this and not take too much of your time implementing these fixes. I understand your distaste for AI as a coder, so next time I will explain my problem/suggestion rather than send you a 'fix'.

No problem mate! It's just a matter of belief/opinion, no harm done.

On the "asking for more info", it's just normal communication if you ask me. I'm more than 20y in as a dev, and 100% of the time... failure to fix/tweak/improve as asked was because the initial request was badly formulated. And even further, even in standard discussions... like asking what you should get at the shop, most misunderstanding are tied to a lack of information or even simply... accuracy.
For instance, if you go back a bit, Dragontales asking for a cooldown made me ask "Cooldown or delay". 'coz I've been in that spot several times, and people can use cooldown as delay and vice versa.

So, with my background, I'm simply ensuring the information is correct by default. Even if I think I mostly understood the request. But honestly, your request was pretty clear. So I suspect you're just quite good at communicating :p

And on the "time waste", it's not really a problem. If I'm listening to you, it means I'm willing to spend the time. If the person you have in front of you is a serious creator/coder, they will have to review the code, test it... in several situations and eventually (like I do) a clean VAM with the least interferences possible... and so on. So at the end of the day, unless you'd ask me for something super crazy, like I don't know, math heavy, physics heavy, or whatever crazy shit you can imagine... that I cannot pull off ('coz you know, at the end of the day, I'm not doing crazy stuffs if you objectively look at it). I will have to review and validate the code. Which for things like this is so basic that doing it myself would require pretty much the same time ^^
On the other hand, you did consume your time asking to the AI overlord and testing it, when you could have devoted your talent to make (me) us a sexy animation! :LOL::sneaky:

Could you clarify the (3) btw, was it an artefact of your initial request? 'coz the code was already like that in the update. ( I want to be sure I'm not missing anything )
 
And on the "time waste", it's not really a problem. If I'm listening to you, it means I'm willing to spend the time. If the person you have in front of you is a serious creator/coder, they will have to review the code, test it... in several situations and eventually (like I do) a clean VAM with the least interferences possible... and so on. So at the end of the day, unless you'd ask me for something super crazy, like I don't know, math heavy, physics heavy, or whatever crazy shit you can imagine... that I cannot pull off ('coz you know, at the end of the day, I'm not doing crazy stuffs if you objectively look at it). I will have to review and validate the code. Which for things like is so basic that doing it myself would require pretty much the same time ^^
On the other hand, you did consume your time asking to the AI overlord and testing it, when you could have devoted your talent to make (me) us a sexy animation! :LOL::sneaky:

Thanks, I do IT support as a day job and so I know giving as much (and accurate) info as possible initially will be much more helpful than "hey, this isn't working... can you fix it?" 😅

On the other hand, you did consume your time asking to the AI overlord and testing it, when you could have devoted your talent to make (me) us a sexy animation! :LOL::sneaky:

Haha, since I'm way more interested in making scenes/animations and not a coder, I end up resorting to using certain tools (AKA the overlord 🤣) if I run into problems that I want a fix to. And so when I run into this issue with animating FOV, I want to fix it so that my scenes fit my standards of quality.

Could you clarify the (3) btw, was it an artefact of your initial request? 'coz the code was already like that in the update. ( I want to be sure I'm not missing anything )

Now that I read it again, it you're right that this fix was indeed already implemented in your most recent version, but my overlord decided to include it in the summary of fixes 🙈


So as my personal summary of my issues:
- When changing the FOV, VaM automatically updates the VaM UI so it doesn't grow too big or too small. However, this 'updating' of the VaM UI significantly decreases performance. So that toggle to turn of the UI scaling was so that when I Embody the cinematic camera, it doesn't need to constantly update the UI scale anyways, since during the cinematic cam I disable the UI anyway. So this "scale UI" toggle is something I would trigger upon entering Embody, and turn back on when leaving Embody.
- I want my scenes to be watchable from the cinematic cam (using Embody), and the normal free cam. I currently animate the FOV value within timeline for the dynamic zooms (like at 0 seconds FOV=40 and at 5 seconds FOV=5), but even if I disable the FovController plugin, the FOV will still 'update' every second when that timeline animation is running for some reason.

I'll provide some videos of my issues:

Before. This is in the current version. When animating the FOV, every increment has to 'update' VaM's UI which decreases performance significantly. Look at the top right to see my fps all the way down to 12After. With the fix by our overlord, once that UI scaling toggle is disabled, animating the FOV is nice and smooth. I keep the same fps as usual, which is around 80fps here.

That other issue is shown in this video. With FovController enabled, FOV updates in real time as it's animated (although very choppy because of that previously mentioned issue). When I disable FovController, it no longer updates the FOV in real time, but after every second it still 'jumps' to a new FOV. I just want FOV to not be affected when the plugin is disabled (when I switch out of my Embody cinematic cam).


Sorry for the long essay, but hopefully this communicates clearly what my problems are!
 
Sorry for the long essay, but hopefully this communicates clearly what my problems are!

Absolutely no problem. I enjoy chatting with cool people, long essays are not an issue ^^

Perfect! Duely noted. I'll check that tonight.

Ho btw, I was kinda extreme in my AI answer above... I do use AI in a single situation, and where I think it's a valid choice if you don't have the means. Contrary to my job, I don't have the ability to spend tens of thousands of dollars into voice acting for VAM (even tho I'd like it, for my own scenes/collabs), so I do use some AI voice sometimes. I try to reduce it to a maximum due to the environmental issues it creates. But if you can't afford VA, or you want to do concrete things and don't have the ability to do it (like code) I do understand the appeal. (I won't go in the image generation discussion, it's a whole debate by itself :p)
 
Back
Top Bottom