VAMStory
View attachment 378115

In this example, the Vamstory dialogues that need to progress automatically can be triggered by the Timeline itself. Dialogues requiring player choices can use the "on show" trigger in Vamstory to pause the Timeline. Then, use the Answer trigger to continue the progress.

Vamstory itself is quite flexible. When combined with the Timeline without using additional plugins, it can actually achieve most of the functionalities you want.
Thank you so much for your help! I suppose could i also use Timeline for playing voice through the models head? (Sorry im very New lmao)
 
Thank you so much for your help! I suppose could i also use Timeline for playing voice through the models head? (Sorry im very New lmao)
Yes, depending on your actual needs, you can trigger audio either through Vamstory or by using the Timeline. Both methods look the same. However, in some situations, you might need to handle it differently. I think for now, it's best to keep it simple and use Vamstory to trigger the audio, as it is more straightforward. This way, you won't get yourself confused.

If you need to edit facial expressions or movements based on the dialogue content and have high requirements for audio synchronization, it's better to let Timeline handle the audio. Anyways, either way works. Play with it, and you'll eventually find the method that suits you best.

Here is a simple example of the triggers you might need when combining Timeline with Vamstory dialogue progression:

Screenshot 2024-06-14 080122.pngScreenshot 2024-06-14 080129.pngScreenshot 2024-06-14 080219.pngScreenshot 2024-06-14 080243.png
 
Last edited:
I guess if I need a spokes person I definitely will make you my muse @Shadow Venom :p

Hey since your really aktive ok ger I decided I'd ask a question so i want to make a scene where the Dialogue moves forwards automatically lets say a character says hi I want the "hi" to stay for a set amount of time and then for a different dialogue to Pop up as the "hi dissapears" basically some sort of Autoplay Feature.

(Hope it wasn't too difficult to understand what im trying to say)

Is there a way to do this in the latest version of VamStory or maybe a workaround that I don't know of?

Thank you for this amazing plugin!

Edit:Oh and is there anyway to add a wav/mp3 file to the dialogues that way as the test pops up the voice/audio comes our the head of the character that's talking?

Thank you for enjoying it!

Natively, the auto-play is not possible. But a bunch of people already asked me for that, so I think I'm gonna add that in.

For the audio, first: don't use mp3, use ogg instead :p (but that's not the subject).

Audio is complex, because a dialog has no connection to a character. I could add a possibility to select a character, then select an audio file natively in the plugin. But... simply creating a trigger in the "on show" with a command to play a file anywhere (on a character, on a prop, whatever), would be as fast as selecting the character and the file everytime... but far more versatile.

I think doing natively is both convoluted and useless, as you might want to trigger something else than a dialog on a character. So the custom trigger is obviously the way to go.

You can use VAMStory "VA" plugin and trigger every voice line through the dialog triggers : )
 
If you need to edit facial expressions or movements based on the dialogue content and have high requirements for audio synchronization, it's better to let Timeline handle the audio. Anyways, either way works. Play with it, and you'll eventually find the method that suits you best.

Damn! You're starting to make me think of a way to handle a set of expressions through audio haha : 'D
 
I'm actually trying to take a few notes about the idea, it's kinda hard to imagine what would be a perfect way without getting into all sorts of super convoluted settings and timing systems.

I mean, I suppose if you have like a 3sec line, you would prefer to be able to handle several expressions over the course of the line right?
 
That's really nice, but the initial focus was not to have a UI tool at first, but a "dialog" tool. But the community shows how far you can get when "using it" differently.

This is definitely not a bad idea, but also definitely not a priority for me. I'm wrapping a scene with Juno and Timbo right now. Then, it's VAMM2 wrap, and finally so that I put that to rest... I will focus on finishing Djinn once and for all.

So maybe in a couple of months that might be something I could tackle... only the future will tell :p

