It seems that whenever I try to make my own game in AC, I get about five minutes in before realising it's missing a small but important feature. So, this update has a number of such things: nothing major, but a fair few small improvements all round.
Variable: Check random number ActionIt was suggested on the forum to have an Action that plays random lines of speech, but this Action widens that possibility. You can set as many output sockets as you like, and one will be picked at random. This'll make it much easier to have things occur at random.
Menu: Check state ActionPreviously, if you wanted to have a Menu Button that toggled another Menu on and off, you'd have to mess around with Variables and so forth. Now, no need: just use this Action to see if the Menu in question is already on, and turn it on/off accordingly.
Improved 2D pathfindingPolygon Collider-based NavMeshes now make use of the Djikstra algorithm, which is a fancy way of saying it's more reliable when gaps in the NavMesh are involved. If performance and quality tests well, I may upgrade the Mesh Collider pathfinding similarly.
More ActionList parametersString-based parameters can now be sent to the Menu: Change state and Input: Check Actions, making it far easier to have complex QTE events. A tutorial will be up in a while, in the meantime
a new one was created for "simple" ones without parameters.
And the rest...
Upgrade notes:
- "Do outline" checkbox in Menu Elements has been replaced with "Text effect" popup, to allow for more options
- "Restore previous" option from Player: Switch Action has been moved from a popup to a separate checkbox, all instances need correcting
- Added: Variable: Check random number Action - use to run subsequent actions at random
- Added: Menu: Check state Action - use to check if Menus and Elements are hidden or locked
- Added: Character: Face direction Action - use to make a Character face a direction relative to the camera
- Added: Ability to add and remove Polygon Collider 2D holes from 2D NavMeshes with Engine: Change scene setting Action
- Added: RememberNavMesh2D script - add to 2D NavMeshes to save changes in holes
- Added: Ability to set individual screen proportions when using Camera: Split screen Action
- Added: When using Menu: Change state Action to change a Menu's visibility, pausing is now optional
- Added: When using Menu: Change state Action to lock a Menu, fading out is now optional
- Added: Ability to set an overriding "Speaker name" for Characters - see Dialogue settings in Inspector
- Added: String parameters can now be declared and used by Menu: Change state, Menu: Check state and Input: Check Actions
- Added: Float parameters can now be declared and used by Engine: Pause game Action
- Added: GameObject parameters can be used by Engine: Run ActionList when running scene-based ActionLists
- Added: Ability to add shadow effect to Menu Elements - "Text effect" replaces "Do outline" setting
- Added: Ability to set the new Player's position if first time present in game when using Player: Switch Action
- Added: All Label menu elements now support Variable token replacement
- Added: Interaction menu elements now support animated Cursor Icons
- Added: Option when using Touch Screen mode for the cursor to be draggable, rather than be underneath the touch position
- Added: Option for single-clicks to move Player when using Straight To Cursor movement (default is just when click is held)
- Added: Ability to paste copied Menu Elements onto a Menu with no Elements to begin with
- Fixed: Variable: Check Action breaking when comparing Global Variables
- Fixed: Various issues related to Polygon Collider pathfinding
- Fixed: "On Load" Cutscene not being called when loading a new scene due to switching Player prefab
- Fixed: Per-Player camera data not being restored when switching Player prefab
- Fixed: Momentary animation glitches when switching to 2D or Legacy-based Player prefabs
- Fixed: Changes in Character portrait graphic, movement sounds and Legacy "Standard" animations not always saving correctly
- Fixed: Characters very rarely sliding indefinitely after reaching destination
- Fixed: Minor issues with Menus with Position type set to On Hotspot
- Fixed: Removed warnings if Run or ToggleRun inputs aren't defined - Settings Manager's listing of available inputs is enough
- Fixed: Not being able to Kill delayed ActionLists
- Fixed: Menus with appear type set to During Gameplay not always obeying transition settings
- Fixed: "Search scenes" button for finding objects referenced in ActionList assets not appearing in certain Actions
- Fixed: GameCameras losing their target after using the Player: Switch Action
- Fixed: Cursor influence now works correctly for GameCameras that are rotated on local Z axis
- Fixed: Various issues when using Engine: End game to restart a game with multiple Player characters involved
- Fixed: Player: Constrain Action not affecting Player movement when using Straight To Cursor movement
- Fixed: "Stuttering" effect when using Ultimate FPS movement after a Cutscene that manually moves the Player
As always, backup before updating!
Comments
But for "random" conversations: I got a hunch that there might be something wrong with the process (or im the unluckiest person ever) for it seems that random rather means showing the same option 20 times in a row and show any other option 1 time and return to the 20 times shown option again. (this happened to me on a presentation of my game demo. It took me 5 minutes to show 3 dialogue options)
So a safety feature would be really great (which we can do with variables right now also, but since we are on the subject of little problems that sour the soup, i might as well say it out loud) to "checkout" the shown dialogues out of the choices to be randomized so every time we interact with the dialogue, a new option is shown rather than bumping to the same dialogue.
What i mean is, if we got A,B, C and D dialogue options, more than half of the time the dialogue A (or B or C or D) will get stuck and will be shown a lot instead of jumping to other dialogue options.
Like in the above presentation example i had dialogues A, B and C (just 3 options) and for some reason i had dialogue option B coming up quite alot and usually in row with the ratio of 7 out of 10 times comparing to 1 / 10 A and 2 / 10 C.
So i quickly moved out of "randomizing" approach and instead either go with one dialogue option after another (without randomizing values) or i add additional variable checkers with limited random number range which is again a just rose the chances of higher variables being shown more rather than ordering things up..
If this is not clear ill provide a picture to explain but to keep long story short, randomizing dialogue options has been and most probably will be not the best way to go if you are meaning to show every dialogue options.
Either player will not know that there is several answers you can receive from a Npc because it keeps giving the same answer over and over and over again (although its suppose to be random). Or even if they know there are several answes they can get from a NPC, they rather think the system is broken or they have not done something they should since NPC is answering the same think for the 10th time (usually they just let go after the 5th attempt even if they know they will receive more than few answers)
Ps. so Dijkstra, eh? you've got to love those graph algorithms :P
@TayannaStudios: Yes, look under the Touch Screen settings in the Settings Manager - it's called Drag cursor with touch?
@MaaS: Love em like the plague
I just want to say Chris that you are a genius. I am having so much fun with this. Best Unity asset ever! Thank you for all of your hard work!
@pysnoo: I'll consider it. It's likely something that'll happen bit-by-bit over time - once something works, I'm hesitant to change things that might risk problems.
I just had a quick look and couldn't find anything, can you change "Speaker name" through an action list? For example, I would have the speaker name set as "???" and then I would change it to "John Doe" at a certain point.
Sincerly,
Julian