Forum rules - please read before posting.

Version 1.38 - Physics puzzles, new Scene Manager and many smaller refinements

edited August 2014 in Official news
It's that time again!  This update is one of the largest yet for AC, adding some big new features, and a heap of more subtle refinements and fixes.  So without further ado:

Physics puzzles
Inspired by the mechanics of games like The Room and Amnesia, 1.38 brings Draggable and PickUp objects, that can be "held" by clicking/touching and dragging around the screen.  While PickUps can be moved around freely, thrown, brought closer to the camera, and rotated, Draggables are constrained - mainly along Tracks that limit their movement.  For example, a Hinge Track will limit a Draggable object such that it can only be pivoted - allowing for interactivity such as doors and levers (especially nice in first-person games).  A bunch of associated Actions and new prefabs have been included, and tutorials will be added soon to demonstrate their use - but for now, the manual covers the basics.

New Scene Manager
With the new Moveable prefabs, the old prefab list in the Scene Manager needed a makeover.  Aside from some classy icons and descriptions, existing prefabs can now be listed directly in the Scene Manager, allowing for existing e.g. Cutscenes to be quickly selected without resorting to wading through the Hierarchy window.

Object instantiation
The new Object: Add or remove Action can be used to instantiate prefabs at runtime, or delete existing scene objects.  The RememberTransform script has also been upgraded to optionally record such changes - so long as the object in question is placed in a Resources asset folder, it can be brought back into the scene when loading a saved game if was previously deleted.

Improved teleporting
A subtle improvement, but the Object: Teleport Action can now be used to transform objects relative to the player, or the camera.  The hope is that this feature, combined with the new Draggable prefab and the object instantiation feature mentioned above, it's now possible to incorporate "Inventory close-up" gameplay without switching to a different scene.

Improved Triggers
Another subtle addition, but one that should have been made some time ago.  Triggers can now be used to detect more than just the Player, whether it be any object, a specific object, or any object with a particular component.  And for those who make use of ActionList parameters, the Trigger's ActionList can now use the detected object as a parameter.

Custom highlighting
A feature for shader coders: the Hotspot highlighting effect can now be customised.  The Highlight script now has a public function that outputs it's intended highlight value, and can be made to not affect it's associated object at all - leaving it up to a custom script to do the effect instead.