That said, thank you for your interest and your ideas, that's precious. Thank you <3
Yeah I'm familiar with how smart Juno and Timbo are and so if you are working with them I can only imagine it's for something really amazing, so I completely understand. I'm sure I'd rather see that come to life than some buttons haha. But thanks for the update and for making some of the best things in VAM for us to use.
 
I got an error while adding a plugin to an object.
The previously installed one works.
This is the first time, what should I do in such cases?

!> Exception during RestoreFromLast of plugin#3_CheesyFX.HeelAdjust2: System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.HeelAdjust2.SetFootPose (Single val) [0x00000] in <filename unknown>:0
at CheesyFX.HeelAdjust2.OnFootPoseChanged () [0x00000] in <filename unknown>:0
at CheesyFX.HeelAdjust2.<Init>m__D (Single val) [0x00000] in <filename unknown>:0
at JSONStorableFloat.InternalSetVal (Single f, Boolean doCallback) [0x00000] in <filename unknown>:0
at JSONStorableFloat.set_val (Single value) [0x00000] in <filename unknown>:0
at JSONStorableFloat.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at JSONStorable.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, SimpleJSON.JSONArray presetAtoms, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at Atom.RestoreFromLast (.JSONStorable js) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryPlugin.VAMStory.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0

!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
 
Last edited:
I got an error while adding a plugin to an object.
The previously installed one works.
This is the first time, what should I do in such cases?

!> Exception during RestoreFromLast of plugin#3_CheesyFX.HeelAdjust2: System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.HeelAdjust2.SetFootPose (Single val) [0x00000] in <filename unknown>:0
at CheesyFX.HeelAdjust2.OnFootPoseChanged () [0x00000] in <filename unknown>:0
at CheesyFX.HeelAdjust2.<Init>m__D (Single val) [0x00000] in <filename unknown>:0
at JSONStorableFloat.InternalSetVal (Single f, Boolean doCallback) [0x00000] in <filename unknown>:0
at JSONStorableFloat.set_val (Single value) [0x00000] in <filename unknown>:0
at JSONStorableFloat.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at JSONStorable.RestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, SimpleJSON.JSONArray presetAtoms, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
at Atom.RestoreFromLast (.JSONStorable js) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryPlugin.VAMStory.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0

!> Error during attempt to load assetbundle hazmhox.vamstory.28:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryActionPlugin.VAMStoryAction.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0
You are probably mixing different versions in the same scene. You can either temporarily ignore these errors, replace all VAMStory instances in the scene with the same version, and then reload the scene, or open the scene's JSON file with Notepad, search and replace to keep the versions consistent, and then open it again.
 
