LogicBricks

Plugins LogicBricks

@Syke Just for the record: The recommended/proper solution would be to cut your audio into pieces that you can play at the appropriate time. Jumping around in a single file is a really weird, inefficient and labour intense (setup-wise) solution. Once you cut the audio it is much more straight forward to trigger appropriately named audio files instead of having to remember which time index was what in your audio file. In the long run that will be less error-prone and therefore much more time efficient.

You can cut audio easily with free / open-source software....for example Audacity.
Yes, I'm starting to think my laziness is going to result in more issues in the future lol

I had done it previously when working in another program but it felt tedious there so I was hoping I wouldn't have to here. I think my use case still exists when doing music, which I suppose is why @Shadow Venom has experience there, as their mmd work is pretty amazing.
 
@MacGruber - following your advice, I've spliced the sound file and assembled audiobundles. Of course, this now gets back to not being able to scrub an AB - more used to try and sync animation. I assume, were such a function to exist, be a feature extension in timeline? I.e. timelines scrubbing only works with 'native' urls rather than with AB right now?
 
@MacGruber - following your advice, I've spliced the sound file and assembled audiobundles. Of course, this now gets back to not being able to scrub an AB - more used to try and sync animation. I assume, were such a function to exist, be a feature extension in timeline? I.e. timelines scrubbing only works with 'native' urls rather than with AB right now?
If you split the audio files (into individual moans, etc), why do you still need to scrub?
Anyway, this is the LogicBricks thread. Please discuss Timeline questions elsewhere.
 
If you split the audio files (into individual moans, etc), why do you still need to scrub?
Anyway, this is the LogicBricks thread. Please discuss Timeline questions elsewhere.
Yes... I've put questions into the timeline thread now. Sorry for the off-topic and appreciate the replies and all your amazing work.

FWIW, scrubbing is still for aligning specific animations. There's still a fundamental limit on how much you can 'atomize' the speech as I don't think it makes sense to break up a file until you get to say syllables. Even words don't work if you have a character saying something that aligns well with an action or emotion. E.g. A character saying "I'm going to spank you... for... every... breath... you... take." and trying to align the spanks to emphasize each word. You could break it up, but the cadence could be off, or you want to align parts of the slower actions with the speech of the former. To align well, you still want to scrub, rather than iteratively play the whole clip, adjust, play the whole clip, etc, or break down these sounds such that you might have hundreds you now have to load manually into a scene, since scrubbing in AB doesn't work.
 
Finish your meal. Take a bath. I want to have a trigger button called [Next Day] appear only when these two conditions are met. A trigger that fires when various trigger conditions are met. Is there such a thing?
 
Finish your meal. Take a bath. I want to have a trigger button called [Next Day] appear only when these two conditions are met. A trigger that fires when various trigger conditions are met. Is there such a thing?
I have a dumb workaround to achieve what you described by using two additional atoms. Atom B is grouped under Atom A. Both are turned off by default. "Finish your meal" turns on Atom A (empty atom), "Take a bath" then turns on Atom B ("Next Day"). That way the button will only appear when both actions are taken.
 
Finish your meal. Take a bath. I want to have a trigger button called [Next Day] appear only when these two conditions are met. A trigger that fires when various trigger conditions are met. Is there such a thing?
I would think of the following setup as the most simple:
  1. Two LogicBricks Relay, e.g. placed on some Empty atom.
  2. Turn "Accept Trigger" off for both Relays.
  3. Set the trigger action for Relay 1 to just trigger Relay 2.
  4. Set the trigger action for Relay 2 to enable your "Next Day" button.
  5. When you get the trigger signal for having done the "Finish your meal" action:
    1. Set "Accept Trigger" for Relay 1 to enabled.
    2. Then trigger Relay 1.
  6. When you get the trigger signal for having done the "Take a bath" action:
    1. Set "Accept Trigger" for Relay 2 to enabled.
    2. Then trigger Relay 1 (yes, Relay 1, not a typo!)
  7. In addition you probably want to put a "Reset scene" button somewhere that disables "Accept Trigger" for both Relays and also hides the "Next Day" button again. Likely it also should reset other things in your scene. Something like that is super helpful for testing your scene and saving it in the correct state.

So for the trigger signal of either action to go through to actually enable the button, both "Accept Trigger" have to be enabled. You can chain more Relays as you need more conditions. As your logic becomes more complex, I recommend to name the Relay plugins in some meaningful way. Just use the text field that is on each plugin (same screen where the reload buttons are) That helps keeping track of what is what. Giving Empty atoms meaningful names can also help.
 
Last edited:
I would think of the following setup as the most simple:
  1. Two LogicBricks Relay, e.g. placed on some Empty atom.
  2. Turn "Accept Trigger" off for both Relays.
  3. Set the trigger action for Relay 1 to just trigger Relay 2.
  4. Set the trigger action for Relay 2 to enable your "Next Day" button.
  5. When you get the trigger signal for having done the "Finish your meal" action:
    1. Set "Accept Trigger" for Relay 1 to enabled.
    2. Then trigger Relay 1.
  6. When you get the trigger signal for having done the "Take a bath" action:
    1. Set "Accept Trigger" for Relay 2 to enabled.
    2. Then trigger Relay 1 (yes, Relay 1, not a typo!)
  7. In addition you probably want to put a "Reset scene" button somewhere that disables "Accept Trigger" for both Relays and also hides the "Next Day" button again. Likely it also should other things in your scene. Something like that is super helpful for testing your scene and saving it in the correct state.

So for the trigger signal of either action to go through to actually enable the button, both "Accept Trigger" have to be enabled. You can chain more Relays as you need more conditions. As your logic becomes more complex, I recommend to name the Relay plugins in some meaningful way. Just use the text file that is on each plugin (same screen where the reload buttons are) That helps keeping track of what is what. Giving Empty atoms meaningful names can also help.

Thank you for answer. Really great plugin.
 
I am a newbie who just started using VaM. I have a question.

I am creating a scene where some of the lines change randomly. As an example, I randomly select a weather statement and an action statement,
Today is [sunny/rainy/snowy]. Let's go home and [play games/cook/study].”
or something like that.

It looks like RandomChoice and RandomSoundFromAB can do random playback, but do I need to load a plugin for each random element group? (e.g. one for weather and one for action). As it is, the number of plug-ins becomes very large as the number of element groups increases.

I have audio data in one asset bundle; can I change the target element for each trigger with one plugin load?

Sorry for the unnatural text as I am using a translation service. Thank you.
 
I am a newbie who just started using VaM. I have a question.

I am creating a scene where some of the lines change randomly. As an example, I randomly select a weather statement and an action statement,
Today is [sunny/rainy/snowy]. Let's go home and [play games/cook/study].”
or something like that.

It looks like RandomChoice and RandomSoundFromAB can do random playback, but do I need to load a plugin for each random element group? (e.g. one for weather and one for action). As it is, the number of plug-ins becomes very large as the number of element groups increases.

I have audio data in one asset bundle; can I change the target element for each trigger with one plugin load?

Sorry for the unnatural text as I am using a translation service. Thank you.
I think you are looking for the SoundFromAB brick. It relies on the folder structure inside the AssetBundle.
 

Similar threads

Back
Top Bottom