LogicBricks v7 and CyberNight demo scene
Added 2021-05-10 17:47:51 +0000 UTC
LogicBricks is a collection of now 27 reusable logic plugins to quickly build simple logic without coding. These go from a simple Relay that just groups triggers via Counter and Blend to more complex bricks for RandomChoice and a very powerful StateMachine brick. There are three demo scenes with altogether 24 examples to spawn some ideas.
Additionally 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 lead 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.
Changelog
- 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.
Dependencies for CyberNight
- You need LogicBricks.7 attached below obviously, but otherwise all the needed dependencies can be found for free on the Hub, just use VaM's handy "Scan Hub For Missing Packages" function.
Credits for CyberNight
- AcidBubbles (Glance and SpawnPoint plugins)
- JoyBoy (Nat look)
- Hunting-Succubus and kemenate (indirect dependencies through Nat look)
- MeshedVR (various VaM native assets)
Download
- This is an EarlyAccess release! Download will be available for free under CC BY-SA license after 2021-05-24. You are allowed to reference this package in your own VAR packages, even if they are paid or use a different license. Links to my Patreon are always appreciated.
- Beware of some browsers mistakenly renaming .var files to .zip when downloading from Patreon. More details on how to install VaM content and missing dependencies here.