@hazmhox I have this bug where I save the scene with VAM story which works fine. But when I load it again, the VAM story windows is invisible. (Not even the eye icon is there, it's just not there). By going to the director plugin, I tried to setup a trigger at scene start, but that gives me the following error in my console:

!> VAMStory - Exception caught: System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
at System.Collections.Generic.List`1[VAMStoryPlugin.VAMStory+StoryGroup].get_Item (Int32 index) [0x00000] in <filename unknown>:0
at VAMStoryPlugin.VAMStory.OnStartDialogGroup (System.String startIdent) [0x00000] in <filename unknown>:0
at VAMStoryPlugin.VAMStory.<Init>m__2 (System.String val) [0x00000] in <filename unknown>:0
at JSONStorableStringChooser.InternalSetVal (System.String s, Boolean doCallback) [0x00000] in <filename unknown>:0
at JSONStorableStringChooser.set_val (System.String value) [0x00000] in <filename unknown>:0
at JSONStorable.SetStringChooserParamValue (System.String param, System.String value) [0x00000] in <filename unknown>:0
at TriggerActionDiscrete.Trigger (Boolean reverse, Boolean force) [0x00000] in <filename unknown>:0
at Trigger.set_active (Boolean value) [0x00000] in <filename unknown>:0
at VAMStoryDirectorPlugin.VAMStoryDirector+EventTrigger.Trigger () [0x00000] in <filename unknown>:0
at VAMStoryDirectorPlugin.VAMStoryDirector.DoExecuteTriggerId (Int32 triggerId) [0x00000] in <filename unknown>:0
at VAMStoryDirectorPlugin.VAMStoryDirector.Update () [0x00000] in <filename unknown>:0

Any idea what is going on?

Btw: just going to director and "testing the trigger" the menu does show. It's just that using that same trigger at scene load, gives me the error above. I encountered this bug / glitch (or maybe I'm doing some wrong here) just while I was packaging for release.

I can make a video + send a .var if that helps.

I love the plugin, I use it in my infinite dancing scene as a menu.
 
Last edited:
Did you "off" the atom?
I honestly wouldn’t know. What I did do was change the “hidden” settings, but I don’t know if that is the reason. Since you can actually load the infinite dancing var from the hub which I made before changing hidden settings which shows the same behaviour. Some users (including myself) reported that the first time you open the save file in the var it will not show the menu. But after loading it straight from the var it does show.
 
Last edited:
I honestly wouldn’t know. What I did do was change the “hidden” settings, but I don’t know if that is the reason. Since you can actually load the infinite dancing var from the hub which I made before changing hidden settings which shows the same behaviour. Some users (including myself) reported that the first time you open the save file in the var it will not show the menu. But after loading it straight from the var it does show.

You could have the issue if the atom is "offed" and the scene is saved (which will break the data). Hence a recent update I made to warn creators about that.
If you can send me the var and your video with your bug, I can check it out.

I kind of suspect that Director could fire the group too early, but technically they all wait for each other before starting up. So that would be very strange.
 
Last edited:
You could have the issue if the atom is "offed" and the scene is saved (which will break the data). Hence a recent update I made to warn creators about that.
If you can send me the var and your video with your bug, I can check it out.

I kind of suspect that Director could fire the group too early, but technically they all wait for each other before starting up. So that would be very strange.
Thanks for looking into it! I'm sending you a link in your DM to the files.
 
hazmhox updated VAMStory with a new update entry:

New Tool & Bug fix

General
  • Fixed the "disableScroll" system to stop blocking the mousewheel interaction when using the UI of every plugin.

Tools
  • Added "Appearance Swapper", a plugin you can put on a character to trigger an Appearance swapping action for the player inside the scene. The plugin has been made for several reasons:
    • Allow creators to create a UI that allows the end user/player to select their favourite appearance.
    • Fix size issue...

Read the rest of this update entry...
 
Adding Vamstory V29 to an atom results in the error:

!> Error during attempt to load assetbundle hazmhox.vamstory.29:/Custom/Scripts/VAMStory/vamstory_assets.uibundle. Not valid
!> VAMStory - Exception caught: System.NullReferenceException: Object reference not set to an instance of an object
at VAMStoryPlugin.VAMStory.OnBundleLoaded (MeshVR.AssetBundleFromFileRequest aRequest) [0x00000] in <filename unknown>:0

Have used Vamstory v23 for hundreds of hours, never have seen this error/issue.
Currently having to resort to V23 until error fixed.


Edit*

Problem was caused by having multiple instances of older VamStory.cslist (In my case V23) in the scene on other random atoms and then trying to "update" them one by one to V29 (And then restore their saved manual backups).
Effectively making it utterly impossible (as far as I know) to update bigger scenes with multiple vamstory atoms to a newer vamstory version, as the UI breaks within V29 if there already exists atoms with v23 in the scene.

- I've seen similar errors in the past that came from different .assetbundles which use the exact same identical file pathing/naming when compared side by side.
I assume this error/issue could be prevented if V29 would have a different file path for it's /vamstory_assets.uibundle compared to earlier versions.

Perhaps changing Custom/Scripts/VAMStory/ Into Custom/Scripts/VAMStory29/

Edit2*

Using a tool called "GrepWIN" I managed to very quickly scan every single file in my /Custom and /Saves folder and replaced every instance of "hazmhox.vamstory.23" with "hazmhox.vamstory.29". So far it seems to have worked.
 
Last edited:
You will also find the information concerning invalid assetbundles. And why renaming the assetbundle will not fix the issue because the problem is "internally" (inside Unity and the original path of the assets).
 
I'm a big fan of this VaMStory, and most of my scene uses it. Thanks always. :)
Recently, I'm trying to upgrade the version of VaMStory ver 27 to 29, to use the additional features, but hard to figure out the best way to MIGRATE the works done at the previous version.
Is there any recommended best practice to migrate previous works to upgraded version?

My current trial was : Tried to use "Save manual backup" (Green Button) in the previons version to save works, but the "Save manual backup" button did not work, did not show any UI to save anything on click. (I've also tested on the empty new copy of VaM of version 1.22.0.3, but the button still did not work.) (3) I'm stuck.... o_O

Please share me any of idea to migrate previous works.

Thanks always :)
 
I'm a big fan of this VaMStory, and most of my scene uses it. Thanks always. :)
[...]

Thanks always :)

Thank you! Glad you like it!
Check the three previous posts, that will answer your question :p

Note: the manual backups only show a log message normally : )
 
Thank you! Glad you like it!
Check the three previous posts, that will answer your question :p

Note: the manual backups only show a log message normally : )
Oh. I see. I didn't image that I can directly access the text scripts. :)
Thanks~
 
Oh. I see. I didn't image that I can directly access the text scripts. :)
Thanks~

To be sure that you did not miss the point: you don't need to change anything. You just need to remove all your versions of VAMS and keep the most recent one. Read the tutorial : )
 
You will also find the information concerning invalid assetbundles. And why renaming the assetbundle will not fix the issue because the problem is "internally" (inside Unity and the original path of the assets).
Fair enough! I guess I mixed up plugins that don't have any "assets" included vs ones that do like VaMStory.

Personally in the past, when trying to "update" certain plugins that do not have such assets included (I dare say 95% of the plugins I use), they are almost always able to run seperate versions of the plugins instance next to each other in the same scene.
This made it easy to copy over specific plugin settings from one to the other, as certain plugins in the past changed their internal logic significantly when not having updated your scenes in a while. (And in my case, breaking certain existing plugin settings if you were to simply replace the old plugin with a newer version, and thus forcing you to "manually recreate" the plugin settings/profile you had set up).

Anyway besides the point, since that's not the case at all with VaMStory it appears, which is great!


The initial error I encountered is then just the result of current VaM/Unity limitations on how it deals with .assetbundle files, wheter they be packed seperatly or inside a plugin I guess.
 
To be sure that you did not miss the point: you don't need to change anything. You just need to remove all your versions of VAMS and keep the most recent one. Read the tutorial : )
While I agree in the general sense, for people that have (allot) of scenes collected, either as .var files or as local /saves/scene/.json files you are forced to use method 2, described in that tutorial link you posted.

And even then, you cannot change the dependacy list of a .var file (Unless you manually dive into every single one with a text editor).

The reason I mentioned this is solely because of this simple button which gets recommended by about 90% of all vam scene appearance/scene creators to use oocasionally.
1719413654406.png



The result is that older versions of VaMStory get redownloaded constantly.

It appears to me that it is because of .var dependancies specifically pointing to a VaMStory version, rather then it requiring "VamStory.Latest"

Which leaves me wondering, when creating a .var, do creators have to manually edit their package (after creation) so that their plugins ask for the .Latest versions, or is this something that can be done within VaM at the moment of package creation (automatically)?

- Why do not ALL .vars their dependancies simply ask for the .Latest version instead of (Almost) always asking for version numbers?
Is it because of my previous post where I explained how I sometimes ran into the issue where an updated version of a plugin changed some of it's internal code, requiring you to manually re-input/adjust its settings/config?- rather then being able to use "update method 1 / 2" of the tutorial link you posted.

(Ponders over the 100+ versions of timeline that the HUB wants me to download everytime I push that Missing referenced button).
 
Last edited:
Back
Top Bottom