It's the first "proper" release of the year, and it's a very tech-y one. The focus this time is on workflow improvements and customisation options, so there's a lot to read about below. If you're just here for the bugfixes, just give the upgrade notes a once-over and download.
First, though, I'd like to draw your attention to the brand-new
Adventure Creator trailer! The old one was getting almost embarrassingly out-of-date, so this new video highlights many of the new features that AC has to offer (as well as some brief clips of some great-looking games being made with it). If you have a moment, please consider sharing it on your social-networking site of choice - just a
Retweet would be a great help.
Now, then..
Parallel Actions
The new "Engine: Run in parallel" Action allows you to run subsequent Actions in parallel. This was already possible by limiting each "chain" of Actions to a separate Cutscene, but now you can run multiple chains within the same list. Cutscene-skipping also works with this Action.
Node-based Conversations
Conversations have always required that the various responses be placed in separate Dialogue Option AcitonLists. No more: while the old method of linking an option to an ActionList still exists, such lists are considered the "default", and can be overridden with the "Dialogue: Run conversation" Action. This means you can trigger a Conversation, and handle all the responses, within the same ActionList.
Quick Time Events
QTEs were always a bit fiddly to make up until now, but the new "Input: QTE" Action makes it easy. Single keypress, press-and-hold, and button-mashing QTEs are supported, and a Menu can be displayed for it's duration. If the Menu is a Unity UI, it can play animations for the various states (win/lose/press etc). The website's
tutorials have been updated to go over the new workflow, and it's also featured briefly in the new
trailer (did I mention the new trailer?).
ActionList workflow improvements
You can now opt to have multiple ActionList Editor windows open at once - each locked to a different ActionList - allowing you to view/edit multiple at the same time. Enable this at the top of the Actions Manager. The Editor window now has a "padlock" icon at the bottom, which will lock itself to the ActionList it currently displays. The Hierarchy window also now has icons beside each ActionList, allowing you to quickly open an Editor window.
Active Inputs
You can now tie a keyboard (or controller) button press to an ActionList asset - via the new Active Inputs Editor available in the top toolbar, under Adventure Creator -> Editors. You must specific under what condition (e.g. during gameplay, a cutsceene, etc) an input is accepted - if you need a certain input to be allowed during both gameplay and cutscenes, just create one for each.
Custom motion controllers
There's no end to the number of motion controller assets out there, so it's impossible to add official support to each of them. So instead, AC now makes it much, much easier to link up your favourite controller with just a few lines of code. A tutorial that adds support to the popular Motion Controller asset is available
here.
Custom saving
It's now very simple to extend AC with custom saving - both global and local data. Local data is handled by writing custom Remember scripts, while global data is handled by attaching custom implementation scripts onto the PersistentEngine prefab. Saving local data is covered in
this tutorial, and saving global data is covered in
this one.
Texture-based lip-syncing
With the release of
Grim Fandago Remastered bringing back old memories, AC now has the ability to perform lip-syncing by swapping out textures on a 3D model.
AlignToCamera script
Those making 2.5D games have a new script that should be a big help when laying down scene sprites. AlignToCamera will automatically rotate a sprite so that it faces the camera, and provides a depth slider. If you increase the depth, the sprite will move farther away - but will get larger as it does, making it appear the same size from the camera's perspective.
Comments
Upgrade notes
- Animated Unity UI-based Menus require an Animator with specific state names, rather than specific parameters - see the AnimatedMenu_Example controller
- Custom animation engines now require the name of the script to be explicitly named in the Player / NPC inspectors
- Custom Actions that override the End function must now return an ActionEnd class, rather than an integer
Input- Added: “Active Inputs Editor” - use to define input buttons that, when pressed, trigger ActionList assets
Actions- Added: “Engine: Run in parallel” Action - use to run chains of Actions in the same list simultaneously
- Added: “Input: QTE” Action - use to easily add Quick Time Events
- Added: “Engine: Check ActionList” Action - use to determine if an ActionList or ActionList asset is running
- Added: “Hotspot: Change interaction” Action can now make use of parameters
- Changed: “Run in parallel” option in “Engine: RunActionList” Action has been removed
- Fixed: “Object: Transform” Action not always being precise when moving an object over time
ActionLists- Added: Option for scroll-wheel to pan ActionList Editor windows, not zoom
- Added: Actions marked as disabled in the Inspector are now highlighted red in the ActionList Editor window
- Added: Option to allow multiple ActionList Editor windows to be open simultaneously - found in the Settings Manager’s Debug settings
- Added: An ActionList Editor window can be locked, so that it always shows the same ActionList
- Added: Auto-create button to ActionList asset fields within Managers - creates an asset file within the current Project director
- Added: Icons beside ActionLists in the Hierarchy window to quickly open an ActionList Editor window
- Changed: The scroll-wheel now pans the ActionList Editor window by default
- Fixed: Connections sometimes breaking in the ActionList Editor when an Action’s type is changed
- Fixed: Various errors related to skipping complex chains of ActionLists
Speech and language- Added: Option to “Dialogue: Run conversation” to override dialogue option interactions
- Added: [continue] speech token - place in dialogue text to play in the background from that point onward
- Added: Background speech can be played simultaneously with regular speech (though only the last-called will be displayed in subtitles)
- Added: Subtitles can display at the same time as Conversation dialogue options (provided that the speech is set to play in the background)
- Fixed: Translation importing not always recognising special characters
- Fixed: Certain ActionList assets being overlooked by “Gather text” button in Speech Manager
Saving and loading- Added: Ability to implement custom save and load hooks, for saving/restoring custom global and options data
- Added: Ability to write custom Remember scripts, for saving custom scene data
- Added: Ability to run an ActionList asset after loading a saved game
- Added: Icons beside scene objects marked for saving in the Hierarchy window (can be disabled in Debug settings)
- Fixed: Game pausing when loading a save file requires switching scene
- Fixed: GameCameras not snapping to the intended Field Of View after loading a saved game
Menus- Added: “Type” setting to Menu Timers - use to display QTE “progress” and “time remaining” bars
- Added: Option to invert a Menu Timer’s value
- Added: Variable selector GUI to Toggle menu elements
- Fixed: Word-wrapping issues with InventoryBox menu elements
- Fixed: Menus of position Aligned and size Automatic having incorrect positions if their size changes mid-game
- Fixed: Animated transition issues with Unity UI-based Menus
- Fixed: EventSystem being created upon starting a scene even if no Menus make use of Unity UI
Characters- Added: New Player / NPC animation engine option: Custom
- Added: Ability to hand over per-character motion control to a custom script
- Added: Ability for Player prefabs to make use of Character Controller components
- Added: Public functions to Player / NPC scripts to get desired motion
- Added: “Edit-mode preview?” option to Follow Sorting Map components - check to update a Character’s sorting order and scale while in Edit mode
- Fixed: Turn speed property for Sprites Unity characters having no effect
- Fixed: Characters not taking the optimal path to return to a Polygon Collider-based NavMesh if they leave it
Lip-syncing- Added: Ability to animate a 3D Character’s texture when lip-syncing (for e.g. Grim Fandago-like models)
- Fixed: Lip-syncing not working for characters animated with 2D Toolkit
Sound- Added: RememberSound script - add to Sound objects to save and restore their audio clip states
- Added: If a Sound is set to survive scene changes, it now retains its playback time
- Added: Option for “Engine: Play sound” Actions to be ignored if the affected Sound object is already playing the intended audio clip
- Added: Option for Sound objects to survive scene changes is no longer limited to just those that play music
- Added: Sound objects now respond to “TurnOn” and “TurnOff” commands from the “Engine: Send message” Action
- Fixed: Duplication error if a Sound that’s set to survive scene changes returns to the original scene
Hotspots and Interactions- Fixed: Cursor lock not being set correctly when switching to First Person movement mid-game
- Fixed: First Person head-bobbing effect continuing while game is paused
Cursors- Added: Ability to exclude Icons from Cursor cycling in Choose Interaction Then Choose Hotspot mode
- Fixed: Mouse cursor being able to leave the game window when free-aiming in First Person / Ultimate FPS
- Fixed: Alternative Inventory labels not always overriding the item name
- Fixed: Misleading error message when the main cursor has no texture assigned
- Fixed:
Other“Cycling Cursor And Clicking Hotspot” option showing wrong cursor if
the first Interaction is disabled when the game begins
- Added: Option to “Third-Party: Cinema Director” Action to override AC’s camera for the duration of a Cinema Director Cutscene
- Added:
- Added:
- Added: Static functions to GlobalVariables and LocalVariables scripts to read and write popup variable types
- Added: Static functions to KickStarter script that change the active Managers mid-game - see Manual’s section 12.7
- Changed: NavMesh and Player prefab warnings now only display if appropriate when a scene begins
- Fixed: Settings Manager sometimes throwing errors when working in Windows 7
- Fixed: Objects with the Parallax2D script component having a “stuttering” effect
New tutorialsAlignToCamera script - attach to sprites in 2.5D games to automatically
align themselves to a camera and easily adjust their depth
When a game is run for the first time on a new system, the Options data
set in the Settings Manager are used as the default values
- Saving custom scene data
- Saving custom global data
- Adding a custom motion controller
- Creating Quick-Time Events (2)
Trailer!Thanks a lot!
Many thanks for all the awesome work Chris!
The "Package Contents" box on the asset store page lists the new files that come with this update (e.g. Scripts/Actions/ActionParallel.cs), but I'd feel better to hear it's working.
@2finger: It will automatically update.
I have some problems with update ... My game stop work ... I get a erros like :
NullReferenceException: Object reference not set to an instance of an object
AC.StateHandler.Update () (at Assets/AdventureCreator/Scripts/Game engine/StateHandler.cs:123)
I don't any idea whats that mean ...