Search Unity

[RELEASED] Acrocatic - Highly customizable 2D platforming character

Discussion in 'Assets and Asset Store' started by RobinBrouwer, May 7, 2014.

  1. nluckett

    nluckett

    Joined:
    Jul 30, 2014
    Posts:
    14
    Thanks! Cool, I got the Acrocatic Character Prefab in there as well as the Prefabs for Colliders so he can move around.

    Now to add my own sprites! So fun.
     
  2. nluckett

    nluckett

    Joined:
    Jul 30, 2014
    Posts:
    14
    Im digging deeper into this and wondering if there is documentation or if anyone can explain it to me... for animations that have multiple actions (for example, PlayerJump1, 2, 3 and PlayerDash1, 2 3....

    Going in I had expected the jump, dash and falls to just be an animation cycle, but I see that they are broken out. How come? Do these relate to the other abilities you can perform? Or are they to give the appearance of animation?
     
  3. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    Though the developer of Acrocatic made the Asset very organised and commented it very well, it still has intermediate level elements, like the Animator and its animations witch a person with beginner level knowledge may not understand. I suggest you look at the Learn section on the Unity website, at the Video Tutorials and Live Training Sessions Archive. To explain here everything would be quite hard.
     
  4. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    ahhh thanks very much, works fine now, i dont suppose you know how to trigger the blocks to fall when the player sticks to the walls on the side of the platform, so far the block only falls when you jump on the platform, thought it might be a good game mechanic to have it so it falls when the player sticks to the side
     
  5. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    One method would be to create a new script something like "IndirectPlatformSink" and add it to the SinkingPlatform object. Add a box Collider2D to this SinkingPlatform and position it on your wall and check Is Trigger. In the Script "IndirectPlatformSink" add the method OnTriggerEnter2D(Collider2D other). In the Start Method of this Script get the PlatformSink Component "sinking = GetComponent<PlatformSink>()" and check if the object that triggered the method OnTriggerEnter2D has the Tag Player. If true use the method sinking.StartSinkTimer();
    Not the best way to do it, but it should work.
     
  6. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    thanks for the help again, im pretty useless at scripting at the moment but il try and give it a go, are there any more ways of doing the same thing but without editing the script?
     
  7. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    If you mean editing the scripts that are part of Acrocatic, the method I proposed does not require the editing of the existing scripts. You just create a new script and add a few lines of code to it and that's it. As for doing something in Unity without creating a script, well that's almost impossible.
     
    Last edited: Aug 4, 2014
  8. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Wow, a lot of new posts to this thread. I somehow didn't receive any email about this, so I thought there weren't any posts. I'm sorry about that. I'll answer any open questions as soon as possible!

    Came here to post that Acrocatic is now in the Asset Store Madness Sale! 50% off for the coming 11 days. If the price was holding you back: this is the best time to jump in!
     
  9. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Again, I'm sorry for replying so late. I didn't receive any email updates and thought there weren't any posts.

    Thanks! I added it to my backlog and will look into it.

    Yeah it should, but I think this is a bug I've encountered after releasing v1.1. Moving platforms that move when you jump on top seem to give an error. You can fix it yourself by opening the PlatformMove.cs script and change line 35 into the following: platform = transform.parent.GetComponent<Platform>();

    Thanks for your feedback. I'll look into putting everything in smaller classes. I first want to add all the features before looking into that, so maybe that'll be added in some kind of version 2.0 overhaul. ;)


    Added to the backlog. :)


    Yup, it's still being worked on. Haven't been able to put as much time into it as I wanted, but it's slowly coming along. Standing on top of ladders is something I'll look into for the next version. Jump through platforms will also be added, so I can use those to add that functionality. Ledge hanging is also planned for the next version.

    Not anytime soon though, because I'm off on vacation the coming weeks. Sorry about that. Hoped to release v1.2 before my vacation, but my spare time got sucked up by refurbishing my house. :(


    Now for some general comments.

    - Some asked how you could add Acrocatic to existing projects. I created Acrocatic with the idea of it being a template to start from. So I haven't really looked into putting it in existing projects. It should be possible. Just add the Acrocatic folder to your game and use the prefabs to create your levels. It should work, but as I said: I haven't tested that.

    - And some parts of Acrocatic are indeed intermediate and some Unity knowledge is required when trying to change the animations and other stuff like that. I advice everyone to check out Unity's Learn section and some of the Live Trainings my Mike before diving into the harder parts.

    - I also want to thank everyone for helping others inside this thread in the time I wasn't receiving email updates. You're awesome! :)

    - If I forgot any questions: please let me know. I'll also keep watching this thread manually, since the email updates aren't really reliable it seems. ;)

    And again: Acrocatic is now 50% off in the madness sale. Be sure to check it out! :)
     
    Nicrom likes this.
  10. LaFleur

    LaFleur

    Joined:
    Aug 4, 2014
    Posts:
    2
    I've got a quick question! Is anyone else experiencing the character seeming to "stick" to the ground for a second upon landing when set to a high speed? Is there a way to get rid of this?
     
  11. quantumsheep

    quantumsheep

    Joined:
    Mar 9, 2013
    Posts:
    37
    I see what you did there ;)

    The cat looks adorable. I'll pick this up shortly. Seems rude not to at this price ;)

    QS =D
     
  12. nluckett

    nluckett

    Joined:
    Jul 30, 2014
    Posts:
    14
    Cool. I have loaded up some of the Unity Live Training videos to better understand. But can someone do a very general overview of why there are 3 jump states? Is it so the jump can be interrupted at different points?
     
  13. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    The basic idea it that the Animator will play a Jump or Fall animation depending on the Vertical Speed "ySpeed" of the player when he jumps or falls. This process is called Blend Tree. To see the Blend Tree, in the Animator Double Click the Jamp/Fall State.
    I recommend you watch the Live Training Session "2D Character Controllers" from the Archive, here is the Link http://unity3d.com/learn/tutorials/modules/beginner/2d/2d-controllers. This topic is discussed in this Session. You will better understand from the video.
     
    Last edited: Aug 5, 2014
  14. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    Which Speed are you talking about, Run or Jump Speed. I changed the values of multiple variables and still did not see the bug you are getting. What else did you change and what values did you use?
     
  15. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    I haven't really experienced that, but I guess it has something to do with the friction on the ground. You should try and play with the physics material's friction and the player's rigidbody variables. Getting the movement right for your game is a bit harder with physics based platformers, because there are multiple values that influence each other.


    Haha you got me. ;) Great! Have fun and if you need any help or have any feature requests: let me know. :)


    Like Nicrom said, the different sprites are used based on the ySpeed. If the player is falling, the sprite should reflect that. As you can see, the cat is facing upwards when jumping and downwards when falling down. So that's why I used the blend tree. :)
     
  16. LaFleur

    LaFleur

    Joined:
    Aug 4, 2014
    Posts:
    2
    Couldn't get it working. I notice it a bit even in your demo, v1.1 Basic. If you're running, perform a jump, and land while still pressing shift, your character walks for a second before running again. Unsure of if this is intentional or not. Probably just going to start my character from scratch. Thanks, though! Still a great product, 5 star rating for sure!
     
  17. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Yeah, I think that's because of the friction of the material. The friction in the air is 0 and then suddenly it becomes higher when you land, making the character slow down a bit because of it. It's hard to get rid of in physics based platformers. One solution is to set the X velocity directly instead of using AddForce, but that makes the player ignore the Physics Material and causes other issues. You can also try a very high Force for running, but I'm not sure if that'll work.

    Thanks for the rating and good luck doing it from scratch!
     
  18. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,324
    Asset works well in a fresh project,

    when I import it into my existing project that has other assets, it's creating a lot of errors because it's not in it's own namespace. Can you please add name space to the acrocatic.

    Cheers.
     
  19. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    I'll add a namespace in the next update. :)
     
  20. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    OMG, really love the Dash, Air Dash, Sliding and Air Slide feature!!
    this awesome feature is what makes your asset different than other 2D platformer asset!

    anyway, it's really looks like Sonic Boost movement.

    I have a request thought. Can you make so that when the cat is in Slide/Dash state, he is invicible to enemy and will kill enemy like Sonic Hedgehog Boost attack?
    or it will SUPER awesome if you can do Homing Attack while Air Slide to enemy XD
     
  21. _Arcadio_

    _Arcadio_

    Joined:
    Feb 17, 2014
    Posts:
    1
    Hello people!

    I am really new to coding and i am wondering how would you make a constant runner with Acrocatic.
    (Player starts to run on the start of the game without any inputs).
     
  22. Andreas Busk

    Andreas Busk

    Joined:
    Mar 21, 2014
    Posts:
    25
    Hi,

    There doesn't seem to be places where I can add audio sources to the cats movement(i.e a sound for walking, a sound for jumping and so on). Should audio be added in scripts?

    Best,

    Andreas
     
  23. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Great to hear you like the dashing and sliding. Attacks will be added in a future update and I'll consider making the dash an attack as well. Good idea! :)


    There is a 'hor' variable inside the Player script. The 'Horizontal' input is put inside that variable (a value between -1 and 1). You can set the 'hor' variable directly to a value like 1, which moves the player to the right. Hope that helps!



    Audio will be added in a future update. I'm new to Unity myself and made this asset while learning Unity, but I haven't had the time to jump into audio with Unity. I'm not sure how to help you with this issue. I think you should try and Google it or ask around in another section of the forums.
     
    Keitaro3660 likes this.
  24. Kenshin_

    Kenshin_

    Joined:
    Aug 8, 2014
    Posts:
    1
    Has anyone figured out how to do touch controls? and If anyone has, I was wondering if you could help me out
     
    Last edited: Aug 16, 2014
  25. spankminister

    spankminister

    Joined:
    Aug 8, 2014
    Posts:
    2
    I didn't see this in the docs, so apologies if I'm being a total noob here:

    - I started with the Player Prefab, and made a regular Platform.
    - Everything works fine
    - I started substituting in my placeholder sprites.
    - As soon as I try to move groundCheck, things go crazy, with the player constantly in falling state.

    Do I need to do something besides changing the circle collider on the ground and the groundCheck object? Screenshot 2014-08-16 11.54.46.png Screenshot 2014-08-16 11.54.55.png
     
  26. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    i'm with you.
    i already have Easy Touch, so i hope i can use this with acrocatic.
    haven't try it because i'm focusing in prototype first.
     
  27. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    haha i got that to in the first time i make new scene.
    it's just the problem with Layer.

    check this :
    -Platform is in Ground layer
    -in Player Script in Instance, make sure the Ground Layer is set to Ground
    -if that still not fix it, then you should just replace the Layer&Tag from acrocatic
     
  28. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    From what I can see from your screenshots, I guess the circle and box colliders are too big, causing the ground collider to never even collide with the ground. They should be as big as the sprite. Also make sure you set the PlayerHitbox variables to the right values (you can use the same value as the BoxCollider).

    I just got back from vacation, so I'm ready to resume work on Acrocatic and answer support issues with the usual speed. Sorry for the delayed answers the last couple of weeks!
     
  29. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    Hey, i was just playing about in unity trying to make the player stick to the walls of moving platforms and i noticed that while the player does stick to the walls of the platforms he stays stationary and doesnt actually move with the platforms, is there any way to make the player stick to the walls of a moving platform?
     
  30. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    Oh also i know that the pack comes with a built in death script but is there any way to incorporate a health system in aswell, see i want it to have a death screen before the level resets and a basic health system but im wondering if it would be easier to build a health and life system from the ground up and ignore the death script that comes with acrocatic, anyone have a similar problem?
     
  31. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    Oh another thing, ive been playing with the camerafollow script, which line would i have to edit so it followed an object other than the player, see the player character always stays around the center of the screen but id rather have it closer to the top so you can see the whole screen, the plan ive got is to link the script to an object attached to the player complex which i can then move around so the camera follows the object and i can change the players place on the screen
     
  32. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    Create a new Empty GameObject and make it a child of the player. Add a tag to it. In the CameraFollow script, in the Start method insert the tag of the object you want the camera to follow. For Ex: player = GameObject.FindGameObjectWithTag("CameraTarget").transform;
     
  33. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    Thanks nicrom im working on that now, for i while ive been having with collision aswell, it seems the player keeps getting stuck very rarely if he lands on the exact edge of a platform like in the picture
    error 1.png

    Anyone have any similar issues? i thought of using a polygon collider instead of a box collider to remedy it maybe, what do you guys think

    {EDIT} actually nevermind, i figured you can ignore the collision error by butting a wall as the material in the box collider
     
    Last edited: Aug 25, 2014
  34. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    It's possible, but requires some coding. You have to check if the wall is on a moving platform and you'll have to give the player the same velocity as the moving platform. It can get a bit tricky, so it's not an easy task.


    That will be in a future update when the character movement is completed.


    I see you figured out the other issues. That's great! Good luck with your project. :)
     
  35. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    Thanks very much, i look forward to the next update, any idea on when it will be?
     
  36. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    I have a question about the Animator. From what I can see, you converted the Idle animation to a Blend Tree. Is there a reason for doing so?. One of the disadvantages that I can see it that you lose the ability to set the point in the Walk animation where the transition from Idle to Walk should be made. While that is not a problem with the Cat animation, because it uses few Sprites, an animation that is composed of many Sprites, like a person Running looks a little odd, because you don't have the ability to set the point in the Walk or Run animation where the transition should be made.
     
    Last edited: Aug 31, 2014
  37. Karmate

    Karmate

    Joined:
    Aug 30, 2014
    Posts:
    40
    Hi Robin,
    I am a very very new to unity. I bought your asset. thank you for great work.
    but i have a problem about jumps. i want to develop a game for android. i changed "jump" inputs to "getmousebottowndown(0)" and i can't perfrorm a double jump. i perform triple jump every time.
    how can i fix this problem?

    thank you.
     
  38. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Not sure yet. Work is VERY busy at the moment, so I don't have a lot of time to work on Acrocatic. I'm still working on it though, but it's going way slower than expected. I hope to release it this month, but I'm not 100% sure. If I have a week when it isn't so busy, I could easily finish the update this month. Maybe I'll release an update without the edge interaction stuff, so you can at least play with some new features this month. I'll keep you updated. :)

    To be honest, I haven't really looked at that. Didn't even know I made a Blend Tree out of the Idle animation. I added it to my to-dos. :)

    Thanks for buying Acrocatic! Hmm that's weird. So you can double jump, but the third shouldn't happen? Or is the character triple jumping when you hit the screen once? If it's the first, you should try and log (using Debug.Log()) how many jumps are allowed to see what value is set there and when it's wrong. That could narrow down the issue. If you can't fix it on your own, you can mail your project to support@battlebrothers.io and I'll take a look. :)
     
  39. Karmate

    Karmate

    Joined:
    Aug 30, 2014
    Posts:
    40
    Thanks For Answer @RobinBrouwer

    I Created a New Projec with AcroCatic Only,
    I Opened "v1.1 - Platforms" Selected "SinglePressToJump on Jump Script,
    Started Game.

    Same Problem If I Press Space Button a Little Fast Performs a Triple Jump.


    Edit: Sorry For Bad English:)
     

    Attached Files:

    • 1.png
      1.png
      File size:
      118.3 KB
      Views:
      567
  40. mousse

    mousse

    Joined:
    Oct 3, 2013
    Posts:
    27
    Have you guys considered giving the option to NOT rotate the character when standing on a slope? Fairly important for old school type games.

    I'm excited to see where this goes since certain other controller projects seem to have stalled out.
     
  41. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    From what I can see, indeed there is a bug in the Jump. When you set the Jump Type to SinglePressToJump, for some reason you can Jump 3 times even if Total Jumps field is set to 2, 4 times even if Total Jumps field is set to 3 and so on. No matter what number you set, you can jump one more time. I did a little Debugging and it seem that something is incrementing the jumps variable in the Player Jump Class by 1 when Jump Type is set to SinglePressToJump.
     
    Last edited: Sep 2, 2014
  42. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Thanks for debugging. It indeed seems there's a bug when you enable single press to jump. Will be fixed in the coming update.


    I'll try and see if that can be added in the next update. I'm not sure if it'll work correctly because of some potential physics-related problems. But we'll see. :)
     
  43. Nicrom

    Nicrom

    Joined:
    Nov 17, 2013
    Posts:
    328
    Did a little more debugging and it seems that the if statement where the jumps variable is reset at the beginning of the Update method in the PlayerJump Class is executed again after the first jump when Jump Type is set to SinglePressToJump. From what I understand this should not happen. The way I tested this is by enclosing the line of code "jumps = doubleJumping.totalJumps;" in a if statement that is executed only once.
    Code (CSharp):
    1.         if (!jump && (player.grounded || player.IsStuckToPlatform())) {
    2.             if (once)
    3.             {
    4.                 jumps = doubleJumping.totalJumps;
    5.                 once = false;
    6.             }
    7.         }
    . Hope this helps you find the bug faster.
     
    Last edited: Sep 2, 2014
    RobinBrouwer likes this.
  44. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    Thanks! That will definitely help! :)
     
  45. mousse

    mousse

    Joined:
    Oct 3, 2013
    Posts:
    27

    Mr Greebone: Maybe you could try parenting the player object to the platform when he touches it and unparenting to separate?
     
  46. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    That's possible, but you'll have to make sure the player's velocity isn't being set directly, because that'll overwrite the player's velocity on a moving platform. I tried using that method with moving platforms, but couldn't get it working like I wanted it to, so I took a different route. :)
     
  47. LiberLogic969

    LiberLogic969

    Joined:
    Jun 29, 2014
    Posts:
    138
    I'm really loving this package. There's so much customization options and all the code is commented and easy to understand. Great work, can't wait to see what you do with this asset in the coming updates.

    With that said, I have a few slightly ambitious feature requests :

    Player ability to grab onto ceilings and climb/swing/move across them, similar to the wall running but on horizontal surfaces that sticks the player (hanging upside down or from their hands) when the top of their collider hits it?

    A Grappling Hook system that shoots a rope out a set distance and the end point sticks to surfaces which allows you to swing around. Doesn't have to be an accurate rope physics simulation just keep the player a certain distance from the stuck end and restrict movement to an orbit around it. Jumping would release your grip, move left or right would swing you in the respective direction while moving up or down would make you climb or descend the rope.
     
  48. mousse

    mousse

    Joined:
    Oct 3, 2013
    Posts:
    27
    I notice in the docs under "Backlog" for upcoming features you have
    • Experiment with rounded environments, rotating platforms and more.

    Does this include walking up slopes? My test project has a flat surface that meets a 45 degree surface and it just smashes into it like its a wall. :/
     
  49. RobinBrouwer

    RobinBrouwer

    Joined:
    Dec 9, 2013
    Posts:
    114
    It's great to hear that you like Acrocatic! The first feature request is something that I'll add in an upcoming version. The grappling hook is a nice idea and I'll add it to the backlog for review. :)

    Yeah, next version will have better support for slopes. :)
     
  50. Mr Greebone

    Mr Greebone

    Joined:
    Jul 24, 2014
    Posts:
    53
    hey, so ive been messing around with the box and circle collider trying to make it all fit my new sprite and ive discovered that if the circle collider radius is greater than 0.4 then the player refuses to stick to the wall, any ideas why?
     
unityunity