Search Unity

Motion Controller

Discussion in 'Assets and Asset Store' started by Tryz, Feb 21, 2014.

  1. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    @magique - in the code that calls those functions, are you getting references to IAttributeSource and IInventorySource, or to concrete implementations?

    I'm not really familiar with AOT, and I've never even built a project for an AOT platform, so I'm no expert. That being said, on the Scripting Restrictions page, the example under "Generic Virtual Methods" looks like the same type of scenario.

    So if you're getting the references using GetComponent<IAttributeSource>(), try GetComponent<BasicAttributes>() instead (assuming that you're using BasicAttributes).

    EDIT: it is also vital that the variable, field, or property holding the reference is declared as the concrete type and not the interface.

    @Tryz do you have any experience with this?
     
  2. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    The code I showed you was existing code in the asset, not code I added myself. For example, the following code comes from BasicRangedAttack.cs in the UpdateProjectileCount function:

    int lQuantity = Mathf.Max(mInventorySource.GetItemPropertyValueInt(lItemID, "Quantity") + rChange, 0);
    mInventorySource.SetItemPropertyValueInt(lItemID, "Quantity", lQuantity);

    And this following one comes from BasicDamagedReactor.cs Activate function:

    lRemainingHealth = mActorCore.AttributeSource.GetAttributeValue<float>(HealthID) - ((DamageMessage)mMessage).Damage;
    mActorCore.AttributeSource.SetAttributeValue(HealthID, lRemainingHealth);

    And there are other places using these same function calls.

    Yes, and the asset does already have a UsedOnlyForAOTCodeGeneration() in BasicAttribute.cs, but still has these issues in these specific cases. I tried adding my own UsedOnlyForAOTCodeGeneration() function in another place for Get/SetItemPropertyValue, but it didn't help.
     
  3. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    Okay. I wasn't at a computer when I responded, so I couldn't check the source code. ;)

    From the documentation, the code in the UsedOnlyForAOTCodeGeneration() method should work -- but obviously it doesn't. What error messages are you getting?

    I'll keep looking into it. Can you tell me which platform you're building for? I'll try adding the same one so that I can test it out under the same conditions.
     
  4. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    Here is the kind of error I get for these various function calls.

    ExecutionEngineException: Attempting to JIT compile method 'com.ootii.Actors.Attributes.BasicAttributeTyped`1<single>:GetValue<single> ()' while running with --aot-only.

    Unfortunately, this is for Wii U and you won't be able to build for that. But I would think this should occur on any AOT platform. Although I could be wrong about that.

    [EDIT]
    And just to reiterate, I have solutions for these issues and am not blocked by this, but if there were built-in solutions then it would help with future upgrades not having to fixup the code every time.
     
    Last edited: Sep 2, 2019
    Tryz likes this.
  5. BillO

    BillO

    Joined:
    Sep 26, 2010
    Posts:
    58
    Thank you for the information. I'll check out the Bone Controller for foot placement.
     
    Tryz likes this.
  6. BillO

    BillO

    Joined:
    Sep 26, 2010
    Posts:
    58
    Tryz likes this.
  7. Tryz

    Tryz

    Joined:
    Apr 22, 2013
    Posts:
    3,225
    Go ahead and private message me and @TeagansDad all the code that solves it for you; I'm not sure if what you put above is everything. I'll get it into the code base so you don't have to change it every time.

    That will be easier than us going back and forth. AOT isn't something I use or typically test against.
     
    Last edited: Sep 7, 2019
  8. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    Well, the code for BasicAttribute is pretty simple and solid, but the one for the Get/SetItemPropertyValue functions was a bit hackish. I just created separate function calls to directly get the results for each of string, GameObject, and int. If I have some extra time this weekend, I'll try to find all the places I changed and send it to you.
     
  9. antsonthetree

    antsonthetree

    Joined:
    May 15, 2015
    Posts:
    58
    Hello - I just purchased the motion controller and the shooter pack. I have followed the guides online and I have the demo scene working as expected.

    Then I added the Sneak motion to my character. Sneak works fine with the rifle equipped, however when the pistol is equipped and you hold down the RMB, the actor's spine gets all twisted up. I tried adding an 'AimSpineIK' tag to the Sneak motion, but this actually reversed the problem - pistol works fine but rifle gets twisted on RMB.

    This is all happening in a clean new project. Any ideas on how I can fix this?

    Many thanks
    Jake
     
  10. HeffeRS

    HeffeRS

    Joined:
    Apr 23, 2019
    Posts:
    3
    Hi, are anyone try to set TPS to FPS, Im trying to set TPS and FPS when get in targeting mode (aim, hands and weapons), but i dont know how, i disable player body and set only hands and weapons but i dont know how to animate hands using basic motions from shooting pack.

    Any idea how can i do that?
    If anyone do this, pls send me to see how that look.
    Tnx
     
  11. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    656
    I'd say either give your character separate parts, so you can turn off rendering the rest of the body when you don't need it, or create a dedicated FPS version of the character, and swap it for the TPS version as needed. The other way would be to continue using your existing TPS character, and simply attach the camera to his head, giving a player POV when in FPS mode, with the range limits/layer masks set to show his arms, but not the inside of his head or the rest of his body.
     
  12. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    110
    Building on what @FargleBargle said, you can use a tool like https://assetstore.unity.com/packages/tools/modeling/fps-mesh-tool-28006?aid=1100lGdc&utm_source=aff to slice your mesh to turn everything but the arms off or apply an invisible material to them.

    Then you could use a technique similar to this video
    that will allow you to switch between tps and fps.
     
    Tryz and FargleBargle like this.
  13. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
    Hello
    I'm trying to use MC + several Motion Packs with Inventory Pro, and I can't make It work. There's no Equiping/Storing Motions kicking in when equiping items from inventory. I've spent several days double checking the docs and video to no avail :(

    So my first question is is the IPro package the good one on ootii's vault, because the ootii demo scene looks unfinished (The database doesn't have the MC item stats for exemple, and Ethan doesn't use the Motions when equiping, he just move with MC but the equiping is just the IPro one (ie poping)).
    Could someone double check the demo scene in the package please?
    I wanted to compare the setup of the character and mine, but Ethan isn't setup with equip/store motion set up currently.
    (Additionnal note: With Basic Inventory it works nicely, so MC setup seems ok)

    Thanks in advance!

    Edit: Forgot to mention I'm using Unity 2018.4.8 and latests packages of MC+MP and latest InventoryPro (v2.5.16)
     
    Last edited: Sep 11, 2019
  14. lolaswift

    lolaswift

    Joined:
    Jan 10, 2019
    Posts:
    41
    Hi, sent two emails a few days ago. but no response.
    Questions:
    1. If multiple addons configured for the same player, is switching weapons and motions out of box?
    -- Watched the tutorial videos and got my answers :)
    2. Any examples or tutorials of controlling a non humanoid(a animal for example)?
    3. Any AI included?
    4. Mobile controls?
     
    Last edited: Sep 13, 2019
  15. Tryz

    Tryz

    Joined:
    Apr 22, 2013
    Posts:
    3,225
    Hi,

    I just replied. I'm jumping between countries right now with limited connectivity.
     
    TeagansDad and lolaswift like this.
  16. Tryz

    Tryz

    Joined:
    Apr 22, 2013
    Posts:
    3,225
    Last time I worked with Inv Pro was about 6 months ago and it did work then. The video I have on YouTube is older, but still worked. Of course it's possible something with Inv Pro changed.

    I won't be home for another 3 weeks as I'm traveling for work. When I am, I'll try it again.

    I wish I had a wicked answer for you.
     
  17. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,235
    Hello,

    I have a really basic question, I am a first time user trying to figure out some basic point and click navmesh based movement with motion controller. I watched the character framework video and read some of the manual and my understanding is that the motion controller is the driver component, however there are a few drivers included with the package as well - are these meant to be used instead of motioncontroller in cases where that complexity is not needed(no animation, just translation, etc.)

    In order to implement navmesh pathing with point and click would the expected workflow be for me to write my own navmesh input source and assign that to motion controller as the input source?
     
    Last edited: Sep 16, 2019
  18. Venecius

    Venecius

    Joined:
    Jan 9, 2014
    Posts:
    2
    Hello.
    I am using MotionController and I am currently trying the NavMeshInputSource.
    I observed two things.
    If the target is reached and the NormalizedSpeed = 0.3, then changing the Target has no effect. Is this the default behavior and NormalizedSpeed shoud be always in: {0, 0.5, 1.0} set?
    And I observed that when the Target is reached a TargetChange change has no effect if it is in the SlowDistance zone.
    Am I using the Controlers inappropriately?
    10x.
     
  19. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,235
    Hah, well thanks to the post right after mine I discovered the included navmeshinput source! I guess that answers my question!
     
  20. Venecius

    Venecius

    Joined:
    Jan 9, 2014
    Posts:
    2
    Yeap.
     
  21. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
    Hey @Tryz
    I could make it work finally, I probably missed something the first time, my bad :)

    I had an issue as I was trying to use an Inventory Pro made sword instead of yours, and when equiping this sword it was flying around the character but very far, so I didn't see it at first and thought the sword wasn't equiping at all because the camera was too close. But in fact the sword is "equiped" but its like 10m or more away from the character, flying around following the animation more or less. What could cause this? (I suspect it has to do with the collider and Trigger on the prefab, but what's the reason behind this?)

    So now I understand that I have to have a second weapon, specially for equipment and animations and to have the SwordCore on it, but no IPro component on it, and referencing this item in Resource Path (This part wasn't clear in the doc/video).

    There is an issue when swapping swords from the bag, the motion activate, the 1st sword is stored, then the equiping motion kicks in for the second sword, but it doesn't show (the sword model isn't there). Any idea where to investigate?

    On another subject, I'm trying to use all the Motion Packs together, especially the Shooter and Sword and Shield, and I'm not sure that was a great idea (to start at least). Any advice to get the Shooter going nicely with Sword & Shield maybe?

    Thanks in advance for your time, and good luck on your travels!
     
  22. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    110
    This is more than likely an issue with the swords position transformation. Did you zero out the transformation before you parented it to your character?
     
    hopeful likes this.
  23. Bucee

    Bucee

    Joined:
    Apr 20, 2016
    Posts:
    5
    Has anyone else found a way of combining the Combatant "Rotate to Focus Target" with automated movement through SetTargetPosition? I've tried using both so that I can have the player click-to-move but still rotate to enemies, but instead he just runs straight north no matter what. Instead of the Combatant Focus Target I've also tried using the Basic Walk Run Focus, but with the same problem.
     
  24. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
    @KeithBrown
    I childed the sword to Character's hand, then zeroed transform/rotation, then positionned "correctly" in hand, then copied the data to the separated sword. Isn't that the appropriate way?
    Thanks for trying to help :)
     
  25. Tiuri

    Tiuri

    Joined:
    Apr 5, 2019
    Posts:
    2
    Hi,

    how can I get access to all the variables of a certain spell, that I created with the spell motion pack. For example I have created the spell "Fireball" with the spell editor of the spell motion pack. I would like to change the "Cause Damage" (minimum & maximum) of that spell through code and of course at runtime, but just for one character. That means, if character A has "fireball" in his spell inventory and character B has the "fireball" Spell in his spell inventory, the change of the value should just affect one of them.
    The same goes for "Apply Force Spherical" and all the other great nodes in the spell editor.

    I thank you in advance

    Tiuri
     
  26. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    @Tiuri - There isn't any straightforward way of doing that, but it should be doable.

    The scripts for the spell assets inherent from ScriptableObject, so at runtime a copy is made for each instance of the spell (not within SpellInventory, but when it is cast). The variables for the min and max damage will be on the Cause Damage node. So you should be able to iterate through the nodes collection on the spell instance. Check if each node is of type CauseDamage, and if so, cast to that type and set the public variables.

    Ultimately, it would be nice to have a more flexible method that allows you to plug in predefined formulas for values like that, but there are no concrete plans at this point in time.
     
  27. Tiuri

    Tiuri

    Joined:
    Apr 5, 2019
    Posts:
    2
    Thank you very much for your quick response. I give it a try, if I can figure it out with your informations. :)
    To bad that there isn't an easier way^^.
     
  28. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    @TeagansDad @Tryz I started using a new character with the Archery pack today and for some reason the character's head does not look in the direction the bow is aiming. This new character is exported from Reallusion's Character Creator 3 program. The previous model I was using was a Fuse model and I didn't see this issue.

    upload_2019-9-21_12-48-19.png

    Any ideas what could be wrong and how to fix it?

    [EDIT]
    It seems the character doesn't look forward when walking with the bow either. I'm guessing some sort of mixup with the character bones maybe, but I don't know where to look for it. I'll check the character's bone configuration to see if I see anything not mapped correctly.
     
    Last edited: Sep 21, 2019
  29. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
    @Tryz @TeagansDad
    In BasicItemEquip.cs, line 450 why is "string rParentMountPoint" set to "Left Hand" ?

    Also what is this parameter string rItemMountPoint = "Handle" ?
    I don't see it used in the method, nor on the items. Is it used?

    (sorry if it sound stupid, just trying to figure out the code :) )
    Thanks!
     
    Last edited: Sep 22, 2019
  30. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    @Tryz @TeagansDad I have another issue. I have my own object inherited from IDamageable and it works fine when I attack it with a sword, but shooting arrows at it does nothing. Is there something that needs to be done to Arrows to make them work with IDamageable?
     
  31. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    @magique @drcfrx @Bucee - I will and try and get to your questions later this week, if @Tryz isn't available to answer. Likely won't be until Thurs or Fri... Been wrapped up in dealing with some health issues and other real life stuff the past couple of months.
     
  32. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    OK, thanks. I pray you feel better soon.
     
  33. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
  34. HeffeRS

    HeffeRS

    Joined:
    Apr 23, 2019
    Posts:
    3
    Hi guys, i have problem with integration with photon pun2, i read on this forum everthing about pun2 integration and try everthing, disable input sources, motion conroller.. etc for remote player and enable for local player, set up all photon view and photon animation view and dont work, I see player and scene but animations dont work, only hover on flor and all player rotate (look) at same direction.

    I dont know what to do, im lose days to fix that but i cant, are anyone have some tutorial for pun2 integration, on simple scene, im stuck i cant find solution... :(
     
  35. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    37
    Hi guys @Tryz @TeagansDad
    Sorry for the question, I'm trying to solve it by myself since several days but can't find a proper answer :/

    How can I hide the IdlePose between 2 animations?
    I'm trying to have several Idle animations playing at various times, they are all linked to IdlePose in the Idle-SM, and they play fine save that of course when they end, the IdlePose plays before another Idle plays. So the result is ugly.
    What's the catch to not have the IdlePose playing or be visible?
    (The Docs Faq talk about having several Idle, but it doesn't adress this point)
     
  36. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    @drcfrx - Ideally, you would write a new motion that inherits from BasicIdle which sets L0MotionParameter to determine which idle animation to play. I think I have an example kicking around somewhere, if I can find it.

    If you want to do it only in the animator controller, it's a bit tricky as the Any State => Idle transition is 0.25s (I think; I'm using my phone right now), so everything blends into the 1-frame IdlePose. You could try replacing the IdlePose animation in BadicIdle-SM with an animated Idle in the most neutral stance and have all of the variant idle animations transition back to that one when completed. You would need to trigger the transition to the variants via script, however.

    @HeffeRS - Hopefully @Tryz can give you some pointers with that. I have no experience with Photon (or with multiplayer/network in general).

    Everyone: I may not get a chance to answer the questions from last week until Monday or Tuesday. We're taking a short trip with the kids over the weekend. If Tim hasn't responded by the time I get back, I'll do my best to give some answers early next week. I answered the question about the idle animation because it was an easy one and I don't need to be at my computer with Unity and Visual Studio open. :)
     
  37. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    4,926
    @TeagansDad, have a nice trip! :)
     
  38. dmarot

    dmarot

    Joined:
    Jul 24, 2019
    Posts:
    5
    Hello, I have a question about what parameters to use for conditions in the jump transitions within animator, in order to trigger a different motion when jumping while running. I would like one animation used when walking, and another when running. It doesn't seem like there is an effect on phaseID from running. So I tried making the running transition to have >.51 InputMagnitude, and walking to have <.51 InputMagnitude. But it always seems to pick the new transition whether running or not. I can see that while walking the threshold doesn't go above .5, yet it will still trigger new animation when jumping. If I remove the conditions for the normal jump transition, (leaving the >.51 InputMagnitude for running jump) condition the new jump is never triggered.. I have tried using tons of different combinations of InputMagnitudeAvg, InputMagnitude, isGrounded, for both conditions. But it always seems to trigger only one motion or the other regardless of running, or walking, or standing still. Any help or direction would be greatly appreciated
     

    Attached Files:

  39. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    110
    The jump rise transitions to the jump rise pose when its animation is done playing. You can see this by clicking on the transition line and seeing that there is no conditions in the inspector. The jump rise to top transition does have a condition and it is L0MotionPhase = 203. So you can model your transition after this one. Just set the L0MotionPhase to another value during the the jump rise and you should be able to transition to your running flip forward.
     
  40. John-Lisenby

    John-Lisenby

    Joined:
    Nov 8, 2013
    Posts:
    114
    Hello,

    I am trying to integrate Emerald AI into the MC. For some reason, I cannot assess any outside scripts within the WeaponCore.cs. I'm following the integration guide step 12 on the Otii integration. I've tested with other scripts within my project, and the WeaponCore.cs cannot access them as well. Is there something I'm missing or these scripts cannot be integrated?

    Thanks,
    John
     
  41. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    656
    I just tried to build a test project using Unity 2019.2.6f1, and the latest version of TPMC + shooter pack, and got a build error saying;
    The only place I could find a reference to this was in a review of the shooter pack on the Asset Store by @BV123. He suggested moving "using UnityEditor.Animations; " in the ShooterPackDefinitions.cs script inside the #if UNITY_EDITOR section as follows:
    Code (CSharp):
    1. #if UNITY_EDITOR
    2. using UnityEditor;
    3. using UnityEditor.Animations;
    4. #endif
    Just thought I'd mention it here for anyone else having this issue - and so the fix might make it into a future update. ;)
     
  42. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    I think that it's because the inventory/equipment system first appeared in the Archery Motion Pack, so Tim assigned this default value to the parameter so that there would be a valid value if nothing was passed in.

    If you study the code in BasicItemEquip and BasicInventory, you'll see that both include very similar code for instantiating the weapon GameObject and attaching it to the character's hand. Around line 377 in BasicItemEquip.cs, within the CreateItem() method, you'll see this conditional:

    Code (CSharp):
    1.            GameObject lItem = null;
    2.             if (mInventorySource != null)
    3.             {
    4.                 lItem = mInventorySource.EquipItem(lItemID, lSlotID, lResourcePath);
    5.             }
    6.             else
    7.             {
    8.                 lItem = EquipItem(lItemID, lSlotID, lResourcePath);
    9.             }
    So under normal circumstances, if you have a BasicInventory component (or a custom component implementing IInventorySource), all of the instantiation/attachment logic will be processed in the IInventorySource.EquipItem() method. BasicItemEquip contains the logic to handle this in the event that there is no IInventorySource component present on the character. @Tryz was trying to make as few assumptions as possible as to how individual developers will use the framework that he has created.

    This parameter is not used in the CreateAndMountItem() method. Note that this method is virtual -- if you aren't using BasicInventory but still wanted to use Mount Points, then you'd need to create a custom motion inheriting from BasicItemEquip.cs and override this method. To attach a weapon using Mount Points, you also need the name of the Mount Point set up on the weapon (defaults to "Handle").

    Please let me know if you want me to elaborate on any of this.
     
    drcfrx likes this.
  43. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    Hi... my apologies; your question seems to have slipped through the cracks. Let me know if you are still experiencing this issue and I'll try and have a look at it for you.
     
  44. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    Not as far as I know. However, I haven't tried building damageable objects (i.e. that don't inherit from ActorCore) myself yet. Have you stepped through the code for the OnImpact() method in ArrowCore.cs? If you send me the code for your custom IDamageable object in a PM, I can have a look at it for you.
     
  45. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    Does Emerald AI use assembly definition files (.asmdef)? Any code that is contained within an assembly definition won't be able to access any code in your project outside of that .asmdef unless it is explicitly referenced. The ootii code base uses assembly definition files, so I'm guessing that this is probably the issue.

    Rather that directly editing an asset's source files in order to integrate with another asset, the better solution is usually to create a new C# file outside of either asset's folder structure (say in an "Integrations/Emerald AI" folder) and inherit from the class that you need to modify, overriding the necessary methods. This may require to you to do the same with any classes that already inherit from that class; in this particular situation, a number of classes already inherit from WeaponCore (such as SwordCore) which means that you would need to override all of those classes as well. This is obviously not ideal.

    A better solution might be to create an EmeraldAIDamageable component that implements the IDamageable interface. The DamageMessage parameter contains the amount of damage caused, and you could use a public field on the component to set (in the Editor) which EmeraldAI.TargetType to use.
     
    John-Lisenby likes this.
  46. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    783
    Thanks, @FargleBargle. This error was my fault, although an easy one to miss. I fixed it a few weeks ago as part of a set of general fixes and enhancements, which obviously has not yet been submitted to the Asset Store. :)
     
    FargleBargle likes this.
  47. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,591
    No, I haven't stepped through code yet. I thought I'd ask to see if there was something simple and obvious first. I'll debug it soon and see what's wrong.

    [EDIT]
    OK, so I found the issue. My IDamageable script is on a parent object with a child that has the collider. This is fine for WeaponCore, because it uses code to find the IDamageable with GetComponentInParents, but ArrowCore only used GetComponent so it won't find the IDamageable unless it's attached to the Collider object itself.

    [EDIT 2]
    I should add that while I could simply attach my script to the child collider object, I think the source code should be fixed to do it the same was as WeaponCore using GetComponentInParents.
     
    Last edited: Oct 2, 2019
  48. KeithBrown

    KeithBrown

    Joined:
    Apr 1, 2017
    Posts:
    110
  49. Bucee

    Bucee

    Joined:
    Apr 20, 2016
    Posts:
    5
    Please, take as long as you need to deal with your health, that is very important. Tryz said he'll be back next week, right?
     
  50. John-Lisenby

    John-Lisenby

    Joined:
    Nov 8, 2013
    Posts:
    114
    Hello,

    Is there a way to check to see of the player is in block mode? I'm using Emerald AI and NPCs are doing damage.

    Also, the player slides or looks like he is fight other motions. Is there something I need to adjust or change? Please see video for example.

    Thanks,

    John