Forum rules - please read before posting.

Invector Combat Melee Template OR Opsive Third Person Controller

Hello,

I am considering buying the Invector Combat Melee controller from the asset store but I don't know if this integrates with AC or not. I was also looking at Opsive's Third Person Controller, which is alleged to integrate, but an earlier topic on this forum suggested otherwise. Has this changed, or does anyone have any experiences using either with AC? I'm wanting to set up a melee system and still use the features of AC cutscenes control, save states and UI systems, so would I have to give those up?
«1

Comments

  • Opsive's Third Person Controller definitely works with AC, but can be a bit complex to set up to get really satisfactory results. You'll probably also have to do some scripting (and their documentation is definitely aimed at coders) but if that's not an issue, I can only recommend it.

    Haven't tried the Invector system.
  • I personally prefer the way invector's system responds out of the box, but as was mentioned before, unfortunately there's no integration to AC yet. I've seen videos of Opsive's though, it's more expensive, but the setup does feel more mature. So, it's not a bad choice at all either. Still, I prefer the way Invector's respond and behave out of the box. Opsive's feels sluggish somehow. Course that's not the only reason that got me interested, but it was one of the most important...
  • edited September 2016
    Watching the video, the Invector controller did look a little laggy. I can code what I need if I have guides, but I don't have a ton of automatic coding intuition. For the purposes of my project, i need a melee character with a generic, single animation of block., a generic gather animation, and multi-animation fishing. I absolutely need to use AC so I must find something that integrates without conflict.
    I don't need a health system or behavior for enemies; just a really good way to move my player. I feel like melee controllers all seem like an afterthought. I think I saw AC supported another one called Motion Control but now I'm not sure.
    If I were to get Opsive's controller, does anyone have any links to a good tutorial or example for use with AC, other than the one he gives on his site?

    EDIT: is it extraordinarily easier to use Ufps with AC instead or third person controller? I Really don't want to go first person that much, especially with melee, but I really want nice controls. If Ufps is that much more supported, I would like to know. I'm fine with a separate model for cutscenes.
  • Are you absolutely certain you actually need a 3rd party system for this?

    It sounds like it could be handled more or less out of the box with AC's own direct control scheme + clever use of action lists and/or some custom code - and a lot of work getting the animations set up, but you'd have to do that anyway.
  • @Snebjorn - Thank you for pointing this out. I think that might be really wise advice. I have had similar thoughts, but keep having camera problems. I also haven't looked into scripting my own controller with mecanim for things like melee and block. I'm about to look now for some more guidance on those two things for use in AC, and if anyone has any suggestions or more thoughts on the topics in this thread, I'm still open to hear them.

    Thank you!
  • In game development, "camera" is just another word for "can of worms" ... (https://youtu.be/C7307qRmlMI) :D

    Fortunately, using 3rd party camera controllers with AC is generally quite simple, so if you're prepared to spend a bit of money on the asset store, there are several good options available. The exact choice really depends on the style you want. I've tested a few in AC projects, and they generally come with more options than anyone could ever need in a single game. 

    Setting up a controller for a melee system isn't too hard either, but the exact design will obviously depend a lot on your specific control scheme. Some time ago I built a prototype to test a point'n'click combat system for my main project. In the end, it worked quite well on the technical level, but turned out to feel too hectic in the context of an otherwise straight point'n'click adventure game, so I went with a turn-based solution instead, using another 3rd party asset for the combat scenes.

    Anyway, the original solution was based on a single script on the player character keeping track of the combat situation, handling mecanim parameters, and talking to AC, and it was only dropped for reasons of game design rather than technical issues.

    So, it really depends on the exact style of game and control scheme you're planning, but unless it's really weird, I'd say stick with AC as much as you can and you'll be safe.
  • AC does come with a UFPS integration script, which does provide a basic interfact between the two assets.  There is no such "out of the box" solution for TPC.

    However, even in the case of UFPS, the included script is intended as a sample script that can be tweaked or completely rewritten to suit the users needs.  The fact is, there is never going to be a "one size fits all" approach for bringing two complex assets together - there'll always be something (sometimes small, sometimes large) that needs changing specifically for your own game.

    Therefore the approach is to provide a sample "starter" script that can be used as a basis for something more tailored for your own needs - or even just used as an example if you want to apply the same principles for integrating with another asset.
  • edited September 2016
    Chris is right. You'll always need to add or modify stuff for your own game, rarely will you be lucky enough to say "hey, I can use this as is!" The more original or special your game is, the more custom stuff you'll need to make (or tweak). And that's actually good, it means that your game is probably not going to be a cookie cutter game. But no plugging/asset in the world will be able to know exactly what you had in mind for your game, so the best they can do is make something everyone can work on, and start from there.

    Also, about the sluggishness of the controllers (TPC and the meele template). That's actually something you change in the Animator, not the code. Both of those are made so you can swap the animations and tweak them without needing to change the code. They both use a Master Animator you can open and modify. If you wanted the character to move faster you'd just tell mecanim to play the walking and running animations faster. But, I'm lazy, lol, so I preferred the one which was almost how I wanted it to be out of the box (and cheaper, heh). 

    Still, I also agree with Snebjourn. For what you need it doesn't sound like it's something which necessarily calls for a third party character controller. At least not the big ones, Both TCP and meele template aim at giving you the stuff for action games (Motion controller sort of does the same). They all offer standard movement of course (Invector even has one just for that, which you can then extend with more animations). But, for your animation needs it could probably be setup in a rather brief animator. Which makes me think, maybe you don't know how to do it?

    Not sure if it's like that with you, but lately I've seen a lot of people come and expect to only learn AC to make great games... I mean AC is amazing and all, but you can't do that... if you want to make really, really good games in Unity, you have to learn how to use Unity properly. Else, you'll be missing out on a lot of stuff and you'll be putting limits to yourself which aren't really there... My advice for any starters is to take at least a month to learn everything you can about the Unity editor (I took several months before I even opened AC). There's tons of video tutorials and blogs and video courses out there (if you can bear this guy's accent, he has the most complete video course on Unity I've ever seen in my life.). 

    Still, whatever path you take, you'll be surprised to find how many useful and important things you can achieve in Unity without a single line of code. Although, coding does give you power. But, well, you don't need to know how to program to use scripts, lots and lots of people just copy paste what they need from the Internet... so don't be afraid to be one of them if you don't like scripting. Chances are what you need has already been posted in some forum out there, and for free. You'll just have to get used to searching (if you want data saved by AC, just replace the variables which stored the score in the original script for AC Global Variables). It's pretty simple to convert the scripts once you get used to it (That's how I started).
  • edited September 2016
    To add to that, I think my concerns stemmed from the idea that I would attempt to use another tool and find it entirely incompatible. UFPS, as mentioned, does already have the bridge, but it's functionality is not in direct conflict with AC. TPC is not in direct conflict either, but may be slightly harder to use. Invector may not be usable at all with AC. It looks like my other option is motion controller.
    I was able to set up my camera now and a basic animator controller. Does anyone know how I can build on the mecanim controller from the offical tutorial ( http://adventurecreator.org/tutorials/adding-custom-motion-controller ) and add a melee attack, and then add the input for that in an AC compatible way? I know how to set up mecanim controllers, I just don't know what I am supposed to do scripting-side now that I am using the AC scripts. If I were to call IsFishing or Attack1...

    Alternatively, I have Playmaker. Can I set up a controller with that and integrate it into AC? Not sure if I would use custom control set-up for that or not? I know these are rather general questions but I'm trying to see if anyone has started down a similar path before and found it to be a good option.

    @Alverik: Thanks for the insightful post. The reason I'm using AC is because I've always had trouble with writing the code to make saving and loading work for all things I needed to be stored. To be able to use cutscenes to control cameras and attach events to those cutscenes has been helpful in organizing for me. The only mecanim controllers I've ever used have been ones where I had to call the animator component on my own, and I have never been that happy with them. I wanted something more advanced. I would say that now, I know how to use the Unity Editor at a very high level; I just am not a great coder I know where editor components are and how to use them and all kinds of tricks. While I am beyond basic coding, and I understand logic and how it works, and even advanced logic if someone goes through it with me, I'm not an intuitive coder, I don't do it for a living, and I can't solve a number of coding problems on my own unless someone directs me to an outside resource.
  • edited September 2016
    That's fine lol, I get it too, I've done everything imaginable to not code whenever I can. heh. I'm also not a coder at heart (I'm more of a designer/artist). Anyway, let's see how we can get you up and running with that stuff then!

    First, about the animations, AC doesn't really care about any animations other than walk, run, turn, jump and talk. You can add more states to your Animator which you can then call by a button press (either by name or by using some switch you've added in your animator). You could do this in many ways, scripting would be easy too, but lets check a way to do it with AC.

    As far I can see there's two ways or so we could do this with AC. One would be to have an actionlist asset running always in the background and checking for inputs. You'd basically make an input check. If it fails, you'd loop back to the same action forever until it succeeds. Once that happens you then play an animation using AC animation actions. Then once you are done with the animation and stuff, you let the last action return to the first action (the input check) to continue checking for input.

    The other option would be to have hotspots trigger the animation states. It's like, if you character gets close to a pier and clicks it, then he gets the option to fish. If the player clicks "yes". The you go ahead and start playing the animation state. this would have no need for other character input. but would work best for constant animation states (like taking a sit and fishing). To avoid the player from messing the animation, by walking or running while he fishes, you would need to make sure the fishing animation occurs inside a cutscene. (Like it's usual in many games.)
  • edited September 2016
    For the health bar, it would be very easy to do if you use a health bar which only measures up to a 100 (100%). Showing numbers and health at the same time if they go beyond just a hundred is more complex. But anyway, you'd need an AC float Global variable and a Slider which can be an AC slider or a UGUI slider. Then in the menu manager, you can link the slider to the global variable. that way, adding or removing points will just be a matter of using Variable:Set actions. And that will immediately affect you slider :) But be mindful that sliders work with float numbers, so you'd be giving 0.01 to mean 1%. 

    The coolest thing about using AC Global Variables is that AC automatically saves their content when you save your game, that's saves you a lot of headache. 
  • edited September 2016
    Ah, but if you already got the Motion controller or some other controller you could check their built in way to call an animation through a selected key. I think motion controller and all the rest already do that for you. most of them should have an option to add custom abilities/animations, so you can assign the new animation and the key you want it to react to. But you'll still need to mess with the animator a bit though.

    Anyway, sorry if one of my posts felt somewhat harsh. But I wasn't really trying to offend you or anything. I used to work at a call center and I'm used to being very thorough with my explanations (and people sometimes get annoyed). Also I couldn't stop myself from voicing a situation which has been worrying me lately... But anyway, what would be the way in which your animations would play out? will they be immediate through input? or will they run in cutscenes, or both? 
  • Thank you for your time in helping me @Alverik
    I really appreciate that because not many people will consider another's situation so much.
    Also, I don';t tend to read forum posts as offensive, and particularly when I'm struggling through a problem and people are trying to help get to the root of the problem.
    That being said, I am still on my own mecanim script now. I'm so interested in some of the different options you've suggested. Ideally, it would be easiest to have a hotspot 'location', like the pier example of being able to chose a hotspot, then fish, and the animation play due to hotspot selection.
    I would absolutely do that, if I didn't have to consider a melee combat situation.
    Where did you ever get the idea to have a parallel process as an Action List running to look for input? That seems like a great solution. It's really beyond something I would have thought of and it made me think I should really look over the AC manual and learn it more thoroughly. I know Unity so well, but I think some of my problems stem from not knowing more about AC.
    I'm just posting a quick update as I haven't committed to a workflow yet, but I will be back after considering all your advice.
  • edited September 2016
    Yeah, It is not mentioned in the manual explicitly I think, but you can build loops, the same way you'd do in programming. You can do this with any Check:action. If it has a false or true end results then you can just tie the result back to the same action and it will keep running. In fact I posted a tiny article in the wikia showing how to count time using that method (Chris told me about that one a long time ago, so it was easy to rethink it for other stuff). You use Engine:wait to wait one second, then use Variable:Set to add a +1 to a timer Variable, then you just connect that back to the first Engine:wait action. That way AC increases the counter every second, so it works like a timer. 

    It's still a mystery why it's not obvious in the manual that you can make loops, but it could be because having too many of those could get laggy (never tried though). So, it's better not to have them abused, I guess. But I may be just rambling, I haven't asked Chris about it, so I have no idea.
  • Anyway, can you give me a better idea about how you picture battle? It'll be hard to think of something until I know what you have in mind excatly.
  • Have you ever played the Elder Scrolls online (in 3rd person)? I am aiming for a camera just like that one, and a combat system like that too, at least control-wise. I will describe it in case you have not played it, and bear in mind, it's a game quite different from Elder Scrolls in terms of movement and animations.
    The animations are very crisp and accurate. It is a little like Dark Souls in terms of that. For camera movement, the player just moves the mouse without pushing buttons and it moves the view around the screen. Left-clicking controls everything - interacting, attacking, while right-clicking performs a block (with a shield or with a weapon)...
    While that game allows for skills to be used, that's not my goal right now. I just want to be able to perform an attack from an array that allows for 3 different animations at random, and blocking to be another animation. To take things one step further, I WOULD ultimately love to be able to hold down the L mouse for longer to perform a heavy attack. Secondly, I am planning to use interactions with hotspots for things like fishing. So the player must approach a designated area to fish or harvest, and the animation is a result of the interaction.
    Thus my only controller issue is overall smoothness, blocking and attack, block handled with R Mouse and Attack handled with L mouse. The smoothness that comes into play is a sort of heaviness, or recognition that appears as a result of the performed action. I'm thinking of using blend trees for this.
  • edited September 2016
    Here is an update: I have been working on my controller instead of going for a custom one. That is, I am using Mecanim control through AC and it's player/paths option. I am using the Direct Control, Third Person. I'm having the problem of the controller being 'drifty'.
    I tried the same controller on the same model with a basic script, and just basic walking and running is smooth and as expected. There is no drifitiness. As soon as I hook up the same controller with AC, I start feeling like I have less control over the player and turns feel wider and bulky. Sometimes, the character even just runs in place or starts moving very slowly. I can capture a video of this event if no one knows what I'm talking about. It's not my animations, either, as I've gone into the Import settings, verified my average vel. is at (0,0, z), with loop matches.
    I'm wondering if there is something in the AC script that I am not accounting for when trying to use direct control/third person? I just know I a m missing something.  I really have tried adjusting everything, including the camera and have it in what I think is a good place.

    I still need to add the support in my  controller for the other custom animations, but I want to try and solve this problem as well.

    possible solution: ***It looks like increasing the MASS of the player by a high amount has possibly solved this problem.
  • edited September 2016
    Yeah, things like mass will affect character controllers differently depending on how they've been coded. I've personally read all 3 threads for the major controllers (Motion Controller, TCP and Invector) and you'll sometimes hear stuff like that too. I really haven't tinkered with AC's native controllers though, so I can't say. 

    Anyway, back to your battle mechanics. If you want to avoid scripting, you could probably try the input check method I described above. For the attack, after your input check goes true, all you would need to do is to run a variable:Check Random (I'm away from my PC, so the name might be slightly different, but its there). With that action you can set as many possible "lucky" numbers (all of them with a chance to be true), in this case you would have 3 possible numbers. Each of this results would lead to play a different animation. Then, each would return to the initial input:Check action an continue monitoring input. You could do the same with the Block animation, you could also have random animations to spice it up a bit. I see no problem in that.

    For most cases this should work as is. If you have created the transitions in mecanim your animations will cross-fade from any state, so it would be safe for the player to interrupt actions midway.

    Also, In the case there's an animation or other process which you must ensure is not interrupted, you could throw in a Global variable (to use as a switch). 

    Say your 1 numpad key starts playing a skill, then you would immediately change an: Skill_IsPlaying AC global variable inside the actionlist that plays the animation. You would set it to true using a Variable:Set, then, right before the action returns to the initial check, you would run a Variable:Set again to set it as false. And now, you could have any other actionlists reading this variable before running. I.e:even if the check goes true in Attack and Block, it would first go into an action which checks the Skill_IsPlaying, if it is true, the you would just go back to check for input again (basically ignoring player input, until Skill_IsPlaying is false). 

    Now, I can't recall, but I think AC has the option to wait for the current animation to finish before the actionlist moves on to the next action, which would cover you heavy attack (you'd just change a variable IsHeavyAttack to false, once the animation finishes, right before going back to checking for input:Checks). But in case my memory is failing me, you could also use the timer method I mentioned before. Right after the heavy attack animation plays (and you change IsHeavyAttack to true), you could start an Engine:Wait set to the duration of you animation, so the actionlist would wait until the time is up to change IsHeavyAttack  to false.
  • I am using Opsive's TPC with Adventure Creator and it definitely works, with a Bridge script between the two (provided by Opsive) that allows AC to take over during cutscenes etc.

    They also now have adjustable camera states - for example changing the zoom amount when aiming different weapons. Opsive also always update their integration whenever Adventure Creator is updated (should it be required).In addition, I spoke to Tony at Pixel Crushers and if you use Dialogue System, the player's health & inventory can be saved, as DS variables are synced with AC's (Adventure Creator is still the "base" of the project).

    Just thought I'd weigh in with a little info, since I'm also making a 3rd person game with combat elements, and the controller is obviously very important.

  • I am changing the topic a little here, but I didn't want to make a new thread quite yet since it still involves third-party control.
    I have decided to go back to a custom controller. Even though adjusting mass worked, for some odd reason, I just can't make the controller work well with in third person.
    Even though I could write a script for a mecanim controller and it's corresponding camera (I actually already have those), I may just opt for either TPC or now, UFPS. The reason for my change because while I know how to write MY systems, I don't know how to tie my systems into AC very well. I can't afford to miss something and I know it will happen. Therefore, I want to go with a third party controller that is very easy to Integrate. Yes, I want something that will not throw errors right out of the box. Of course I can script if I need to, but I want it to be obvious what I have to change or script, if that makes sense.
    This is why I am now considering one of the two - TPC or UFPS. I want to do an adventure-style RPG that allows for some nice-feeling combat, but there are not a lot of deep, advanced features. The player has health and the enemy has health. The animations are simple melee ones that blend well, and I want to be able to use AC heavily for cut-scenes and dialog. With those things in mind, would I have that much difficulty bringing in TPC? Or would it be much easier on me to bring in UFPS for the melee combat?

    Also @Alverik - thanks for your help. I wanted to use the steps you covered, but because my controller on a basic level is not working for me, even after increasing mass, I think it is just the nature of the third-person controller and possibly the camera in AC. It is not really touted as meant for the  type of control I'm looking to bring in. I've spent all this time trying to make it work and as I noted in a response, I am no beginner to Unity. I don't think there is anything I haven't tried other than getting into the scripts. I think I should move on to one of the control-systems.

    Anyone with thoughts on the specific question of ease of integration in AC of one over the other?
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 Adventure Creator.