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 reuno, Dec 18, 2014.
sorry I overlooked Animation Parameters.
"Grounded" is Looks like it fits what I want
Hi @reuno, I have this problem using Spine:
I have a simple walk animation in Spine, when the character it's in idle and then starts to walk, it "slides" for a while in the direction i walk before the animation to starts for real. Same effect for run, but more visible due to the greater speed.
I copied the transtions parameters from the brobro spine character, but it's not working.
The spine is not baked.
I tried to play with instant acceleration and input treshold parameters too.
Am I missing something?
@luigi7 > That's unlikely to be something on the engine side, but more likely something in your transition setup in your animator. I suppose your transition isn't fast enough. I'd say it's also unlikely to be a Spine issue.
A simple way to see where the issue lies is to look at your animator at runtime. Does the Walking anim parameter turn true when you start walking? If yes, the engine is doing its job, and the issue is in your transition's settings, or your other states' transition settings. Making sure your transition can interrupt others according to your plan, and making sure they transition according to your taste will fix the problem.
maybe you are right, seems reasonable but i can't see anything here that could introduce some delay. I'll look better and eventually reply something here... thank you
player goes up when collide with some platforms.
In the following reference, I only use horizontal movement, but when collide with some platforms, it will make the player
goes up, how can I fix this problem?
Collide with one way platform https://i.imgur.com/b8ClQXI.gif
Collide with irregular platform https://i.imgur.com/16Y8UHY.gif
@CFK > If you think you've found a bug or run into an issue, please use the support form to report it, and provide context info (Unity version, asset version) as well as repro steps to your issue, ideally in any of the demo scenes, thanks.
Question for MM Feedbacks.
After reading the docs, I understand that MM Feedbacks can be used to make sounds in certain situations.
How do I run my own scripts using MMFeedbacks?
For example, I want to activate a script via "Damage Feedbacks" in the "Health" component when damaged.
@mk7gwc > I'm not sure I understand your question, what do you mean by "run your own scripts using MMFeedbacks"?
I wouldn't recommend using MMF to handle gameplay logic, but there are activation and event feedbacks if that's your question.
In any case, I'd recommend reading the MMFeedbacks documentation, it explains all there is to know about the system.
I tried "event feedbacks", but I registered the script in "Play Events ()" in "Events", but the script does not run. Is the registration method wrong?
@mk7gwc > Registered the script? I'm sorry I don't know what you did exactly. If the issue persists, please provide exact repro steps via the support form, thank you.
are you saying: run Script ABC when Feedback XYZ occurs?
you might want to try: when Event 123 occurs, run Script ABC and Feedback XYZ.
you can also post your steps/scripts on the discord channel. It's user-run and not affiliated with More Mountains, but somebody may have done something similar or have ideas for a workaround. (https://discord.com/channels/504379597794574339/507151392537051136).
It was a problem with my spine animation: it simply had a gap at the beginning, so it was playing the animation, but the first part of the animation was not walking for real
@luigi7 > I'm glad you figured it out, thanks for letting me know!
@reuno another question: is it possible to introduce a delay in the abilities? I'd need to start the jump animation a little before the character to move on y axis.
@luigi7 > Right now there is no such feature (mostly because the engine is built with responsivity in mind), you'd have to extend the jump ability to add it.
But feel free to use the support form to request it!
Done, i needed it only for jump ability and it was easy luckily
I can't make the jump blend tree to work properly: it works only going up, but when it goes down it does not play the right animation. The blend tree transition is based on ySpeed, like the one in your example. In the blendtree view, I see that the transition happens correctly when the character goes down and the ySpeed goes negative, but no animation is executed even if it's there and it works (in the SkeletonData plays correctly)
I'm using spine, if it may help.
@luigi7 > Do you think the issue is related to the engine?
Doesn't the ySpeed update correctly?
If it doesn't, is there any demo where I could reproduce the problem?
I am not sure but I don't think so, because ySpeed updates correctly. I can't repro the problem with your demo btw.
I believe it could help having falling state/parameter too, just like jumping because I can't make it function with blend trees: it there a combo of parameters so that I can separate two states jumping/falling?
@luigi7 > I don't think it'd be a good idea to multiply parameters when the data is already there.
What makes you "falling" is up to you and your context, but a simple version of it would be not grounded and speed is < 0, you're falling.
Feel free to add extra animation parameters if you prefer though, it's easy.
@reuno Hey dude. Ive got an archery character that I need to shoot differently when in the air/grounded. Should I just make a different weapon entirely and switch to it when airborne? Or should I expand the original to just act differently when airborne? Just wanted your opinion on what you think would be easier, as im terrible with code.
@CaptCollins > Both would work. I'd recommend extending to add a different behaviour when airborne.
Cool thanks man, i'll give it a go!
Adding more parameter would take me too far from the idea: I adopted corgi to gain time and use robust code, and more parameters means fit some code along with corgi .... so only if I can't do any other way - like for the delay question.
If anyone could be interested, I did it usign jumping for going up and jumping+ySpeed for falling, starting the jump state from idle/walk/run... and not from anystate.
Thanks for the help
Hi, I found a problem(or maybe a bug), at line 262 of MMHealthBar.cs, the _finalHideStarted set to true but it is not set to false in other places. this caused the monster cannot display the HealthBar after respawning.
@MoFaShi > Indeed a bug, fortunately it's been already reported and fixed for the upcoming v6.6. Thanks for reporting it!
Hi there. Quick question, is there a build-in mechanic on the engine, that the character can have a Mario like "skidding", (stops running in one direction, and turning to another one). Example: In Super Mario 1, when you are running to your right, and if you make a turn to your left, the character keeps the inertia the right for like, 0.5 seconds, before turning to the left? If it doesn't have it, where should i start making this ability?
Edit, I kind of got it working, playing with the values on Corgi Controller, but still would appreciate your take on how to manage, skidding (changing directions inertia move from Mario), on the animator.
Hi, I'm having a lot of fun playing around with the corgi engine. first question I have, how can I make enemies collide with each other? Do I have to do it via the AIBrain and target layer? DamageonTouch on the same layer doesn`t seem to work. thx
@piccolodmq > Right now there isn't, and it's something I'd tackle by either extending the controller to add it at its core, or by creating a new CharacterHorizontalMovement ability that would keep track of inertia.
@crom1979 > That depends on what you mean by collide with each other, really. If you want them to apply damage to each other, that's a setting on the weapon. If you want them to change direction on collision, that's via your AI action. You can't have them stack on each other, if that was the question.
@squarelover > Thanks for your feedback! I don't believe a framework has much impact on whether a game is a hit or not. The talent of the teams and what they bring to the table is what makes a hit, rarely (if ever) the tech solution behind it.
Hello, trying to use the ComboWeapon I get this
and can't see what I am missing.
The code is
public override void Initialization()
if (_damageArea == null)
_damageOnTouch.Owner = Owner.gameObject; // **** HERE LINE 65 ***
I used the RetroComboSword as ref and RetroCorgi to be sure I was not missing anything big.
@luigi7 > I just did a test in RetroAI, 6.5 on 2019.4.5f1.
Steps : install the engine, open RetroAI, press play, pick up the sword right next to the character, equip it, use it. No errors, everything's fine.
So I'll need a bit more info from you to be able to help, as it's never been reported either.
Please use the support form and provide any context info that may help (exact version of Unity, of the asset, context to repro your problem, etc), I'll be happy to check that for you.
I usually never ask this, but is there a near future update coming? I am always checking around. Also I am considering on buying your top down engine.
@piccolodmq > There is always an update coming
Another quick question ( I figured the Inertia, Skidding, mechanic thanks to your advice), so now I want to make a Mario like item system. Lets say for simplicity, I am remaking Mario in the Corgi Engine. I know about the Hipster Bros demo, But I want the 3 stages, of the character, one where he is like Small Mario, (one hit and dead), Big Mario with no power ups but one hit and he transform into Small Mario, and third one where he is Flower Mario, One hit he turns into Big Mario.
I was thinking of tweaking the Switch Character system and applied to a Item, (like the Mushroom item from Hipster Bros Demo). So for example Small Mario, touches the mushroom and becomes Big Mario, and then Make a third item, that makes Big Mario or Small Mario to Fire Power Mario.
How would you suggest making this type of character?
@piccolodmq > It's quite specific, so I'd create a dedicated manager to handle this. Tweaking the switch character system would likely also work.
hi new question.
about One Way Platforrm.
I only want to disable the actions that go down below this, where should I change?
I had a problem with MM Feedbacks last time, but it was my misconfiguration.Sorry.
@mk7gwc > I'm not sure what you mean by "actions that go down below this". If you mean preventing jumping down from a 1-way platform, there's an option for that, it's called CanJumpDownOneWayPlatforms.
Good new everyone, v6.6 of the Corgi Engine just landed on the Asset Store. With 105 new features, improvements or bugfixes, it's the biggest update to the engine ever (also the biggest More Mountains update ever).
It doesn't include some of the new features I had planned for it initially, but instead I wanted this update to focus on quality of life, to be a better foundation for what I plan on adding on next. This update introduces features, like the ability to split abilties and AI brains/actions/decisions over multiple objects, or the new Weapon inspector, that will make it easier to scale your game. And as usual, it also fixes all reported bugs to date.
Here are the full release notes :
- Adds new ways to build characters, by letting the user split the logic components across multiple levels, both at the abilities and AI levels. This allows for easier management, as well as nice features such as realtime AI brain swap
- Adds support for the "new" InputSystem, and two demos showcasing it, one single player, low setup required, and an event based multiplayer one
- Adds a new AI Action, AIActionMMFeedbacks, that lets you play a target MMFeedbacks when performed
- Adds a new AI Action, AIActionUnityEvents, letting you trigger any event via an AI Action
- Adds the MMRandomBoundsInstantiator, which lets you spawn random objects within a mesh's bounds on demand, by the quantity you want and optionnally rescaling them
- Adds MMObservable, a new class that lets you listen for value changes on other classes in a performant manner
- Adds a ctrl/cmd + L shortcut to lock/unlock the current inspector
- Adds the SwapBrain AI action, that lets you swap the current brain for another one
- Adds the RetroBlobWithAGunBrainSwap example enemy, that showcases both how you can separate abilities and brain from the top level of logic, and how you can use the SwapBrain action to swap between 2 or more radically different sets of behaviours
- Adds an example of separated abilities for a Player character in the Brobro demo scene
- Adds the AbilityNodeSwap ability, that lets you swap an entire set of abilities on a character for another, at the press of a button. Adds an example of it in the Brobro demo scene.
- Adds recoil and feedback hooks on use, hit, hit damageable, hit non damageable, miss and kill to all weapons (some limitations apply, on a per weapon type basis, but that's the general idea)
- Adds the CharacterAnimationParametersInitializer component, that lets you auto create animation parameters used by the engine on a target animator, to avoid having to add them manually.
- Adds an example of a repositionable mobile joystick to the MMControls demo scene
- Adds an example of a mobile swipe zone to the MMControls demo scene
- Adds the HitscanWeapon class, a new type of weapon that instantly damages its target.
- Adds the MinimalHitscanGun prefab, an example of a Hitscan weapon (best used by a Rectangle demo character)
- Adds the WeaponAutoAim component, that you can add to a Weapon (with its WeaponAim set to Script mode), and it'll auto aim at the specified targets, providing there are no obstacles between the Weapon and the target
- Adds the HitscanGun prefab to showcase both hitscan and auto aim. It's available for pickup in the FeaturesWeapons demo scene
- Adds almost entirely refactored MMProgressBar, a complete progress bar system, now more performant, less costly, with new SetBar methods, optional interpolation, hide and show methods, better inspector, text options, speed or duration based, increasing and decreasing delayed bar support, event hooks (on bump, increase start / stop, decrease start / stop, radial bar support, coroutine based architecture instead of Update, and a dedicated demo scene, MMProgressBarDemo
- Adds selector dropdowns to AIBrain, letting you pick Actions and Decisions without needing to drag and drop them
- Improves the behaviour of MMHealthBars to allow for easier disabling/enabling
- MMTimedActivation can now operate on frames (and not just time), and can now activate individual monobehaviours as well as gameobjects
- Adds an option to ButtonActivated zones to allow for button interaction and auto activation, allowing for example for auto activated dialogue zones where the user can still press to get to the next dialogue line
- Adds an option to SurfaceModifiers to only apply their force(s) when their target is grounded.
- The CharacterAutoMovement ability now supports gravity zones
- Adds spring mode to MMFollowTarget
- Adds options to every abilities' inspectors to specify states (both movement and condition) from which the ability can't be triggered. Useful to prevent a dash from executing while Idle or Swimming without a line of code, for example.
- Adds a DashAuthorized() bool method to CharacterDash, letting you define specific rules more easily in extended methods, and improves that check.
- AIBrain's ResetBrain method now also forces an initialization of decisions
- Adds a public method to AIBrain to reset it to its initial state from any class
- Adds new public methods to the CharacterSwitchManager, to force switches regardless of input, and to force a character switch to a specific index
- Adds an option to Weapon to set a force while the weapon's in use. Adds an example of that to the RetroComboSword
- Adds UpdateModes options to MovingPlatformFree
- Adds a ResetPath method to MMPathMovement, which allows for zipline reset for example.
- Adds an option to CharacterFly to stop flying on death
- Adds options to CharacterDash to limit the amount amount of consecutive dashes to a certain amount, and define how dashes left should get reset (grounded or time based), and adds atomic methods to test conditions and reset dashes
- Adds an optional cooldown to button activation
- Adds an option to CharacterHorizontalMovement to flip on direction change (on by default, which was the default behaviour so far, but can now be turned off)
- Adds a method to CharacterHorizontalMovement to set the air control base input value externally
- CharacterWallJump now modifies the base air control input value
-Adds an option to CharacterHandleWeapon to have the weapon aim control the facing direction of the character (so if you're walking left but aiming right, you're facing right). This transitions nicely to your previous facing mode (usually movement direction) if you unequip an weapon
- Adds Weapon Rotation Modes to CharacterInventory, letting you add either an empty slot or the initial weapon to the weapon rotation
- Rooms will now auto enable / disable their associated virtual camera on entry/exit
- Adds a method to DamageOnTouch to bind a CorgiController to it at runtime
- Points of entry now store the last requested facing direction
- MMHealthBar's gradients now get initialized with default values on creation
- Adds an option to MMHealthBars to nest drawn health bar under the instigator transform, useful when dealing with a ProximityManager for example
- Adds a public SetAim method to MMAim
- Adds an explicit option to Health to apply forces or not on death
- Improves the way MMAim clamps values
- Turns Character, CorgiController, AIBrain off while the timescale is 0 to avoid a tilemap collider bug
- Improves the MMBezierLineRenderer, which now works in editor mode as well
- ButtonActivated zones are now better at tracking multiple colliders
- Reworks the way DamageOnTouch's damage taken knockback system works, adding new direction options
- Improves the loading scene sequence
- AIBrains now force an exit state on death
- The AIBrain now calls EnterState on its initial state on Start
- Removes now useless Update in LevelManager
- Improves performance on ButtonActivated zones by removing an Update loop
- AutoRespawn now resets AIBrains on respawn
- Adds inspector groups to a bunch of classes for improved readability on long inspectors
- Adds debug tools to the MMFlash inspector
- The Health component now exposes the flicker color in its inspector
- Weapon's PreventAllMovementWhileInUse is renamed to PreventHorizontalMovementWhileInUse
- The Weapon inspector now refreshes constantly to display accurate state values
- The CharacterPause ability now checks if the ability is enabled before pausing/unpausing
- Adds a CacheAbilities() method to the Character class. Useful if you decide to add new abilities at runtime. It's recommended to avoid doing so, adding components at runtime is costly, it's best to enable/disable instead, when possible. When not possible, this new method will be useful.
- CharacterJump.JumpAuthorized is now virtual to allow for extension
- CorgiController now checks whether SurfaceModifiers are enabled before applying friction.
- Fixes a few animation transitions on the RetroBoss model
- Fixes a MMCooldown bug that caused wrong refill durations
- Fixes a bug that could cause a falling character to go through a fast one way moving platform
- Fixes a missing sprite bug in the SuperHipsterBros demo scene's bonus block prefab
- Fixes a typo in the CharacterSlopeOrientation's inspector
- Fixes a bug with the Bezier line renderer's loop
- Fixes a typo in a comment of the Checkpoint class
- Fixes a proximity manager frequency issue
- Fixes a bug that could cause button activated zones to keep preventing jumps after exiting them
- Fixes a bug that would cause nested object pools to not initialize correctly
- Fixes a typo in AIShootOnSight's help text
- Fixes a bug that could cause a character to climb a ladder without stopping when tapping quickly to start climbing and releasing instantly
- Fixes a bug that could cause self-knockbacking objects to trigger errors when applying damage to non Corgi controller based objects
- Fixes a CorgiController bug that could cause external forces to be evaluated incorrectly when no set force ability was present
- Fixes a typo in AIActionMoveTowardsTarget's OnExitState method
- Fixes an erroneous z coordinate on the RetroAI's Enemies container
- Fixes a WeaponAim bug that would cause constrained angles to not be taken into account properly when the Character was flipped
- Fixes a typo that would prevent debug draws from disabling correctly when using the Tools menu
- Fixes a bug that would prevent combo weapons to pass animation parameters to other models when using the SwitchModel ability
- Fixes a bug that would let combo animations continue when changing weapons at certain frames
- Fixes a bug that could cause erroneous wall jump force to be applied when ShouldReduceNumberOfJumps was false.
- Fixes a bug that could cause dialogue zones to not reset properly when disable after use was checked.
- Fixes a bug that would prevent the GrabCarryAndThrow ability to grab objects horizontally from the right when facing left.
- Fixes a bug that would prevent the crouch ability to be used on AIs in some contexts
- Fixes a null ref that could happen when CharacterJump's ResetCameraOffsetOnJump was true
- Fixes a bug that could cause AIs to keep shooting despite having exited their shoot state
- Sound feedbacks now don't interrupt prefab mode anymore
- Fixes inverted x and y in the outcome of MMMaths.DirectionFromAngle2D
- Fixes a rounding bug in MMTime.FloatToTimeString
- Fixes a bug that prevented SurfaceModifiers from keeping track of cooldowns correctly
- Fixes a bug that would cause the Airborne state to be false when moving over a bottomless pit
- The RetroCorgi's collider is now a bit narrower
- DamageOnTouch's DamagedTakenKnockbackDirection field is renamed to DamageTakenKnockbackDirection
- ButtonActivated's TriggerButtonAction method now requires an instigator gameobject as parameter
- ButtonActivated's _collider is now renamed _buttonActivatedZoneCollider to clear ambiguities
I hope you'll like this new version!
@reuno You seriously deserve a position in Unity team.
Thanks again for your effort.
Hi, I love the engine it's one of the best in the asset store. I need help, can someone point me in the direction of how to stop shooting if im carrying a crate? Where and how should i call that i have a crate in the hand? Here is a gif and u will see what i mean.
@Galllaa > You'd need to extend CharacterHandleWeapon to add an extra condition check to its HandleInput method. This check would have to look at the CharacterGrabCarryAndThrow ability's Grabbing boolean. If true, it shouldn't shoot.
Brilliant work on the update Reuno, stellar effort! I always love getting the Unity Store new release email notification and browsing through what's been updated, it feels like Christmas day.
Really appreciate the continued support man, it's incredible!
@Askins > Thanks, that's appreciated!
I'm wondering if I'm missing a setting, but while using the CharacterAbilityNodeSwap feature in the brobro scene, I'm noticing that if I'm facing right and shooting, then I press "P" to swap abelites, then walk left press "P" again, now when I shoot, I'm shooting behind the character. Is there some sort of direction update option I'm missing?
@reuno is there a way to implement such behavior: if I press shortly one button I get "ability 1" excecuted, but if I keep pressed the same button for longer "ability 2" it's excecuted instead. Like having the same button to produce light and heavy blows based on press duration.
Then: is there a priority for abilities? if I put an ability before another, is the first computed before the latter?
@pjooren > That looks like a bug. Don't hesitate to use the support form to report it.
@luigi7 > No, there's no built-in way to do what you're after. Each ability polls input differently depending on what it needs to do. You can extend them to implement your specific rules if you want, that's what they're designed for. As for priorities, it's usually bad practice to rely on execution order in your code, which, in Unity, you can't control unless you force it (possible, but really not recommended). Depending on what you're after, delegates or events may be better design patterns.
I'm having an issue with the new InputSystemManager script. When I open the MinimalLevel_InputSystem scene the InputSystemManager script gives an error in the inspector "The associated script can not be loaded..." This is happening on a new project with a fresh import of CE 6.6. I have done this on two different machines using Unity 2020.1.10f1 and Visual Studio 8.7.9. Also, when opening the script in VS intellisense does not work in this script but does in others loaded in the same project.
@andrin_man > Have you installed the new input system?