Version 12 just adds a small feature to the ValueRelay brick.
Changelog for LogicBricks v12
- ValueRelay: Adding RangeMin/Max sliders, so you can remap the value range. This allows you to adjust range of a float trigger via trigger.
- Updated demo scenes to refer current versions of packages.
Version 11 introduces two new bricks, SequenceMachine and SequenceChoice.
Changelog for LogicBricks v11
- SequenceChoice: Similar to RandomChoice and SelectChoice. However, each time it's triggered, it executes the next item in the sequence. There is also a RandomShuffle option. This was a request by @lapiroman.
- SequenceMachine: This is a variant of the same, but with more powerful options. It's similar to StateMachine, except transitions are fixed so states are gone through in sequence. This makes handling this common case a lot easier. Again, there is also a RandomShuffle option.
- New example 26, see video. Demonstrates how SequenceMachine could be combined with SuperShot (from Essentials) to automatically take screenshots in different poses, light settings, etc from a single button click. Perfect for creators who want to quickly produce screenshots to show off their clothing, looks or hair. Or maybe simply for quick quality control to make sure everything fits as expected.
Among other things, two new bricks for LogicBricks. These will be needed for the Benchmark project to reduce motion sickness as much as possible. Due to the locked VR head tracking, motion sickness is a problem in that scene you usually would not have to this degree. So I need to use every trick in the book, at least those that won't affect benchmark results, to reduce it as much as possible. In this case fading to black before teleporting the player. However, we all know VaM's jerky loading, so nicely covered up scene transitions this will be useful for lots of other scenes. So it made sense to add this to LogicBricks.
Changelog for LogicBricks v10
- ScreenFade: New brick that can fade the entire scene to any color. Nice to cover up loading transitions, see video above, or other things like player teleports or simply helping with telling the story of your scene.
- LoadingDelay: New brick similar to the good old Delay, except that it internally resets its timer while there is any loading in progress. So you trigger it before you start loading stuff and get a trigger back X seconds after loading finished. The extra delay allows you to wait for hair/clothing/body physics to settle into place.
- EventAudioQueueEmpty: Added option to retry every frame while the queue is empty. This solves the problem that VaM may report everything is "fully loaded", and you can trigger audio already, except nothing happens because the audio is not yet there. So if you want to play music when your scene launches and immediately schedule a new track once the previous one is finished, this is your thing to trigger that.
- Timer, RandomTimer: Reset timer on re-enable.
- Delay, Blend, Loop (and RandomX variants): Reset bricks on being disabled. Fixed bricks not being able to trigger themselves.
- Separated the example scenes into its own VAR package. This way I can use Life and IdlePoser in the examples without having them as dependencies for the main package.
- Reworked example 24, instead of weird and unpractical stacked AnimationPatterns its now using IdlePoser. So, its an all-in-one example showing how you can combine StateMachine and ValueUpDown to control animation of IdlePoser, also using Empty atom anchors animated by LinearAnimation bricks and TriggerSync to keep the state changes synced.
- New example 25, see video. Demonstrates how to use the new LoadingDelay and ScreenFade bricks to make nicely smooth loading scene transitions. Of course backed by a StateMachine brick.
As said in my Monthly Report, I started producing video tutorials. The first 3 cover a bit of LogicBricks as well as a more generic introduction to VaM's trigger system, which is kind of a requirement to understand LogicBricks. Find them here:
This page will gather my hopefully growing collection of video tutorials about various VaM topics. "Pay after watching, IF you liked it!" Producing quality video tutorials consumes a LOT of time. Just producing 10min of video takes about 6-8...hub.virtamate.com
Another maintenance release.
- StateMachine: Added UI toggle "Show Advanced Options". This hopefully makes this very versatile plugin less intimidating to use, if the more complex options are hidden by default. First I considered releasing a "SimpleMachine" variant of this brick, but a toggle takes less long-term maintenance effort and also you can switch easily at any time. The label turns red if you have some advanced options not at their default but you are hiding them.
- EventSceneLoad: Fixed issue with not triggering after scene load when LogicBricks had not yet been given permission to run.
A SpeechRecognition brick and the EvilCorpHQ scene have been released as separate packages. This can recognize simple keyword lists as well as more complex grammar using Windows 10 and Unity's speech recognition features.
More details here: MacGruber.SpeechRecognition.1.
(Watch video with sound!)
Just a quick maintenance release.
- StateMachine: Fixed SetStateDisabled trigger not resetting.
- EventSceneLoad: Added options to trigger only for VR/Desktop mode. Allows you to do different things depending on whether you are in VR or Desktop.
- EventSceneLoad: When have not yet given LogicBricks permission to run when loading a scene, the plugin will not trigger properly. Other plugins might have similar issues anyway. To make sure everything is working as intended, simply reload the scene again once all permissions are granted.
There is now a new more elaborate separate demo scene named CyberNight that shows how to build branching multiple-choice dialogs. Please excuse the poor dialog, I'm a coder, not a Hollywood writer. Anyway, you got a couple of branches (see diagram) that kind of make sense and in the end converge to "happy action"...which is a slightly improved version of the Life demo scene ported into this environment. The intention here was a not too complicated demo on how you could structure branching dialog scenes using LogicBricks, while still having a decent scene.
- StateMachine: Concept of multiple transition sets. By default a state waits for its timer to run out and it would select a random transition, this is now called the "Default Timeout" choice. In addition there are now choices A,B,C,D,E and F which each got their own transition sets. The State will for example select randomly among the A transition set, if it receives a SetChoiceA trigger signal. There is also a SetChoiceA_and_Wait variant, which still lets the state duration run out before switching. Obviously this is what makes branching scenes with multiple-choice dialogs possible, the input could come from buttons, but also collision triggers or whatever you can think of. (This was originally teased under the name DialogMachine before, but I decided to integrate it directly into StateMachine to reduce maintenance efforts in the long-term. StateMachine is a super complex plugin by now, I can't afford to maintain two of those. However, I'm thinking about adding a switch that hides the more complex UI options to avoid it being too overwhelming, but that will be a later update.)
- StateMachine: Concept of enabled/diabled states. This prevents the StateMachine from choosing a transition to this state, it's mostly intended to disable branches of your scene during development while you focus working on a particular part. However, this can be accessed via triggers as well, so it can be used for other purposes. Use triggers SetStateEnabled/SetStateDisabled with the name of the state or alternatively SetStateEnabledAll/SetStateDisabledAll to switch them all at once. Disabled states appear with red font color in the various UI drop-downs.
- StateMachine: Restoring the current state while saving the scene instead of switching to a specially marked initial state. OnEnter actions are no longer called on load. This bring UX closer to IdlePoser which does the same and also makes it easier to store your scene in a save state.
- StateMachine: Added Duplicate button to clone a state including all data, transitions and triggers.
- StateMachine: Added SkipState button to jump to the end of the timer. Helpful when debugging scenes and you want to skip ahead to a particular part.
- StateMachine: Improved error messages when trying to switch to an non-existing state.
- StateMachine: Minor performance improvement by not updating the UI, if the UI is not actually visible.
- RandomChoice: Added Duplicate button to clone a choice including all data and triggers.
- SelectChoice: New brick similar to the RandomChoice, except that the choice is not random, but based on a drop-down parameter you can set via trigger. Basically its a "switch" statement you might know from many programming languages.
- SelectChoice: Added Example11 to the included demo scenes to demo the SelectChoice brick.
- ValueThreshold: This brick was already hidden in the DoubleTrouble release and was now officially added to LogicBricks. It allows you to fire a trigger when a float value crosses a particular threshold, the DoubleTrouble scene uses it for lube audio effects of the handjobs.
- RandomSound and RandomSoundFromAB: Choose between the various audio play modes VaM offers like "PlayNowClearQueue", "PlayIfClear", "QueueClip", etc.
- RandomSoundFromAB: Added "AddAll" button to make it easier to add an entire AudioBundle at once.
- RandomSound and RandomSoundFromAB: Using twin buttons for more efficient use of UI space.
- Updated MacGruber_Utils.cs to the most recent version to have all the fixed here as well.