A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by ChrisIceBox, Oct 9, 2013.
Cool very detail , very powerfull
i did it!
thank you so much Chris!
Hmmm wonder if anyone noticed this:
Having finally gotten around to playing with AC, I was running the 3D demo in the editor, and to test out the Save/Load functionality, I first picked up the sword and then tipped over the barrel. I stopped the game, then reran it, and when I hit Load I had the sword in my inventory, but the barrel was not tipped 'visually', but the game did consider it 'tipped' as I could select the invisible tipped-version of said barrel. (see image)
EDIT: Just to note I can replicate it starting over fresh.
Any chance of a video tutorial on several examples of using Gui menus in AC?
E.g- how to creat intro Input menus, or more elaborate use of AC gui system, or even your latest 3D menu.
Hi Chris, the new update solves most of my MenuActionList problems but I still can't reference a cutscene object through 'Variable: Check', there is no option for ID.
Multiple player characters with individual inventories sound really great..I was waiting for that feature to arrive. Thumbs up!
Chris, i bought 'After Effect Importer for Unity' asset to use it as 2d animation tool in my project and apparently this asset didn't work with Adventure Creator, can you give me sove advice, please
Cool! Looking forward to that one, it seems I could use it to change the appearance of the player character, which I've not worked out how to do yet.
Is there any way to change the double-click speed? It's a very short window at the moment.
Boy, having just read through the docs and tearing apart the 3D demo, I must say this asset can be quite powerful. Unfortunately, both more documentation and new, feature specific tutorials are going to be needed for most people to fully realize it IMHO.
The 3D demo is far too simple to truly appreciate the possibilities, especially with interactions and menus. I may slowly be able to pick at it and perhaps get somewhere, but honestly it would do this product real justice to have a fresh overhaul of the learning path.
Examples of tutorials that would be valuable:
Turn Off/Turn On AC - A simple usage to showcase extending AC beyond itself to integrate even small non-AC systems, to set variables and then Turn On AC again. You could perhaps use this to showcase using external Dialogue managers, which right now the available ones are fairly sophisticated and could really boost AC.
Menu System - Everything...pretty much going through what each Element can do what examples of how and when to use them. You define them in the manual, but that doesn't help instruct on their usage.
Any New Feature - You've added multiple Player Characters and 3D Menus for example...the docs should reflect this hopefully when 1.27 releases.
Hopefully you'll see this as constructive, as honestly I'm really quite impressed with whats here now that I've finally gotten around to digging into. There's just so much here and not enough education.
Good stuff, so lets keep growing this.
Yeah, I agree SteveB. It's a tough thing (that I know well as a software developer working in a completely unrelated industry) when you build a tool with a lot of user-feedback along the way. You end up making your tutorial/manual work obsolete or less useful in the process. People who've been following along from the beginning can piece it together if they keep up, but it gets harder and harder for newcomers. My company ended up having to rehaul our support system significantly to deal with this (better organized FAQs, videos, forums).
In addition to your suggestions, which I agree with 100%, the biggest problem I see is that the most useful source of discussion and info re: AC (outside of the manual) is here in a 30+ pg thread. I know I've read through this entire thread more than once trying to pick up on bits and pieces. A well-organized dedicated forum helps both the developer and enduser (I'd say 70% of support questions I get can be directed to our forum of FAQ without me typing much more than a few sentences). The forum over at moot.it is cool, but without Chris there it's not going to end up being the resource we're hoping for.
Finally, there's also a scaling problem I see with AC, which you touched on a bit as well. Like many tools, as soon as your needs go beyond a simple one-scene room, or a few dialogue choices, it feels much more like the wild-west. And ultimately the problems that some of us will face doing larger-scale projects end up becoming more nagging (dialogue system, extremely long variable lists, lack of setting vars with other vars, floating point vars, or basic math functions). It's tempting to dig in and customize AC with a bunch of new code, but the tool is being developed at such a rapid pace it doesn't yet seem like a prudent choice.
Of course... the amount of work saved (vs building a custom system) is immense, and AC is worth it's price and then some. I'm so grateful to Chris for this tool and hope he's making a good chunk on sales - he deserves it. Like you, I'm just hoping to see a thriving community for AC (like there is for AGS) with good tutorials and resources.
Actually dxmachina said it best, thank you! I definitely agree about the work saved, mind you...that's huge!
Four more questions before I forget and before Chris signs on so he can tackle all of our questions at one go:
I've been playing with the Xbox controls; upon toggling the cursor on/off, is it possible to have the cursor become invisible? Right now when the cursor is inactive (not moving with the right-analog) it just sits in the middle of the screen, rather distracting...
To note, the Xbox 360 Controller mapping in your manual is for Mac OSX, so the button numbers of course don't match for PC. Minor but I was confused and had to hunt down the wiki...
Where do you set the body Layers used in the Character: Animate action? I'd like to use Blendshapes for the facial animation (Face layer?), but the action seems geared towards skeletal animation. If you see my post in the 'Using Blendshapes' thread, Blendshapes that are animated in your animation software are exported as animation clips as well. Would it be as simple as dropping in the Blendshape clip for the face into the Clip: slot, or will you need to perhaps update this Action to fully support Blendshape animation (e.g. your Object: Animate action only supports setting a value for a single blendshape, not play an actual blendshape animation)
Dynamic Hotspots? I'd like to have a more physicallized world where objects can be knocked around, fall off shelves, have the player drop items, etc, and still be able to interact with them however I choose. Possible? (please don't say "Sure! By hacking my code!!" Hehe...)
Control Journal page turning with keyboard/controller inputs (e.g. Axis Y, arrow keys, AD keys, etc). I successfully implemented the Journal (this could use a tutorial as well for newcomers...its not hard but it isn't trivial) and I was able to add buttons to either side of the page to use Click Type: 'Offset Journal', but I couldn't find any other way to use alternative inputs.
Otherwise learned a lot tonight, yay!!
Thanks Chris, and again thank you dxmachina!
Correct me if I'm wrong, but can't you just root the hotspot to the object? I just tried a pretty simple example and the hotspot seems to follow the object if the object is its root.
That's quite an old bug, so I'm presuming you're using an older version. However, I recently discovered another bug related to variable saving, which will be fixed in 1.27, so best to wait for that.
You'll want to the Action: Send Message for this instead. Have the Variable: Check action continue or skip to a Send Message, and then send the "Interact" message to the cutscene with the ID.
Not without any more detail about it - is it a namespace issue?
No, but I'll expose it for you - it'll be in the PlayerInput script.
I agree, but with so many feature requests it's a battle to find time for it, especially since videos take a lot of time to make. Then there's the issue of tutorials quickly becoming out of date (the early 2D tutorials, for instance). The one thing I always make sure of is that the manual is up to date with every release. I have, however, begun looking into some interface improvements for newcomers - 1.27 will come with a "new game wizard" that makes it easier to set up your initial managers and settings.
The cursor remains in the screen so that you can still activate Hotspots while free-aiming. Would you be OK with that feature going, too?
I'll get back to you once I've had a better look at this. It should be possible already if you use Mecanim. Legacy, I don't know - have you experimented with it?
As skitt points out, a Hotspot needn't be fixed in place. All an object needs is a Collider and the Hotspot script for it to be clickable.
Having separate left/right buttons may not be the most intuitive, but it does mean that it won't conflict with other elements. I'll investigate..
Thanks for getting back to us Chris!!
I thought that perhaps saving was just a function that didn't quite work well while testing in the editor...then again that would be inefficient during development, and of course the inventory saved so...
...speaking of which I tried to debug this by watching the Global Variables change, and that doesn't work. Is there a way you could expose them to a debug so we can either see when the variable has been set/changed and/or have update in the Inspector?
Well you spent a lot of time on presentation for certain!
These tutorials I'm thinking of could be academic; snippets that show an example case usage and then talk about alternative uses. A video or even write-up is fine...no need for a playable scene.
Should be at least a toggle option (e.g. Static Cursor On/Off) in Settings under Hotspot Detection Method. In my case, I was going to only have hopspot activation when the player was in 'Cursor Mode'. Good or bad design (on my part) remains to be seen, but right now having the cursor stuck to the middle of the screen when not in use is not very attractive.
Definitely using Mecanim and no I have not, but I can give it try myself at some point. As an animator yourself, you can appreciate how much better Blendshapes are, so yea if you can find time this would be terribly valuable.
Speaking of which, in my other games, I have extensive and complex Mecanim FSM's that have fluid transitions and such, and I'd love (if not outright need) to see either how we can extend character control (again if this is possible a tutorial might be necessary) or at least allow for greater input options in Mecanim Parameters for a character. Heck if possible, it might be wise to allow us to add our own parameters instead of keeping movement in a blackbox (at least that's how it appears). Being an animator myself, having only Walk/Run/Turn/Idle isn't ideal...workable, but I'd love to have greater animation fidelity.
Perfect (and thanks Skitt!). The only thing I can see needing work then would be a more organic system for interacting with dynamic hotspots as static markers wouldn't be sufficient any more.
The only thing you could do is to allow Menu's to have the option to be an exclusive state. If I'm not mistaken, in your demo if you select Menu (in my case the Start button on the 360 controller), you can use the left analog to move between each option; same thing could be applied to the Journal and/or Inventory?
Just wondering if you've had any luck getting Adventure Creator working on Ouya?
I picked one up today, so I'd be happy to help with bug testing!
Oh another thing:
Similar to how I mapped the Run to a button on the xbox controller that I can press at will to make TinPot run, is there a way to trigger events/interactions/movement at a button press without the need to have a hotspot or menu?
For example a jump button?
How about a weapon that you can fire with the Right Trigger that plays the fire animation and then raycasts to see what you shot at, and if applicable, have an Interaction event occur? I'm not talking about an action game mind you, but rather simply tying an inventory item use to a specific button.
You could argue that the Right Trigger could be a generic, and could 'use' any inventory item that's been 'equipped' (which would need either an equip menu item or to be added by you Chris).
Chris, if your interested in doing more tutorial video's I would like to volunteer my services (pro bono).
I am a video editor/Max'er by trade and closet Unity Guy at night and weekends...
Video tutorials is the way I learn... I am a visual person.
This would be my contribution to the AC group to help build up and support this great product.
You just record send me the files and I clean it up, add gfx and then send back to you for your approval.
Just an offer, no strings attached... up to you if you think it will help out.
I have an issue with hotspots not un-pausing.
The InGame 'Menu' button executes the following actions:
- turn off the InGame menu
- turn off the Inventory menu
- turn off the Hints menu
- turn On the Pause menu.
The Pause menu has the setting 'Pause game when enabled' checked. This menu has a 'Resume' button that performs the following actions:
- turn off the Pause menu
- turn on the InGame menu
- turn on the Inventory menu
- turn on the Hints menu.
After using the 'Resume' button the actions execute correctly however the hotspot is no longer enabled.
I don't know if this is part of the problem but I had to set all my menus to 'Manual' display as I was getting an annoying flicker / menu reload whenever the camera was switched and the menus were using 'During Gameplay'.
Am I doing something wrong?
Version 1.27 is out in the wild. Changelog:
Added: New Game Wizard - use to quickly create new Managers and define the main settings
Added: Player: Switch - use to change Player mid-game (requires Player Switching to be Allowed in Settings Manager)
Added: Player: Check Action - use to determine which Player prefab is currently being controlled
Added: MenuLink script - use to link Menu Elements to scene objects, to create 3D menus
Added: New Menu Element position type: Relative To Menu Size - use to set position as a percentage of the menu's size
Added: Interaction menus with appear type set to OnHotspot now display correct icons in Context Sensitive mode
Added: Icon-based Dialogue options now send their labels to the Hotspot cursor label
Added: Pointing and clicking is now disabled if all four Player directional locks are enabled
Added: "Affected by gravity?" option to Player: Constrain Action
Added: "Left-click to examine when no use interaction exists" option to Cursor Manager for Context Sensitive mode
Added: Inventory setting "Active when unhandled" to Settings Manager - displays effects when Hotspot interactions don't match
Added: Ability to change Character footstep sounds - find within Character: Animate action under Set Standard method
Added: Hover and Click sounds to clickable Menu Elements - define a Default Sound Prefab in the Scene Manager
Added: Wait cursor to Cursor Manager
Added: Label (if not name) field for Inventory Items
Added: "Hide cursor when locked?" option to First Person games - removes cursor when cursor movement is disabled
Fixed: Issue with using Character: Animate Action to change Mecanim parameter values
Fixed: MainCamera's clear flags being forced when not necessary
Fixed: Namespace conflicts with Unity's Sample Assets (beta) asset
Fixed: Bird always appearing on bench when loading saved game in 2D Demo
Fixed: Null reference error if a FollowSortingMap component can't find a Sorting Map to follow
Fixed: Inventory: Check Action sometimes breaking if the referenced inventory item was deleted
Fixed: Mismatch between speech volume in Options and that on Character Audio Sources
Fixed: Camera: Fade action not working for instant transitions
Fixed: Errors with reloading saved global variables data
Regardless, the bug's fixed in the latest version. It was introduced when string variables were added, I apologise for the delay in fixing it.
The simpler the better, really - if a write-up would suffice I'd prefer that. It would also mean I can amend/update as changes to the system itself are made.
Sure - included in 1.27.
I did actually intend to have animated Blendshapes integrated to begin with, but it wasn't possible at the time. I'm not sure if it's yet possible (I'm a Blender user, not Max).
Of course - that's my thinking behind Mecanim support! While AC's Legacy integration does all the leg-work for you, Mecanim integration is designed to let you do the bulk of the work so far as FSMs go. AC simply changes the values of parameters that you supply - the idea being that you design an FSM around that. If you have a crouch bool for example, you could build an FSM that bypasses the walk/run states when that's enabled. You'd need to have a *very simply* custom script to map the crouch button to the bool, but at the end of the day it's a system designed for more advanced users that need to take it beyond what AC could ever supply through Inspectors.
Don't forget Markers aren't the only way to approach a Hotspot - just choose "Walk to" instead and you can set a proximity distance instead.
Thanks, but I haven't tried. I'll give you a shout if that changes, though.
See my comment above about the crouch button example. The gameplay possibilities become simply too wide for such specific functionality to be integrated into AC (even a jump button). For that reason, I want to let Mecanim integration empower the designer to let them add in their own specific features. If you can ask for a feature that helps in a more "general" manner, I'm happy to help - but please understand that it wouldn't be possible to have a built-in system that satisfies everyone's needs. Custom gameplay elements need to be added on by the designer, but it should be as easy as possible to do so.
Thank you very much, an extremely generous offer! I think I'm going to have to take a step back and look into how best to take education forward, but I'll take your help into account - appreciated.
The InGame menu is set to CrossFade, which means it'll turn on it's new menu after turning off all other menus that are active. Normally menus come on/off according to their Appear Type (for example During Gameplay, On Hotspot etc), but these rules are ignored when the game is paused. When the Resume button is clicked, the game becomes un-paused, and the regular menu Appear type rules apply - so if you've changed a Menu's Appear Type to Manual, it won't come back on again unless you tell it to. Your problem with the Hotspots not enabling suggests that the Hotspot Menu is not turning on - change that Menu's Appear Type back to On Hotspot.
One of the reasons I created AC and released it as an asset was that I don't have time to make a large game, so I only ever have the feedback from users such as yourself to go on when it comes to developing tools for larger projects. If you're tempted to dig in and add your own features, please go ahead! I do want to develop AC into a system capable of large scale, but development does need to take the current system into account: if you can describe in detail what improvements you'd like, how they'd work, why they'd be useful etc, I'm all ears - but since such improvements also have to integrate well with existing projects I do need more specific feedback so I can figure out the best way to go about it.
I speak only for myself, but I prefer write-up's over videos as I can quickly reference. Don't take this as too harsh a criticism but your docs could use better formatting and flow; liberal use of bullet points, quick-notes, definitions and usage examples, all formatted for quick locating and look-up.
Also please use images for immediate relation between text and program. Think visually!
I read that last night, so yea I can see now how to better work with Mecanim through Character: Animate!
Absolutely...I was referring to animation syncing, but this isn't a big deal now that I think about it.
Oh make no mistake I am referring to a generic. I'm the biggest proponent of general systems for the broadest usage.
Regardless, you already have this system implemented on a small scale, since you have a Run button, and you can call up the Journal with yet another button/key press; ...this exists currently, it just needs expansion.
All you need is an 'Input Manager' that could work more or less identically to the Trigger Manager.
You could have parameters that check for a 'mode' or 'state' to avoid conflicting input (again this duality exists when you are able to use the left analog to both move the character AND move between the menu options when the game is-paused). Then you simply check for an Input that 'triggers' an 'Action or Actions', again identical to how your AC_Trigger script behaves.
Now that I type this out, I can see this really helping opening up the available gaming options for users with minimal effort on your part (relatively speaking) and be just as general-purpose as your Trigger system is!
I've been watching the Adventure Creator tutorials and the product looks really solid. Well done!
I'd like to suggest that you create playlists for the tutorials, and also link one video to the next. Since the videos are not in a playlist, I always have to look for the next one, either in the video window or along the bottom side. In addition, if the videos are in a playlist, I can click YouTube's "Play all" button and watch them in order automatically.
First, thanks for another great update... and looking at the clear flags for me!
You know I'm a big fan of AC... but my main "sticky" issues:
1. By far the biggest problem I have is doing dialogue trees. I've implemented a couple more "complex" trees now, and it's just not getting easier (maybe with more practice). The separation of the "Conversation" and "Dialogue Option" makes the implementation of writing feel really unnatural. I've all but given up on writing directly in the editor, which is a shame. The ability to try a conversation, iterate, and play again is really compelling (just ask the old Lucas guys), and I wish it could be done here without thinking about switching inspectors all the time. The flow of conversation is just completely lost... or at least I'm too stupid to keep it in my head when switching windows around all the time.
Secondly, there is often a need to either (a) separate a conversation into multiple conversations for each separate set of dialogue choices... or (b) have an enormously long list of dialogue choices that you have to clumsily hide/show parts of.
From a design standpoint, my main wish is that a "conversation" could really be all-inclusive of a conversation (excuse the ridiculous sentence).
I believe a good branching node-graph solution would be most in-line with the philosophy of AC as it exists. The critical points for me would be to:
* See all dialogue (both player and NPC) that is part of a convo in a single view
* See/edit the connections of those options
* Write and edit dialogue with word-wrapping
Of course, to really make that work you'd also need the ability to see/run actions as well - and I'm guessing that was the fundamental reason for the current separation. But that separation is my biggest issue with AC by a mile.
Chat Mapper (which someone mentioned a while back in this thread) is a pretty good example of how that can all work in practice. In fact, if there was some way to integrate it with AC conversations/actions/variables/ I could see that also being a solution for those of us who need more complex interactions. I know they do have a SDK for writing custom exporters beyond their standard XML/JSON.
2. A slightly better node-graph solution would also be generally handy for action lists - ideally where you don't have a separate graph and mini-inspector on the left (as it exists now). All data, settings and "outlets" should be visible and connected in the graph itself. This makes game logic followable and editable in a very nice way.
3. Some enhancements to the variable system. Adding floating point vars and some basic math as actions. Setting variables from other variables or with basic math formulas. A pseudo-switch/select on a variable rather than just ==, <, > checking one at a time in separate actions.
4. Some variable debug help! Is it just me, or does the variable inspector not update to show live variable data? Would be helpful to see the live values during play. I suppose one could create a custom menu to bring up all the values, but the list in a larger game gets immense. I'd also be tentatively in favor of a little more variable organization (at least the ability to organize the list alphanumerically). The filter works for most purposes though, so I can't think of a compelling reason for further sub-organization (besides my OCD).
Chris, I really appreciate you thinking about this stuff. I know well that it's easy to suggest and much harder to implement...and that you don't want to break existing projects.
If I'm being a complete idiot and missing something that already exists in AC - please let me know!!
However, I currently have only a single hotspot in the scene for testing purposes but it is just your normal run-of-the-mill hotspot created from the 'Scene > Logic > Hotspot' button not a menu. As such, I've not changed its 'Appear Type', enabled state or any of its interactions at any time. The hotspot does have the 'Remember Hotspot' script attached with 'Hotspot state on start' set to 'On' - could this script be causing an issue?
Hey Chris thanks for working that menu change into the update, but there appears to be a problem with it in my menu. Previously, when I had the elements' positions set to absolute, the labels would overlap in fullscreen mode and it would be ugly and unworkable.
Now, I set each element's position to Relative to Menu Size but a new problem has occurred. In the game window the menu appears correct and I've set each of the positions to correct values, but when I start the game (in editor or built) they all move to the top left of the menu, regardless of my screen size.
This is what it looks like in the editor without the game running: http://farm3.staticflickr.com/2617/13012113093_fc24e47c2a_o.png
This is what it looks like in game: http://farm8.staticflickr.com/7355/13012113203_7a4698c96e_o.png
Any ideas? Thanks.
I find it's really not too bad if you just think as conversations as the player options, and dialogue option as the result of what the player did. So yeah you need a new convo for any branch and to link it from the end of a dialogue option, but it doesn't really matter as long as you title things in a way that makes sense. At least I didn't have any big trouble experimenting on some very complicated stuff, with branches, variables, turning on/off choices and so forth.
That said, would a nested or flow chart view that connects every linked convo and dialogue option in ONE nspector be nice? Certainly, but I'm just saying it's really not impossible to work with now. Just different than people think of "now I'm going to do some writing" well you've got to worry about game stuff too so it's a little bit more setup is all.
Is there going to be a Mecanim tutorial? Or is there one already and I just haven't found it?
As far as setting up a full mecanim system that's more a unity thing and you can check out tutorial assets for it.
Here's a little tutorial to help anyone that needs to call a specific animation to be played through mecanim and initiated by AC:
First you go to Animator tab where mecanim stuff is edited. You should be in the animator controller file you're using for characters in your game. If not find it and open it.
Make a new state and put the new animation in that. Now make a parameter with the + button, and choose bool. (Bools have only two states true and false, so they're good for something where you only want it on or off) Call the bool something like "AnimsNamePlay" for reference.
Now make a transition from the animation that would be before this one (Idle, for example) by going to that state, right click, make transition, attach the arrow line that appears. Making an exit from this new animation backwards to idle is possible using the same process. Or you could have it looping and not have an exit transition, depending on what you're doing of course.
The important part with transition is select the arrow line going to the new animation. You'll see a conditions box in inspector. Add a condition and click on the first word to select your "AnimsNamePlay" parameter. So it should say AnimsNamePlay = true in conditions. Ok so now mecanim understands that that animation plays only when it's triggered by the parameter being true.
(Which also means leave the box unchecked for AnimsNamePlay so it is false to start with, in your animator parameters list)
So in AC you use Character: Animate:
method: change parameter value.
parameter to effect: AnimsNamePlay
parameter type: bool
set as value: 1 (important to use value of 1 that means true, 0 means false)
And that's all you have to do. You use that action in AC it will either play the anim once until finished (if you made an exit transition), or play it looped if you didn't make an exit transition.
Hope that helps someone.
(Also if there's any method issues with what I do please tell me, I'm no expert I just tell people what I have working for myself lol)
Thanks, thats what I wanted
"So in AC you use Character: Animate:
method: change parameter value.
parameter to effect: AnimsNamePlay
parameter type: bool
set as value: 1 (important to use value of 1 that means true, 0 means false) "
Um, while I appreciate you adding this, you did it for the First Person mode only (the one mode that doesn't need it since First Persom mode in games almost always has a constant reticle) and completely removed the ability to turn the cursor on/off in Direct Control mode (the mode I needed it for, and which is the ideal mode since the cursor then doesn't appear over the character when not in use)
Has anyone published anything with Adventure Creator yet? It would be great to see what people are doing with it!
Also, having only used Unity very briefly, Adventure Creator is exactly the thing I need to get started on a project I'm working on.
Calm Waters is due to be released this Summer
And I agree with what was said earlier - the conversation system is extremely difficult work, especially when you have stemming conversations that are only triggered with certain variables etc. AGS seemed to develop a simple enough system for these types of conversations, would something like that be possible at all?
would it be possible to add something like a "thoughts carousel" like in Heavy Rain for example (http://www.youtube.com/watch?v=wvrELttMRHg, 2:27). Generally speaking it would be some kind of hotspot carousel above the characters head and the player could then click on his thoughts and see what the character is thinking about.
Ok I never really solved how to use the AC variables with Playmaker so I was looking into it again.
They're saying on the Playmaker forum: "You can get the component at runtime easily, but if the variables are not in the list it is either a partial script or the variables are not exposed as public."
Well the stuff the AC vars use doesn't appear when you "get" the component/script in PM so I guess the variables are not public or something? I'm not a programmer so anyone know what to do next?
Heya Chris -
I don't really have too many issues with AC at the moment, but I did notice this announcement today:
I'm not sure how difficult it would be, but it might be cool to allow for additional audio system integration (Unity is already built on the fmod kernel, so maybe allowing additional visibility into their primary toolset wouldn't be as difficult) sometime in the future. Of course, there are a ton of other options...some on the asset store and some others. Fabric, Audio Toolkit, Wwise, etc...
Just thought I'd put it on your radar!
How difficult would it be to move from a non-adventure creator scene back into a creator scene (minigames?). Are the variables global so that I could assign/modify them in the non-creator related scenes so that they are available when I get back to the level?
I've started a new batch of text-based tutorials. They're much faster to make, so I'll be replacing these as the official batch once they're large enough in number. For now, they're alongside the current video ones.
OK, interesting. Would this be better off as a scene-based setting or a global one?
Yes - that, and because there's a danger of Unity deleting the data if a script broke. The pre-release versions of AC had things this way, and I had to remove it because no matter how unwieldy the current system might be, I can't have anyone lose their work due to a crash.
You NEED to have access to your regular actions - even if it's just to add a short pause for breath in between two long lines. Having a configurable list of lines ("PlayerLine1", "NPCLine1", "PlayerLine2"..) would take away the ability to make the presentation more lifelike.
As for XML importing, I feel that if I'm going to upgrade the conversation system, that's got to come first. XML importing will be much more powerful if the system it's coming into is better to begin with. This'll likely be quite a task, so please leave it with me for the moment, and I'll see how things go.
Data in the Variables Manager won't change during gameplay - otherwise it'd be retained when the game ends! Instead, look inside the Runtime Variables inspector in the PersistentEngine prefab. It doesn't have a cutom editor so it's a little bit of an effort to filter out what you don't want to see, but in-game variable data is stored there.
I was saying that the Hotspot Menu (ie. the Label that appears above the mouse cursor when you hover over the Hotspot object) was likely not appearing - not the state of the Hotspot itself.
Have a look at your Hotspot object's layer - that's what ultimately determines whether or not a Hotspot is "on". Is it set to Ignore Raycast or Default?
Yes, it's a big fat bug! This is a really easy fix, so rather than have you wait until the next update (which will fix is officially), try this: go to your MenuElement script (AdventureCreator -> Scripts -> Menus -> Menu classes) and enter the following line into the Copy function (line 70):
relativePosition = _element.relativePosition;
Well, now I'm confused! Direct-control SHOULDN'T (or at least, isn't designed to have) locking mouse cursors. You can move the cursor while moving the character with the keyboard, or if you're using a controller - move the character with one stick, the cursor with the other.
What exactly are you trying to achieve, interface-wise?
Yes - you could use the new scene-based menus feature. You'd have to script / PlayMaker your Thoughts as objects around your Player, but once done you can just link them to a Menu Element using the MenuLink script.
The number to the left of each Variable (in the Variable Manager) is it's ID number. You can use that you get it's value:
GameObject.FindWithTags (Tags.persistentEngine).GetComponent <RuntimeVariables>().GetVarValue (int _id)
will return a string-converted value of the variable.
Thanks for the heads-up. I know actually nothing about sound libraries, so we'll see what Unity do with it.
Variables are stored in the RuntimeVariables script of the PersistentEngine prefab. So long as that isn't destroyed in your minigame, your variables should be returned just fine. Look inside that script to see how vars are gotten/saved - again (as above), use the ID of a var listed to the left of each in the Variables Manager.
This was an excellent asset on initial release and it just gets better and better with every update.
Well worth the money and much more!
Thanks for all your hard work in supporting this Chris. Much appreciated.
EDIT: Just realised it's currently half price, so it's a total no-brainer. Buy now!
Global...always global. Whatever it is that you did to make the Run button always work should suffice!
If you want more info I can try to offer some best I can!
I'm trying to achieve EXACTLY what you have now, but simply with how you had the Direct-Control controls set up in the previous version.
When I had asked the question last week (before your latest update), I was using Direct-Control to play the game, and I had assigned the Toggle-Cursor button to 360 controller button 5. I could move around (including run!) with the left analog, and yes move the cursor with the right analog...brilliant. When I would hit button 5, I could disable the cursor, and it would center itself on the screen.
It was distracting enough that I wanted it gone!
Regardless, as you always state that the system should be as general purpose as possible for all users, why make the distinction between First Person and Direct Control? You had it before but now you've made it a First Person feature only? I certainly have good reason to have it for Direct Control mode, and if and when you implement a 3rd Person Follow Camera, you'll need it there as well, being that the only distinction between First and 3rd person then would be a character in front of the camera.
So bottom line, always have the option to toggle the cursor on and off with a button press, regardless of the mode and hide the cursor when it is deactivated. Yay!!!
Attention Playmaker owners using Adventure Creator:
the Playmaker guys will make a custom action to set Adventure Creator variables with PM. But we need to vote it up to show our support for it happening.
So if you have Playmaker please vote for the Adventure Creator on on the to do list.
UPDATE: Good news, we're out of Wishlist and on the To Do list! So it will happen. This will be a really useful thing to have allowing for any kind of math and variable systems with no programming. Keep on voting if you haven't to show your interest, I think that would give it more priority.
Thanks, that's perfect!
A couple more questions though while I'm digging pretty deep into this tool-
1. Do you know if you plan on implementing a more robust variable system, similar to the suggestions presented by dxmachina? Like, setting variables based on other variables and other simple math functions? I know you've said this can be done simply enough with some scripting, but I'd like to know if I'm better off waiting for another update or diving into the scary scripting stuff myself!
2. Is there some way I'm not aware of to change cursors without right clicking or selecting one on the interaction menu? I'm using the choose interaction then hotspot method, and I've replaced the main walk cursor with a footprint texture. This works fine for most of the game, but any time I'm in a menu, I'm stuck with a footprint/hand/speechbubble cursor hovering over the buttons instead of a pointer like so - http://farm8.staticflickr.com/7428/13094157323_6687530dfa_o.jpg
-and this looks a little offputting. So I added a new pointer cursor to the cursor list, but I'm having trouble figuring out how to switch to it, beyond right clicking and giving it its own interaction button in a menu. Anyone have any thoughts about this?
3. Another cursor related idea which just popped into my head- I think it would be a nice to have an editor in which you can change the hotspot pixel of each cursor texture, so that if I have a hand cursor, in order to detect a hotspot, I would have to hover the tip of the hand over the hotspot, and not the center of the palm. I guess this is relatively low priority, as it can just be fixed by editing the cursor graphic, but it might be a nice feature if it's not too hard to implement.
Thanks, as usual!
Makes sense. This isn't terribly informed, but I could imagine going about this a couple ways:
1. Is there a solution to the lost-work problem itself? I'm not familiar with Unity editor scripting, but is there not something that could be done to cache the data on to disk in case of a crash? Or even a way to allow the user to manually save the data in case of a crash. Sorry if this is totally ignorant of the way something works.
2. Since you likely want to maintain backwards compatibility could the problem be approached from a more macro-level? That is, have a new editor that is designed to have the one-view solution to doing conversations (including dialogue options and actions) that is really just a programmer for the current separate editors? Again, not sure if there is some limitation that makes such a solution difficult/impossible, but it might solve the issue of compatibility.
I'd much rather have this stuff baked into AC... so if it can happen I don't think the XML/Chat Mapper (or similar) import would even be on my wishlist.
Really appreciate you thinking about this. I think it would be a great ease-of-use improvement for everyone - not just for the more advanced stuff.
Any thoughts about the floating point vars or some basic math actions?
For variable debug I'm going to try to implement a gui text overlay that can pop up upon keypress that will list the current vars and their values.
One unrelated question in regards to Mechanim walk/run. Do the acceleration/deceleration variables apply just the the root motion of the character, or is the Mechanim variable also ramped the same way?
i have a question :
current i use your menu but when i click in top screen it showed "Inventory "
i want create a button end when i click on it , it will show "Inventory "
now i created a button but i don't know how can connect with Inventory
so how i can do it ?
The Hotspot layer was set to Default. The hotspot was working up until I 'resumed' the game from viewing the Pause menu.
Hi Chris, when I updated the package with the last version, and run any demo, I got this error:
FileNotFoundException: Could not load file or assembly 'Assembly-CSharp-firstpass' or one of its dependencies. The system cannot find the file specified.
System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System/AppDomain.cs:746)
System.AppDomain.Load (System.String assemblyString) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System/AppDomain.cs:728)
(wrapper remoting-invoke-with-check) System.AppDomain:Load (string)
System.Reflection.Assembly.Load (System.String assemblyString) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Reflection/Assembly.cs:576)
And still happening in a blank project. Any clue?
Anybody else using a Rift? I'm so close to getting it working perfectly...
OK, well first things first, let's get your game working. Why not just not remove the ToggleCursor axis? The default "locked" state of the cursor is in your GameEngine prefab, in the PlayerInput script.
Incidentally, there is already a 3rd-person Follow Camera. Just choose GameCameraThirdPerson in the Scene Manager!
It's something I totally intend to do, but I think I need to attach the Conversation system first. I also need to figure out how best to take such a Variable "Math" feature forward - ideally you'd actually write an equation and have it parsed, but no idea how feasible that even is. It might take a while, so please be patient - but I will get round to it.
No, those are the only two ways. Is that picture taken from a dialogue tree? The cursor should definitely be made to reset when that happens.
No, it's a good idea - I'll look into it.
Great going! Having support from the PlayMaker side of things would be a big help.
The lost-work problem is something I found a fair number of other coders having trouble with - the ultimate answer I found on forums was basically "don't do this".
I haven't yet looked into feasibility of this (so maybe I'm shooting myself in the foot by announcing my intentions here ;p) but what I'm thinking of is a "Conversation Editor" that basically makes a tree of all Dialogue Option lists in one window. I.e. it doesn't matter whether the Dialogue Option scripts themeselves are in the same object or separated - they're all "pulled in" to the same window anyway. Right direction?
I'm always up for improving AC in ways that benefits everyone. If we can, though - let me concentrate on the Conversation editor first. I'm an animator by trade, and my technique for reviewing shots is always the same - fix the bigger issues, then the smaller ones will be made clear.
The movement speed is always dictated by the acceleration/deceleration values, so yes. It's optional whether or not AC handles root motion, however - you can leave it to Mecanim if you want.
You'll need to change the Inventory menu's Appear Type to Manual. Then go to your new button, and change it's Click Type to Crossfade, and enter in the name of your Inventory menu.
Is there another menu running in the background somehow? If the pointer is over a menu, it won't highlight hotspots underneath it.
Hm. Well, luckily an automatic email sent me your original message with the full error log Seems to be to do with the Serializer. What platform are you working on, and what is your Build Platform set to? It may be that you need to switch to Desktop mode.
I'm not entirely following what you're suggesting with the ToggleCursor axis, but this was completely working in the version prior to this latest one you released, and I simply wanted the cursor to be hidden when I toggle it off...exactly the way you have it now, only you did it for First Person and removed it completely from Direct Control! I just need the last version the way it was, but with the new toggleCursor available for ANY mode.
I looked in the PlayerInput script but couldn't find anything related toggling the cursor.
Yea I pressed it, it created a 3rd person camera but when I go to play the game (First Person movement type) nothing happens...still in first person.
Ironically, now it's me who DOES understand the other - I think. Leave with me for the next version. As for the PlayerInput script - don't look inside the script itself, just the inspector. It's the Cursor Lock checkbox.
Well, you're using First Person mode so of course you're not getting a 3rd-person camera! The 3rd-person camera is not a part of the player prefab like the 1st-person is - it's a scene object that "attaches" itself to the player instead. This way you can have different distance settings etc for it per-scene.
Well right, I should've elaborated. First person mode is the only logical alternative to Direct Control or Point and Click since there is no 3rd Person choice, correct.
Otherwise I'm not sure how to 'utilize' the 3rd Person Game Camera...where is this done?
Methinks you might need to be a tad more verbose in describing how to 'do' things, not simply reveal that they exist!
This is funny as I can do more or less anything in Unity when left to my own devices, but I'm having to now stay within the working parameters of your tool to get the most out of it, and now I feel I'm coming across far more naive and ignorant than I actually am!
Cool. Sounds like a positive direction. Would there be any way to reconcile cases when there is a need for multiple conversations (that are really part of the same conversation in-game) with such a technique? If the editor is really robust, it might make the hiding and showing dialogue options more feasible than they are now (for long branching dialogue). Would there be ways to use actions/variables?
At this point I better be writing some interesting dialogue, huh?
I'm assuming you are handling the mesh translation and at the same time providing mechanim the assigned variable to drive the animation. Is that right? If so, my question is about the accel and decel ramps... and whether the variables you are sending to mechanim are also "ramped" accordingly?
For instance... the issue with sliding upon deceleration seems to happen because the mechanim variable is reset to 0 (animation back to idle) while the character is still being translated (and decelerating). Shouldn't the animation variable sent to mechanim also be subject to the same curves?