Ok getting into the nitty-gritty. Just as a heads up, and so you can stop me if need be before I’m finished, I’m setting the check to be on the X rather than the Y. I have no Y depth in any of my objects, they’re all on the same plane using a Translucency Draw Order to appear correctly.
Unless I’m missing something it would seem like X and their position from left to right on the screen would be what we’re after?
In unreal, x is the forward vector. Depends totally on how your scene is set up.
Good to know! I did try it on the Y though and it was pretty funny.
On that note I got it all hooked up and after some quick checks and wire swaps the guy is on the tiles and behaving exactly as he was before so I think the tile check worked and confirmed that the tiles were in fact arranging correctly in the original get all actors of class. The tiles still output 0 - 6, and the debtor still moves correctly so long as I don’t divide the move alpha by any number other than 1. If I set the divisor to a positive number he fails to reach the next target, and if it’s a decimal he’ll overshoot.
The part I still don’t get is that in either case his next move after the under or overshoot is corrective. He’ll transit to the correct tile even if it means remaining stationary, which kind of blows my mind because it means that he’s got two inputs screaming for his attention and he nods to one on the first move and the other on the second. I’m having a hard time understanding how that’s possible, but then I’m technically an artist and math is all real numbers, all the time to me.
Looking for an upside thanks for helping me put together my first function!
What do you recommend I do now?
Ok. A friend of mine suggested that the value axis on the timeline might be interfering with the maths of the timeline. here is the exact conversation.
Stink Horse: The timeline has both a Time and Value axis. They both operate on the same numbers, 0.00 to 1.00 for my curve.
45scix: Value sounds like it could be it. It has the same numbers, just 0 to 1?
Stink Horse: yes.
Stink Horse: 0.00s to 1.00s
Stink Horse: so time and value are both set to 1. by the end of the curve.
45scix: I’d think Value wouldn’t be a Seconds number…
45scix: I’m now wondering if you’re somehow scaling that Value number, so by the time it gets to 1.00s it’s actually at Value 2 or something.
45scix: That’d cause your dude’s position to go twice as far as you want.
Stink Horse: This is common as muck here. I would be alarmed to find out that this was the case.
Stink Horse: let me try cutting my value in half and see what happens.
Stink Horse: …
Stink Horse: You muppet ******.
Stink Horse: Why would this anything like this EVER?
45scix: Numbers! Maths!!!
So for whatever reason cutting the value in half cuts that first move in half, while the second move operates perfectly, so the generic timeline curve isnt working and I have no idea why, however a specific and tailored timeline curve would absolutely work, but I’d have to create a Jay Leno-esk garage to house them all considering the range of animations I eventually want for the character and his opponent…
Your friend is right. I just now manually remembering that Timelines tie time and value so you have to hardcode it. I’ve been using iTween for so long that I’ve forgotten exactly why I ported it in the first place - because timelines and matinee are limiting. So yeah, you will essentially have to make a new timeline for each animation curve. I’m sorry to have misled you here, I literally just forgot!
This has been the greatest, and most successful guerilla advertising campaign ever. I literally cannot wait to start using your miracle product at this point. Tell me more about it.
Re-reading this post it occurs to me that my sense of humor might not be translating well. I typed that with a huge grin on my face, and like I mentioned way earlier in the chain I was eventually going to add your plugin to my toolbox once I’d learned how to do a movement with what the engine came with. Now that we’ve established that it comes with something I simply don’t have the ability to use (actual code hackery) I’m more than ready to buy in on iTween.
Oh, no worries. I understood it as a joke.
iTween is free completely, so all you have to do is head to the link in my signature and grab the latest download.
When you install, I highly recommend installing the C++ source version because the plugin version has packaging issues for some people. There’s a tutorial for compiling your game with iTween over on our Youtube channel (in the first post).
When you have it installed, you just call “Actor Move From/To Simple” and plug in your character and the start and end vectors, how long you want it to take, and give the operation a name. You can get rid of the timeline and the lerp and the set actor location because iTween will take care of all of that.
You can select one of a few dozen different easetypes or make a custom CurveFloat to define an easetype. An Easetype just determines how quickly and smoothly your object will move. try a few different ones.
If you have any issues, feel free to respond back here or in the iTween thread.
Thanks a bunch , it has been an absolute pleasure working with you to figure this out.
I’ll let you know how my initial experience goes. I’m predicting the word “magical” will be thrown around.
Well, I hope so! Let me know if you run into any issues.
iTween - First thoughts
After getting it installed I called up the nodes associated with it and it’s super thorough. I skip over most of it and take a look at the Move Actor stuff. I notice “expert” is a possible node and shy away from that. Weirdly that doesn’t stop me from trying “full options” which elicited a laugh.
Oh man. I had tears in my eyes. I would make a joke about the sheer, two-screen-tall size of that node as being an attempt to compensate for something if I didn’t know you actually were compensating for the Unreal Engine. In all seriousness though, looking over the options on that thing it’s clear I could move almost anything, in almost any conceivable way, in relation to almost anything, in almost any circumstance, under the conditions of my choosing.
The Simple option was pretty much exactly what I was looking for and I got everything hooked up.
I fed it the current location, destination the “Self” of the actor, set the time, and chose from one of the dozens of animation curves.
- Compile.
- Press left.
-
Slide, SNAP.
-
Perfect.
I’m recommending anyone and everyone try this out because when I started trying to move my character, this is the level of effort I was expecting to have to put in on a AAA engine.
Honestly, that makes me very happy. I too was pretty dissatisfied with how tweening was handled in Unreal, so I hit up Bob Berkbile over at PixelPlacement (he wrote the iTween for Unity) and asked if I could port his code. He agreed, and here we are. I’ve been trying to tweak it ever since, so if you have any suggestions about how to make the system better please don’t hesitate to add your two cents.
I assume you’ll want to be able to cancel motions or stop tweens mid-animation and all manners of other stuff, so let me know about your intentions and direction and I’ll help you figure out how to manipulate iTween into doing it for you.
Feel free to ask about non-iTween stuff too, I need something to do on train rides!
You got it. At this point I’ve been trying to get this implemented for so long that I really need to come up for air and figure out what I want to do next.
Here’s the current list. Part of this prototype is a thing to play around with an idea for a combat mechanic, but as an artist I also have an idea for a look I want to hit. In fact I think the most important thing next is to get an object representing the Jerk in play (immobile), get the camera rubber-banding to the Debtor and the Jerk, and then get a basic version of the level set up with transparencies. To do that though I’m going to have to hit some overlapping tasks regarding the Debtor, the Jerk, and the Camera.
Current Task List
CAMERA
-Set up a character independent camera - SOLVED
-Move camera based on character position past a certain range (rubberband)
-Zoom camera based on distance between characters
-Override camera to highlight an object or event (ZOOM!) then return to it’s base state
Combat Systems
-Attack
-Health
-Stamina
-Blocking
-Guard Break
-Damage
-Death
-Corner Death
-Parry
-Dodges
Debtor - Current Priority
-Create a character independent of the camera - SOLVED
-Lock the Debtor to a plane - SOLVED
-Define points the Debtor can move between, stopping them at the far right and left - SOLVED
-Transition the Debtor between points instead of teleport - SOLVED
-Lock Debtor input during a move
-Allow certain actions to interrupt a move
-Build three attack heights
-Build three block heights
-Build a forward and backward dodge
-Prevent Debtor movement through That Jerk without a dodge
-Prevent Debtor dodging through That Jerk without the Jerk being in a special stun state
THAT JERK
-Add a colossal jerk to the environment
-Figure out how to add a colossal jerk to the environment
VISUALS
-Lock a material’s scale/position relative to the camera view - MAYBE SOLVED?
-Rebuild and reimport the art assets on power of 2 scales so they display correctly
-Learn how to reference portions of a texture sheet to make the best use of a power of 2 texture
-Define a depth scale to affect:
-An object’s base transparency
-An objects position in space
-To build fake lighting in 2D
-Build a particle system with a randomized flicker
-Reference the particle system’s position and flicker and tie that to another object’s current transparency to boost the false sensation of space
Actually now that I think about it this thread is beginning to veer into full on project updates, so it might be a good idea to start a new thread under the project.
It’s located here: Stinkhorse’s Combat/Visual Style Prototype