Comments

  • And the full changelog:

    Upgrade note:
    • Third person cameras with a Pitch rotation of Free must be changed to Limited - otherwise they will be unconstrained
    • Added: Drag objects - Move objects along pre-defined Tracks, along planes, or rotate around their centre to examine them
    • Added: Straight Track prefab - Use to constrain a Drag object along a straight line, optionally adding rolling or screw effects
    • Added: Curved Track prefab - Use to constrain a Drag object along a circular line
    • Added: Hinge Track prefab - Use to constrain a Drag object's position, only allowing it to rotate in a circular motion
    • Added: PickUp objects - grab, rotate and throw objects freely in 3D space
    • Added: "Moveable: Check track position" Action - use to check how far along a locked track a Drag object is
    • Added: "Moveable: Move along track" Action - use to automatically move a Drag object along a fixed track
    • Added "RememberMoveable" script - attach to Moveable objects to record their position, transform and position along a track
    • Added: New prefab organiser to Scene Manager - use to access prefabs in the scene, and name new prefabs on creation
    • Added: "Object: Add or remove" Action - use to add prefabs to, or delete objects from, the current scene
    • Added: "Object: Check presence" Action - use to determine if an object or prefab is present in the current scene
    • Added:
      RememberTransform scripts now have the option to save an object's
      presence in the scene (to instantiate/delete automatically)
    • Added: "Graphic" menu element - use to display animated and static textures in a Menu
    • Added: "Hotspot label override" text for Buttons - replaces Hotspot label when cursor hovers over
    • Added: Ability to affect child objects when using Object: Send message Action
    • Added: When changing an Actions type, it's "After running" settings are retained
    • Added: Animated texture speeds are now stored as floats, rather than integers, for finer tuning
    • Added: Ability for GameCamera Third Person to be drag-controlled
    • Added: More rotation types for GameCamera ThirdPerson
    • Added: Offset angle field to GameCamera Third Person when spin rotation is locked behind target
    • Added: Deceleration fields to GameCamera Third Person
    • Added: Smooth-stopping when GameCamera Third Person pitching reaches limits
    • Added: Mecanim-based Characters can now have their walk and run speeds changed with Character: Animate Action
    • Added: Mecanim and Sprites Unity Complex-based Characters can have their change in vertical position sent to a Mecanim parameter
    • Added: Object: Transform Action can now use a Marker as a target
    • Added: Object: Teleport Action can now be used to teleport objects relative to the active camera and the player
    • Added: Triggers can now be set to detect other GameObjects, or GameObjects with a specific component, as well as the Player
    • Added: Triggers can now use the colliding GameObject as a parameter
    • Added: "Dialogue: Stop speech" Action - ends all speech and subtitles instantly
    • Added: "Character: Rename" Action - use to rename a Character's "speaking name" in subtitles
    • Added:
      Option in Speech Manager to display speech text indefinitely until
      player responds (unless the speech is set to "Play in background")
    • Added: Option in Settings Manager for Inventory combination Interactions to work in reverse
    • Added: Option to Settings Manager for Inventory items to show active texture when cursor is over them, even when unselected
    • Added: Multiple instances of the same Inventory item can optionally be displayed in separate slots
    • Added: "Character: Change rendering" and "Character: Face direction" Actions now work for diagonal directions
    • Added:
      If a ConstantID or Remember script is added to an object with a script
      already attached, the same "constant ID" number is used
    • Added:
      GetHighlightIntensity public function to Highlight script - use to
      perform custom shader effects when objects are highlighted
    • Added:
      Brightening of an object's materials due to Highlight script is now
      optional, so that the effect can be overridden through script
    • Added: Alphanumeric Input boxes now have the option to accept spaces
    • Added: Option for Input boxes to enter text right-to-left
    • Added: Input boxes no longer have a character limit
    • Added: Menu Buttons set to offset Inventory or Dialogue elements can now offset by any amount
    • Added: "AC" namespace to all Actions, in preparation of Unity 5 compatibility
    • Fixed: "Engine: Change scene setting" Action no longer working
    • Fixed: Inconsistencies with loading data from objects with multiple ConstantID or Remember scripts
    • Fixed: All Input boxes being simultaneously affected if multiple are on screen at once
    • Fixed: Camera: Switch Action not skipping if it's already running when skipping begins
    • Fixed: Previous camera being switched to if a Camera: Fade Action is called while a Camera: Crossfade is running
    • Fixed: Variables being editable during gameplay if "Show realtime values?" is checked
    • Fixed: Debug logging when using Player: Switch Action to restore previous Player data
    • Fixed: Tokens in scrolling dialogue speech not updating until all speech is displayed
    • Fixed:
      DialogList elements that display a fixed option showing the first
      Conversation option if the chosen number is not available
    • Fixed: Characters not always being correctly rotated after skipping Character: Move to point Action
    • Fixed: Examine cursors not animating in Context Sensitive mode
    • Fixed: Shaking effect if the opening Cutscene relies on a GameCamera that's influenced by the cursor's position
    • Fixed: Console errors from GameCameras when no Player prefab is present in the scene
    • Fixed: Console error from GameCamera2D when viewing Inspector
    • Fixed: Various errors related to pausing Menus being turned on and off using the Menu: Change state Action
    • Fixed: Menus not always turning off due to Menu: Change state Action if the Action was skipped
    • Fixed: Errors when creating new Interaction menu elements
    • Fixed: Poor rotation transitions when using Object: Transform Action
    • Fixed: RememberTransform script not un-parenting attached object when loading if the object was saved with no parent
    • Fixed: Certain Trigger types still working even when Engine: Manage systems is used to disable them
    • Fixed: Cutscenes with a start delay causing blocking gameplay indefinitely if the Cutscene itself has no blocking Actions
    • Fixed: Menu element hover sounds not always playing
    • Fixed: Conflict between camera fades and Menus that pause gameplay
    • Fixed: Not all Straight To Cursor options appearing in Settings Manager if the Input method is Touch Screen
    • Fixed:
      Asset-based Actions' "After running" field expecting a Cutscene, not
      another asset, if viewed in the ActionList Editor window
    • Fixed: Subtitles appearing in next scene, if they were being displayed just before a scene transition
    • Fixed: "Play while game paused" option on Sound objects finally works!
  • edited August 2014
    Wow lots!

    So will the "Drag object" features work for 2D as well as 3D?
  • great update!!!
  • Wow, solid list of updates. The new Draggable and PickUp options should solve several problems I was trying to work through, so glad to see those features make it in! I am quite pleased to see that you are preparing for Unity 5 as well. Keep up the good work! 
  • Excellent update, Chris. The physics stuff is really fun! My old-man-character just got the ride of his life. :)
  • @Xidore: No. Currently the drag features are 3D only.

    Just found that you'll get an error if you try to build a game with 1.38.  Always something!  Just made a fix in the form of 1.38a, so look out for it shortly - Unity are generally very quick to approve submissions.
  • "Currently" there's hope that 2D support for them may come eventually then? :)
  • Great update! You've been working hard on this haven't you :) I can't wait to get to my next game where I can use some of these sweet features.

    I did find some little problems - the set sprite scale option in the Character: Change Rendering action doesn't work anymore. And one other thing I posted about here.
  • Thank you so much for adding the Physics Puzzle element to AC!!!
  • Scene manager looks good, can't tell you how happy we are about Physics Puzzles!
  • Great work, Chris. Can't wait to try it out.

    Cheers
  • Welcome!  Will be coming out with a minor "b" release in a while - the big updates always need a bit of fine-tuning afterwards.

    @Xidore: Never say never.  But new features invariably take time to get refined and stable - I definitely want to have the 3D features perfected before thinking about 2D.
  • New tutorial! Making an Amnesia-style door
  • Oh man when I played the first Penumbra I dreamt of the day I could make a door like that. And now it's totally easy :)
  • Version 1.38b is out, essential for those making 2D games, as it fixes the recent problems with NPC sprites:
    • Added: Public function SetMoveSpeed to Char script - use in custom scripts to force a Character's movement speed
    • Added: Menu Manager automatically removes Menus and Elements that have been unset but are still in the asset
    • Fixed: Creation of new Menu Elements not being recorded in Undo buffer
    • Fixed: Various issues related to sprite-based NPCs
    • Fixed: Higher values of Speech Manager's Text scroll speed value not resulting in a faster speed
    • Fixed: Occasional errors when drawing drag lines on Windows platforms
    • Fixed: "Draw drag line" setting not being registered in Drag-control games
  • Hi Chris, I'm still having problems with the player-vicinity-based hotspot detection not working in 2D. Hotspots are working fine in mouseover mode, then I switch to player vicinity and they both stop displaying and stop working (can no longer interact). My player prefab has a child gameobject with a circle collider 2D trigger component, as well as the detecthotspots scripts, and it's set to untagged and ignore raycast. Doesn't seem to make a difference whether I set it to point-n-click, or direct (w/ either keybord&mouse or keyboard/controller).
  • edited September 2014
    Another bugfix update: 1.38c fixes a major issue when building for WebPlayer.

    @DieHappyGames: Are your Hotspots also the 2D equivalent?  Please post your reply in a separate thread.
  • Great additions, as usual! Thanks for your continued work and support!

  • edited October 2014
    Hi! A quick question: is there a way to pick up an object WITHOUT holding the left button? It becomes a little tiring...
    also it seems that if the object touches a collider while holding it becomes a little crazy...
  • @David: No, but it wouldn't be beyond reasonable to add such an option.  Would you suggest this just for PickUp objects, or Draggables too?

    Could you elaborate in a separate thread what you mean by crazy?  There's so much involved when it comes to physics objects, that I'll need a bit more to go on.
  • edited October 2014
    Hi, thank you for answering :). I think it would be good if you could pick up an object just by clicking on it once, and another click drops it. It could be useful for draggables too, definitely.

    About the objects going crazy, basically it seems that sometimes I could "force" an object to pass through a collider, like the floor or other stuff, I'm not sure why that happens. But thinking twice about it, it may be a problem with my collider, or maybe I should experiment with the Mass value\Collision Detection type...
    edit: actually, I just tried to hold the rock in front of my FPS player, and if I try to walk towards a collider, like the library, when the object (the rock) touches it before me, it makes my player bounce back at 100 km/h, lol... this is probably a problem of Unity physics though

    One thing that I noticed, instead, is that when you are rotating an object with a first person camera, you can still move while the object stands still (until it falls when you move too much). Is there a way to temporaly "freeze" the player keyboard movement while I'm rotating an object?
    And for some weird reason, if I use RotateMoveable instead RotateMoveableToggle, I can still move but only forward (!?).... sorry if it sounds complicated. I tested this following the pick up rock tutorial, if you want to replicate.
  • Yes, I've been looking into "freezing" the camera while dragging moveables for 1.40, and there'll be a number of fixes and refinements related to draggables.

    With regards to the "forcing through" effects: AC is still dependent on Unity's physics engine, so the "quirks" shall we say still apply.  To really refine things, you have to tinker with settings such as the Solver Iteration Count within your PhysicsManager, just as you would with any physics-based logic in Unity.
  • Looking forward to it =). And thank you, I'm going to try that.
  • On the physics demo, I can open and shut a drawer but that's all, movement's locked.

    Could not find menu of name 'Exit closeup'
    UnityEngine.Debug:LogWarning(Object)
    AC.ActionMenuState:Run() (at Assets/AdventureCreator/Scripts/Actions/ActionMenuState.cs:170)
    AC.<RunAction>c__Iterator1:MoveNext() (at Assets/AdventureCreator/Scripts/ActionList/ActionList.cs:211)

  • Sorry to interrupt but I had another idea for Chris. It would be nice if you could pick up an object and tell the game to "assign" it to a bone instead of necessarily show it in front of you, much like you can already do through Actions from what I remember. Ignore this post if this is already somehow doable :p
  • edited November 2014
    @terrymorgan: Have you assigned the Physics demo's own set of Manager files before running the scene?  Be sure to select "PhysicsDemo_ManagerPackage" and assign the managers using the Inspector.

    @David: I'm not clear what you mean - please elaborate in a new thread in Engine Development.
  • @Chris,
      I clicked on 'assign managers' (but they looked already assigned), got hung up in the game window, made a build of it and it ran, took a while to flip the rock over, is there a way to turn off the music? Also had to
    ctrl-alt-delete to get out of it. Nice job otherwise.
  • Don't forget you need to map the "r" key to the "RotateMoveable" input axis - this is how you flip the rock over.  Please check the included readme file.

    The music volume isn't controlled in an Options menu like the other demos, since that's not the focus of it.  But at the bottom of the Settings Manager, you can control the volume levels for the game manually.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Unity's Adventure Creator.