Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

[RELEASED] TopDown Engine by More Mountains [new v1.5 : grid movement and new demo]

Discussion in 'Assets and Asset Store' started by reuno, Oct 9, 2018.

  1. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    Thanks a lot! I usually always have the required packages installed and updated, but I'm glad you're up for support in case something goes wrong :)
    But first, we have to wait for that update ^^
     
    reuno likes this.
  2. hsshin87

    hsshin87

    Joined:
    Jul 14, 2019
    Posts:
    2
    HI, Im using this asset and i think this is so great and powerful engine. thank you Reuno.
    but i'm just wondering when are you going to release next version with multiplayer.
    As you mention in roadmap, next coming version has multiplayer. Maybe it will be online based i hope.
    Can you tell me roughly when it's coming out?
     
  3. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @hsshin87 > Multiplayer support has been in the TopDown Engine since v1.3. You can see a full list of features on the asset's page. As for next versions, I don't give ETAs, as explained in the FAQ.
     
  4. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90
    Hello, I'm using the KoalaModel as player and try to change the weapon with script like this:


    Code (CSharp):
    1. public GameObject MyPlayer;
    2.     public Weapon PlayersWeapon;
    3. ...
    4. ...
    5. MyPlayer.GetComponent<CharacterHandleWeapon>().InitialWeapon = PlayersWeapon;
    But this does not change the weapon, the initial weapon is still there,how can i change the current weapon?
     
  5. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @knuppel > As explained in the documentation (or the class itself) :
    upload_2019-8-22_11-45-52.png
    You'll find tons of examples of that in use in the asset.
     
  6. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90
    Thank you reuno,

    MyPlayer.GetComponent<CharacterHandleWeapon>().ChangeWeapon(PlayersWeapon, "KoalaGun");

    but now, CurrentAnmoLoaded=0, how to load anmo when it's changed?
     
  7. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @knuppel > Please look at the documentation and the many, many examples of that in the project, it's all explained in details.
    If the problem persists please use the support form, thanks.
     
  8. Svonsil

    Svonsil

    Joined:
    Jun 24, 2018
    Posts:
    10
    Hello! I purchased the TopDownEngine and have a problem. When I use characterOrientation with flipping the model the model becomes very small when I start moving. How can I fix it?
     
  9. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Svonsil > That's unheard of. My guess would be you've got a scale issue somewhere, but without any context it's quite hard to guess. Please use the support form and provide more info, I'll be happy to help.
     
  10. Svonsil

    Svonsil

    Joined:
    Jun 24, 2018
    Posts:
    10
    Hello. I'll try to load a new project tomorrow and if it doesn't help I'll record the video
     
  11. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Svonsil > No need for a video, just reproducible steps from a fresh install via the support form will be enough.
     
  12. Svonsil

    Svonsil

    Joined:
    Jun 24, 2018
    Posts:
    10
    Hello! I solved my problem. Can you explain to me how to animate the melee weapon using its own animator. It's said only how to animate it using Player's animator in documentation

    .
     
  13. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Svonsil > Put an animator on your weapon, put animations in it. Bind your animator to your weapon using the Animator field. That's it, it's that simple. You can learn more about it in the documentation.
     
  14. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    1,489
    Hi.

    How can I aim using the controller's right stick? It only aims using mouse. It moves and all with controller ok.
     
  15. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
  16. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    1,489
    I am not sure what could go wrong, but one of the script is apparently missing on the camera of the demo scenes, making the camera not following the player.

    I have tried to reimport the asset but still does not fix the issue.. 2019.2.1

    What is the name of the camera script that makes it to follow the player? I want to try and see if it actually exist in the project.
     
  17. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @castor76 > That's usually CinemachineCameraController.
    I've never heard of it disappearing though :) What's likely happening is that you don't have the proper packages installed. I'd strongly recommend reading the how to install section of the documentation, it'll likely solve your problem.
    If the issue persists I'll need more info to help, please use the support form and provide some details.
     
  18. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90
    I don't get you, could you be a bit more detailed?
     
  19. Boom_Shaka

    Boom_Shaka

    Joined:
    Aug 31, 2017
    Posts:
    102
    What I mean is study the code - it will show you how to construct your own actions and decisions. Everything is commented so you what each step does.

    I don't want to post Reuno's code here, but open up the MoveTowardsTarget2d action and look at the "move" method - it's based on the brain target's position. Replace that with the player's position and you now have a MoveTowardsPlayer script.

    When in doubt, review the documentation. The video tutorial on AI explains the process pretty well
     
  20. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90

    Thanks for your tipps, reuno, too! I'm a little bit closer to achieve my goal.
     
  21. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    Hi, if I want to make let's say a co op game, and each character would have it's own inventory how can I make objects pickable for both, because on the item you need to specify the inventory and if player 2 picks it up[ it goes to player one inventory any help?
     
  22. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Shiack > There's no example of that yet in any of the demo scenes (it's on the todo list though).
    In the meantime it's relatively easy to do. Basically you'll need a new picker class that finds the picking Character's target inventory, and sends the item in it, instead of the one set in the scriptable object.
     
    Shiack likes this.
  23. hsshin87

    hsshin87

    Joined:
    Jul 14, 2019
    Posts:
    2
    Hi

    I would like to make Rifle gun can shoot 3 bullets at once.
    I mean that the bullets are fired sequentially with one click, not like the shotgun or spread type.

    I tried to make Coroutine method for clicking button three times. But i think it’s not make sense.

    What should i do?
     
  24. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    cool I'll get to it
     
  25. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @hsshin87 > A coroutine that triggers the weapon's methods seems like the best way to do it.
     
  26. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90

    Hello, on my scene objects are shaking a little bit, they are not really fixed.
    The closet seems to glow a little bit. Are this effects of one of the cameras? Can i turn this effects off?
     
    Last edited: Aug 29, 2019
  27. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @knuppel > I don't know your context, I can't answer that for you. And again, please use the support form, thanks.
     
  28. mccann

    mccann

    Joined:
    Sep 24, 2013
    Posts:
    29
    @knuppel - In the Virtual Cameras (i.e. in Koala2D, it is CM vcam1), you can disable the different MM features like: MM Cinemachine Camera Shaker to get rid of the shaking.
     
    reuno likes this.
  29. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
  30. esteban16108

    esteban16108

    Joined:
    Jan 23, 2014
    Posts:
    88
    @reuno Hi, I'm working on a Tank player, I'm wondering if you can give me some advice on how you think is the best way to implement the turret as a non pickable weapon with ammo?
     
  31. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @esteban16108 > Create a new weapon with ammo, name it turret, add a weapon aim component to it.
     
    esteban16108 likes this.
  32. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    Good news everyone, I've just pushed v1.5 of the TopDown Engine to the Asset Store.
    As usual, this update fixes all bugs known to date, adds quite a lot of quality of life improvements, and a bunch of new features. The main one is the support for grid movement (think Pacman), and comes with 3 demos of it, 2 minimal ones and a fully featured bomberman remake, complete with bomb pickups and chain reaction explosions.
    Expect a few days of delay (up to a week these days) before it actually hits the store, and note you'll need 2019.2.1f1 or more to install it.

    Here are the full release notes, I hope you'll like this new version!

    - Adds CharacterGridMovement, a new ability that replaces regular movement with grid based movement, guaranteeing that whenever your character stops it stops perfectly on a tile (this works in 2D and 3D)
    - Adds the Minimal2DGrid and Minimal3DGrid, two examples of how to use the grid movement ability in 2D and 3D
    - Adds the Explodudes demo scene, a complete 4-players local multiplayer game where you drop bombs, break crates and destoy your opponents, packed with game feel and features and demonstrating at scale how grid movement can be used
    - Adds a new Aim Control mode for Weapons : SecondaryThenPrimaryMovement, allowing you, when using a gamepad, to revert to primary movement for your weapon's direction when the right stick isn't active
    - Adds a new Aim Control mode for Weapons : PrimaryThenSecondaryMovement, allowing you, when using a gamepad, to revert to secondary movement for your weapon's direction when the left stick isn't active
    - Adds the NinjaRifleman, a new example of how you can create a 2D AI agent that shoots a gun
    - Adds fader round, a new way to implement fade transitions, and more fade options to Teleporters and LevelManager
    - Adds the DashZone3D component, that lets you trigger dashes when entering a zone
    - Adds the CrouchZone component, that lets you trigger a crouch when entering a zone
    - Adds the WeaponModel class, that ensures a model separated from the weapon itself aims at the same target at all times
    - Adds native MMFeedbacks slots to all abilities
    - Adds forced crouch option to CharacterCrouch
    - Adds DashStarted animation parameter to CharacterDash3D, a boolean only true at the frame the dash starts
    - Adds a WeaponUsed feedback at the CharacterHandleWeapon level
    - Adds an option to CharacterHandleWeapon to specify a spawn point for projectile weapons outside of the weapon itself
    - Adds an option to (not) pause the game when opening an inventory
    - Adds support for facing direction on checkpoint for 3D characters as well
    - Adds an option to prevent input on CharacterMovement
    - Adds an option to further interpolate movement on CharacterMovement, allowing for smoother walk > run or walk > crouch transitions
    - Adds an option to prevent rotation on CharacterOrientation3D
    - Adds new animation parameters to CharacterOrientation3D, RemappedForwardSpeed and RemappedLateralSpeed, giving you a remapped value between 0 and the max run speed, and YRotationSpeed, an instant snapshot of the current rotation of the model, useful for animating in place rotations
    - Adds an option to apply a forced rotation via script to CharacterOrientation3D
    - Adds an option to CharacterRun to auto run after input passes a certain threshold (instead of just pressing the run button)
    - Adds the option to have the Character class send a random parameter to the animator for native randomness in animations
    - Adds more options to WeaponIK to optionnally bind only the left or right hand, and tweak that at runtime
    - Adds a customizable ComboInProgress animation parameter to combo weapons
    - Button Activated Zones now can self-disable after their last use.
    - Improves button prompts, better architecture and performance, and can't get stuck mid way when entering / exiting a zone quickly anymore
    - Faders can now run (optionally) on UnscaledTime
    - AutoRotate now lets you decide if you want to perform movement on Update, LateUpdate or FixedUpdate
    - AI Weapons now perform auto setup in case some of their settings were incompatible with AI weapon handling
    - Each MMFeedback now has a customizable Chance to be triggered
    - MMFeedback's camera shakes can now be repeated until stopped
    - MMFeedbackParticles can now be moved to position on Play()
    - MMFeedbackParticles can now be played on demand, or cached and reused for better performance
    - MMFeedback's Position, Rotation and Scale now let you animate x,y and z independtly
    - MMFeedback's Sounds can now be pooled for high demand sounds
    - Adds input buffering to the CharacterHandleWeapons ability, to help with chaining attacks together
    - Adds a few random helpers : audio analyzer, gyroscope rig, moveable post processing filters
    - Healthbars can now run on UnscaledTime
    - Adds support for strict 2, 4 or 8 directional movement to characters
    - Fixes a bug that could cause an error on death with CharacterInventory when no Weapon inventory was present
    - Fixes incorrect channel bindings in the Grasslands demo scene in split screen mode where effects wouldn't be triggered in the appropriate part of the screen
    - Fixes a missing PointsWhenDestroyed implementation
    - Fixes a bug that could kill the player on spawn if a damage on touch object was placed at origin
    - Fixes an aiming issue that could occur with AI characters when getting too close to them
    - Fixes wrong inventory open key binding in the PixelRogue demos
    - Fixes the description of the Koala Sword
    - Fixes a bug that would let pressure pads be activated multiple times even when instructed not to
    - Prevents a bug with MMSquashAndStretch and freeze frames
    - Fixes a bug in the way a weapon's absolute aim direction was computed for 2D AI agents
    - Fixes a typo in ButtonActivated's UnlimitedActivations
    - Caches a reference to camera.main in MMAim
    - All cameras now use positive depth values for LWRP/Universal support
    - Health now forces any delayed destruction to cancel for added safety
    - MMFeedbacks now expose a IsPlaying boolean, letting you know if a feedback is in progress or not
    - MMTimeManager now also modifies delta time values to match the new timescale, improving rigidbodies behaviour
    - Improves the way items get added to the inventory when existing items are already present
    - Animator parameters are now hashed
    - ComboWeapon's ResetCombo method is now public to allow for combo cancel from external abilities
    - Extension methods are now all prefixed with MM for consistency
     
    Ronnie-Grahn, Necka_, mccann and 7 others like this.
  33. IndieGBA

    IndieGBA

    Joined:
    Oct 24, 2017
    Posts:
    8
    @reuno Hi, it is possible to make a projectile that can hit targets on two separate layers in a 2d project, like an aerial and terrestrial layer where by pressing a button the projectile affect either the ground or airborne targets. Please help me, if its possible! Thank you!
     
  34. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @IndieGBA > It's possible of course. You'd just have to dynamically change the target layer on the projectile's spawn.
     
    IndieGBA likes this.
  35. IndieGBA

    IndieGBA

    Joined:
    Oct 24, 2017
    Posts:
    8
    Thank you!
     
    reuno likes this.
  36. mccann

    mccann

    Joined:
    Sep 24, 2013
    Posts:
    29
    2 questions...

    #1 - In v1.4, I tried adding particle feedback to the impacted object but it didn't work. Nothing showed. Example: added a feedback item of "particles play" to the NinjaSwordMaster's DamageFeedback object. Particle wouldn't play on damage. When I added the particle under the NinjaModel, it did work. I didn't see anything in the Feedback code that would cause this. So, am I missing something?

    #2 - I want to see different splatter effects when something gets shot -- blood for enemy, rock debris for wall, etc. And I would like "bigger" bullets to cause more debris. What might be the best approach that sticks to the framework?
    Option (A): Use Events to add custom functionality looking for a MMDamageTakenEvent. (Might not be able to get the correct angle of impact though.)
    Option (B): Something else? (I could override MMFeedback to include instigator, etc but seems like a lot more work.)
     
  37. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @mccann > 1. There are plenty of examples of particle feedbacks throughout the engine. Without any info regarding your setup it's hard to tell what's wrong. Please use the support form if the issue persists.
    2. Extend Health to trigger different feedbacks based on damage type.
     
    mccann likes this.
  38. knuppel

    knuppel

    Joined:
    Oct 30, 2016
    Posts:
    90
    Hello reuno,

    i updated the asset on clean install of the privious asset.
    In Minimal2d Sandbox example, the orange portal is not working.
     
  39. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @knuppel > Please use the support form if you think you've found a bug, thanks.
     
  40. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    @reuno congrats on the new update, it's live on the store.
    One note though (didn't test past that): the install document has not been updated to reflect 2019.2 version

    upload_2019-9-7_0-43-56.png

    Definitely not a big deal at all, just nitpicking here :)
     
    reuno likes this.
  41. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Necka_ > AAAAAAH. I always forget a spot. Thanks, I'll fix this (for the next release).
     
    Necka_ likes this.
  42. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    I'm very interested by one of the new features in the list but I'm unfortunately not clever enough to figure it out, I didn't see an example of it and was wondering if you could give some insight about it (if you prefer I can send a support request though - just say the word and I'll delete that post and send it right away)

    - Adds new animation parameters to CharacterOrientation3D, RemappedForwardSpeed and RemappedLateralSpeed, giving you a remapped value between 0 and the max run speed, and YRotationSpeed, an instant snapshot of the current rotation of the model, useful for animating in place rotations

    I'm just wondering how to use those parameters in the Animator (I'm not affraid of building complex animator - just not understanding how this specifically works)

    If I understood the concept properly, that would allow for example the Suspender in Loft3D to have a weapon equipped, stand still and rotating the mouse around could potentially trigger some "in-place" rotation animations
     
  43. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Necka_ > They're indeed not used yet. I just thought it'd be nice to have more info in the animator about the speed of the character. And you got it right, the YRotationSpeed could let you trigger in place rotation, while remapped would let you easily setup a single animator node with 8 directional walk and run. That's planned for the next release, but don't tell anyone it's a secret.
     
    Necka_ likes this.
  44. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    I promise!

    Also I won't wait the next release and will start having fun right now with that :D I just fully understood the params roles!
     
    reuno likes this.
  45. Svonsil

    Svonsil

    Joined:
    Jun 24, 2018
    Posts:
    10
    Hello. Is it possible to create AI character that moves from checkpoint to checkpoint?
     
  46. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,112
    @Svonsil > The engine comes with an advanced AI system (fully documented, check it out), pathfinding examples and path follow examples, so yes, it's very possible.
     
  47. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    Feature request/vote/idea: Could there be an advanced footsteps system (for Sound FX) in the engine?
    When I say advanced I mostly speak about having the possibility of detecting either Terrain or Mesh ground textures and associate a few SFX to that texture (like Grass texture = grass footsteps sound / metal texture = metalic footsteps sounds / not assigned = default footsteps sfx)

    I see the use for my personal project but don't know if others would also want that
     
    IlyaKo, DrOcto, Muppo and 2 others like this.
  48. Muppo

    Muppo

    Joined:
    Sep 28, 2016
    Posts:
    216
    That was something I was working on Corgi Engine for my own project but it didn't worked fine enough and I dismissed it. Will be nice to have it on TopDown and eventually on Corgi as well
     
    reuno likes this.
  49. Boom_Shaka

    Boom_Shaka

    Joined:
    Aug 31, 2017
    Posts:
    102
    This. I'd like to see it as a component that also includes the ability to enable/disable character movement abilities (i.e. jump,dash, run). Combined with time zones and damage scripts, we could make some very specialized interactive environments and trap puzzles.
     
    DrOcto likes this.
  50. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    390
    Hello there, the suggestion guy again :eek:

    I finally started to approach the AI part, it's really an interesting approach and after reading the doc and watching the video, I feel comfortable starting with it (I did not, shame on me!)

    But the first thing I thought while watching the video and checking in the demo, is that the AI brain component, for let say some advanced AI (boss fight or what not) could get really crowded I guess

    Did you consider maybe for a future release creating a node based system as it's clearly a state machine system I was thinking something like the Animator (or any actual FSM visual scripting tool out there), nothing complex and not necessarily a Behavior tree. But just having the exact system we have today, in a visual way.

    Would not change how it works, just making it more visual

    That's it for today! thanks