Hi!

I've been playing a lot with Ork lately, and it's really fantastic but at the moment, I am overwhelmed with everything there is to learn. I'm a good game designer and a decent artist, but I'm no coder.

So I apologize in advance if these questions seem trivial, but I'd just like to know whether I should push in that direction with Ork 3 or not.

I'd like to create a 3D game with sprite characters (like Paper Mario, Disgaea, Octopath Traveler, etc.). The battle system will use the grid system in an isometric view.

I have a few questions regarding the feasibility of this idea with Ork.

(I don't expect full tutorials for answers, I'd just like to know the advice from a professional if this is feasible or not before I sink hundreds of hours just to prototype):

1- With Ork, are there major obstacles to use 2D sprites characters instead of 3D models in a 3D environment?

2- For basic character movement (idle, walk, battle animations, etc.), do I need a custom script to make it happen? I plan to have characters sprites face in 8 directions on the map, and probably the 4 diagonals during battle (because of the isometric view). (From what I've read in the tutorials, the answer is yes, but I just wanted to make sure.)

3- If so, I have found this asset on the Unity Asset Store that could help me setup the characters animations and also movement control:

https://assetstore.unity.com/packages/tools/sprite-management/spriteman-3d-47367#description
http://spriteman3d.punksterinc.com/Help/html/63e6d77f-c0e2-4468-99c1-ba9ba4ac78e7.htm

Sprite Man 3D might help me with setting up the mecanim animations and handle the controls. Is there any chance I could create with Sprite Man 3D something compatible with Ork? Or is there something better for Ork?


Thank you for your help in advance. As I said, I don't expect full tutorials for answer, I'm only trying to figure out how to best spend time prototyping, and not waste it on ideas that would be too complex for a non-coder like me.
  • 1) No, that has no impact on ORK.

    2) ORK has options for that in it's Mecanim animation setup, you can e.g. forward the rotation of the combatant either as the actual angle or a 4-directional (0-3) or 8-directional (0-7) int value, e.g. 0 being north, 1 being east (or north-east for 8-directional), etc.

    3) Seems like a neat thing - I don't see why it wouldn't work with ORK.
    If something else is handling your movement animations, just disable ORK's auto animation. You can also handle the idle/movement animations in your animator controller instead of using auto animations by just forwarding the movement speed (and for your sprites, the rotation) to the animator controller and handling in there. See the Mecanim settings in ORK's animation setup.

    Generally, for a 3D-2D mix like this you need to keep the sprites rotated toward the camera, either via a tool like sprite man 3D or custom scripting (or even a Makinom schematic), the rest could basically be treated like a regular 3D setup.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Ah thank you so much for the reply Gil!

    I'm happy to know that the 8 direction movement is already a functionality of Ork, I hadn't found it so far. I'll try to work with the mecanim settings next.

    Again, thank you for having taken the time to reply. I'm happy to know that my concept is feasible with Ork :)
  • You can find it in Base/Control > Animations in the Mecanim Settings.
    Enable the Set Y Rotation options (to use the Y-axis rotation for it) and set the Rotation Type setting to the one you want, e.g. Direction 4 or Direction 8, and set the Parameter Name to the name of an int parameter of your animator controller.

    The help text of the Rotation Type setting has the information for which value is which direction.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Ok thank you for the information! I'll try this when I have some time this week :)
  • Hi Gil! I've got a few questions for you regarding the 8 directions control you explained to me a few days ago.

    So as you said, I've followed the Mecanim tutorial for Ork, then I've set up mecanim animations for my character and I've found a tutorial to create a script to have my sprite always facing the camera. I've also created 16 animations (8 idle, 8 walk in all directions) and I've started to play with the animator.

    So right now, my character is able to move around (I'm using Ork button controls), while always facing the camera, and uses the idle animation when standing still (only looking down at the moment) and... a walking animation when walking, but more often than not, the wrong one (it seems to choose randomly which of the 8 animation to pick, whatever the direction I walk...)

    And now, I'm a bit confused how to make the character walk and face in the correct direction. I've read and watched quite a few tutorials in the last 2 days, but I'm unsure of the best approach to take to make it work with Ork.

    For most of the tutorials I've watched today, they made their own movement script and created variables that used MovementX and MovementY to determine what direction the character is moving (now, MovementY shouldn't work the same way in 3D games...). In the animator, they used Blend Tree to manage the different directions the character is moving/facing.

    However, as I understand, Ork is already keeping track of the direction the character is facing with the Rotation Type (Direction 8) Parameter. I'm unsure how to use the blend tree with that parameter, as it seems the only ones I can use are MovementX and Y.

    And if I create 8 idle states and 8 walk states in the animator and make transitions depending on the Direction 8 Parameter... well it's a mess at the moment. :s

    Am I going in the right direction to make it work? Or am I completely off the track (probably the case)? I've spent almost the entire last 2 days watching/reading tutorials and playing with the animator lol...

    I'm trying to avoid using a custom movement script to avoid compatibiliy issues, but if it's the way I should go, I could work on that.

    Thank you!

  • Best to not use the auto animation setup in that case and forward the combatant's movement speed to the animator via the settings in the Mecanim animations (same as the rotation parameter).

    That way you have speed (e.g. 0 being idle, anything above being movement) and the rotation and just need to react to that. Either in a large blend tree for all values, or 2 separate blend trees, one for idle (i.e. transitioning to it if speed is 0) and one for movement (transitioning to it if speed is above 0).
    Haven't tested that, though :)
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited January 2022
    Ok, I'll try this out. Thank you for the reply!

    Update: Thanks to your tips, I've been able to correctly rotate the character with the good animation (works with button controls). The transition between idle and walk also works correctly. However, for Rotation Type, I had to use Full Degree instead of Direction 8 because blend trees can only work with float variables (well, I think...).

    However, I haven't found a way to make it work animations work with any script that makes the sprite turn to the camera. I've tried many scripts, with different but all poor results. I'll keep working on that and I'll post my solution if I ever find one.

    Thank you again.
    Post edited by max_power on
  • Hi! I'm still trying to figure out how to make my idea of having sprite characters in a 3d world, but I haven't figured out a solution yet. All billboarding scripts (to make the sprite rotate toward the camera) I tried are conflicting with the movement of the character. Often, the billboard script just don't work when the character is moving (but works when idle), and the scripts make the character look down everytime it stops walking...

    However, I have an idea that I want to test, but I'm blocked by a problem I can't seem to resolve.

    So my idea is to actually move an invisible parent object with a character controller, and have the animated sprite, the animator and a billboard script as a child (so the billboard can't have an effect on the parent object that is actually the object the player is moving).

    However, I'm having an issue: in the animation options in Makinom, I'm able to pass information concerning the speed and the rotation of the character to the object that has the character controller, but I'm unable to pass these informations to the child object (the sprite renderer with the animator). Indeed, when I try my setup with the sprite as a child, the character is always looking up and is in idle animation (even if it's moving fine).

    So, do you know if there's any way to pass the information about the speed and the direction of the character to the animator of the sprite children?

    Maybe I'm going in the wrong direction with this idea, but I don't have any other idea.

    Thank you!
  • edited January 2022
    is your billboard script effecting the actual game object?
    One solution may be to make the material a billboard ala :

    https://assetstore.unity.com/packages/vfx/shaders/ultimate-billboard-multipurpose-billboard-fog-sprite-shader-111709

    The direction and rotation of the actual object has no bearing.
    Post edited by Wrofir on
    Miuratale : coming 2024
    Miuratale
  • @max_power
    Your billboard should be a child object of the actual moving game object, that way it doesn't interfere with movement.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • @Wrofir
    Oh, I've read about building a billboard material, but I haven't been able to make it work. I'll try this one out tomorrow, thank you very much!

    @gamingislove
    Yes, that's what I'm trying to do. However, it requires the sprite to also be a child object of the moving object. And my problem is that I seem unable to pass the speed and rotation information from Makinom to the animator of the child object (while it works fine with the parent object). So that's why I was wondering if there's a way to pass the information to the child object, or if it's already doing that and that I'm doing something wrong.
  • Well, the combatant animations only use one animator - so, if you have one on the root, that'll be the one that's used.
    So, either remove the one on the root (what does it do?) or move the animations from the child to the root.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Oh boy, reading your reply, I've just learned something that is probably very basic... : disabling a component is not the same thing as removing it...

    I had already tried what you said, but I was disabling the animator on the root, instead of removing it entirely...

    I spent like 3 days of work trying to figure how to make my idea work, I've tried dozens of methods with no success... and then, after reading your comment, I remove the disabled animator from the root and everything works fine...

    Boy... That Unity learning curve :s

    Thank you for your help and for your patience!
  • Don't worry about it - I sometimes spend a day hanging on stuff not working due to some basic Unity thing not working like I think it's working :D
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Hahaha! Yeah, I can guess, programming Ork and Makinom must be so complex.

    But yeah, your work is really impressive. I still can't believe I've set up a basic RPG (following your tutorial) so quickly, despite the fact I know almost nothing about coding. It's really exciting for someone like me to be able to have access to a real game engine. So for that, thank you :)
Sign In or Register to comment.