tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
112 stars 17 forks source link

[Dev Asks] Mech Preview: help needed #5818

Open tsunamayo opened 1 week ago

tsunamayo commented 1 week ago

So I am working on a retargeting system to import seamlessly (hopefully) animation, so that if your mech is standard biped you can go with a prebuilt anim regardless on how you placed your joins.

Could you guys help me with the following: 1) share with me what you build (as soon as it is a standard looking mech, ie biped, no custom join). I am taking what we used to call east stance (knee that flex like human), or west stance (inverted knee, like an at-st). 2) If some of you have a better anim than my crappy one I take it also! Especially if you have a upper-body part. I want to bundle the default release with some predefined animations.

Some questions: => I feel I want to jump often when using a mech. What do you think about that? Should it require thruster? We could have either a default jump with no thruster or the equivalent of a jetpack mode when the player used some thrusters. I would try to tweak the idle pos to get a squat/extend position by code for the jump animation. => same with a dash. EDIT: I forgot to talk about the control scheme. If I recall correctly we had two scheme matching the east-west philosophy:

East: control like a character: able to strafe with A/D, mouse orient either the body if no head is used, or the head if there is one. In that case the body will align to the head when moving forward.

West: control more like a tank: A/D orient the body (legs) of the mech. Then if a bust limb is being used it acts like the turret of a tank and is being controlled with the mouse. There is no alignment of the bust / leg in that case (but a min/max angle can be specified for the bust rotator).

TwoNiner29 commented 1 week ago

Hi Tsuna, I would be happy to help build a starter mech if you can provide me with the specifications of what you would want exactly.(size, weapons, do you want a humanoid mech with arms like a Gundam or a walker style mech like in Star Wars)

Otherwise I can also modify the mech I have on the workshop to have no custom joints.

tsunamayo commented 1 week ago

Hi, @TwoNiner29 Well I would be honored, your build are just another level. I was surprised to see you already had one on the workshop, it is looking amazing, I like the use of the hose. Indeed I would like to add a few more starter blueprints (I only have 3 ships now, I want to add a lot more, and I want to add prefab too for turrets and landing gears). Ideally they would quite simple, with the join visible so people can study them, with an accessible computer. Honestly lets start with really simple and smaller one: For the west stance at-rt

For the east stance: 51262880521_9373b5f639_z Of course it is just an overall guideline for the layout and size, I am definitely not asking for replica (actually I am asking for no replica, I dont want trouble)

I feel for bigger one I need some head and torso limb settings, so you can make either a rotating bust (typically for a west stance mech), or a head (for a east stance). We could already do this with the turret computer but I want to add those feature to the mech computer. Cheers

drimmel247 commented 1 week ago

Hey Tsuna, this is going to be a difficult task given that we can orient the hinges and rotators in any manner we want during the creation process. I have already started working on multiple templates to switch between for animations on specific mechs. If we were able to bind them to keys, that would help with adding in jumps and other animations.

I do like the idea of jumping, and if we end up keeping the custom animations based on players then we could assign the jump template to a key like "space bar" and we could also do a hover with the held down spacebar. in both cases I am imagining thrusters to be required for mech to actually get off the ground.

Side note: mechs feel like kites in the wind even without the starter block when you set the speed any higher than like 20. I am currently testing with a 32 meter tall mech which should be very heavy so it should be hugging the ground a bit more when moving. (funny enough it hugs the ground when going up terrain/its falling forward on hills)

Horkas commented 1 week ago

Heres my feedback on your questions: @tsunamayo

tsunamayo commented 1 week ago

@Horkas Yes it was my intent to have to player manually pick up its control scheme as a setting in the computer. I expect plenty of mech to have weird limb definition so I cant really guess that in code.

For the control it is quite complex but similar to how turret work. It depends on whether the pilot is placed on the moving entity or on the main frame.

Yes I would like to add custom anim, some could be triggered by the mech code (for example we could have an idle_off anim, for when the mech is not pilote, different from the one when the mech is simply not moving). For the custom we would get a button to create a custom anim in the computer. Then by plugging an event gate to the computer we could trigger the anim with a custom keybind. There is a bit of code to do on the event gate side so it will be for after.

ProPeach commented 1 week ago

Control schemes sound good! I think requiring thrusters for jumping makes sense, what would be great is if the jump distance/maneuverability during the jump would be altered by the thrust/mass of the mech in the same way a ship is. Press space to jump, hold space to use jetpack?

It's funny you mention the Idle_Off stance, players are already experimenting with using the Idle stance for a mech which is crouching so you can climb up to it - having that built in would be perfect, I guess it would be activated when the player enter/exits the Mech Computer. Event Gate support is always fantastic so that's great to hear too

Crimson-Artist commented 1 week ago

I think we should be able to choose what type of boost our mechs have. Western style aka mechwarrior style jump jets and eastern style aka gundam/armored core style boost dashing/flying.

Western style has you pressing and holding the spacebar to jump and boost upwards. perhaps you can make it so pressing the spacebar again while boosting upwards stops you and engages hover mode. While in hover mode your movement is locked to a 2d plane and you no longer need to hold down the spacebar. Pressing spacebar again while hover mode is engaged will disengage it. the amount of time you can spend hovering and the speed of your ascent depends on your mechs mass/thrust ratio.

Eastern style has you pressing and holding spacebar to engage a horizontal boost. Your mech hovers slightly above the ground and you will move similarly to a hovercraft. This will happen as long as you are holding the spacebar. While boosting around quickly double tapping and holding the spacebar will have you mech jump then start flying. you will keep ascending as long as you hold down the spacebar. The speed of the horizontal dash as well as the speed of the ascent will be determined by the mass/thrust ratio of your mech.

TwoNiner29 commented 1 week ago

Hi @tsunamayo I've come up with 2 mechs according to your specifications, here they are: 20240624060343_1

The one on the left is the Ant, an all-purpose repair/mining exo suit with normal "west style" legs The one on the right is the strider, a combat scout mech with "east style" reverse-jointed legs

Starter mechs.zip

My first attempt at making the starter mech turned out to be a bit too complicated, but I thought I would throw it in incase you find a use for it, here's the cyclops: 20240622064332_1

X-01 Cyclops.zip

If you need anything built for the game in future, I have a group of very skilled builders who would be happy to take any requests, just contact me on discord!

tsunamayo commented 1 week ago

@TwoNiner29 Massive thanks, they are really amazing. I am putting those in the default blueprint folder. I did a modification regarding the bust join (which I guess you intended as you built a rotator for that), and I updated the code so it works with east stance too: it will move freely when the mech is stationary, then the feet align to the upper body when moving forward, just like with the player control.

Thanks a lot for the offer, I will resume the work on faction / missions as soon as I kick off the survival phase 2, so I will definitely ping you!

tsunamayo commented 1 week ago

By they way I would like to release them to default now, what do you guys think about that? Are there some feature or other qol that you feel are necessary? I will add some default anims and also an help section.

I still have a bunch of things to add and some issues to fix but as it you can already build interesting mechs.

Crimson-Artist commented 1 week ago

@tsunamayo Its small but I think adding the ability to animate the idle pose would make a lot of people happy. Right now the idle animation is completely static. If we could animate it bobbing up and down, fidgeting, or have compartments opening and closing while its standing idle it would give more characters to each mech.

ProPeach commented 1 week ago

By they way I would like to release them to default now, what do you guys think about that?

Personally I think it'd be better to polish the mechs up a little more before releasing them to default. People are really excited for them, it will likely tempt people back into the game that haven't played for a long while, or gain new players which is great. Ideally they should have as smooth an experience as possible with the mechs to make a good impression, so working on them in a separate banch/experimental mode for as long as possible before going public makes sense to me.

Especially if you want to do a big advertising push after survival/mechs are more complete, larger single updates make a lot more noise and hype than smaller ones over a larger time span - "Mechs are out and are feature complete, come have fun!" is a lot more exciting than "Mechs are out but you might have to wait a little bit for more QoL and fixes!"

ProPeach commented 1 week ago

Are there some feature or other qol that you feel are necessary?

Janssendel commented 1 week ago

Aye, don't know if anyone's mentioned it, but the Bust joint type causes it to have 5 digits' worth of rotation wound up in it if it is a rotator (ie. 31,456,000). You have to open the menu of that rotator for it to manifest, and it re-winds itself if you get back in the mech.

tsunamayo commented 1 week ago

@ProPeach so I will give a shot for the color, for the dragging thing I am not sure, I would prefer to not loose time in something that will be finicky to make it work, being 3D it is not as simple and convenient as the 2D one. Also it is not like people are gonna spend a lot of time in this menu, I expect 90% of people will just pick a default animation.

For the force nope I dont want to constantly apply a force to something in rest. I have some depenetrations issue to solve as I notice that @TwoNiner29 mechs are very jittery, so I will investigate. I think the key is to either lean a bit forward so the center of gravity apply in the middle of the foot, or to make a foot that extend backward a bit.

tsunamayo commented 1 week ago

@ProPeach also yeah the plan was to finish my to-do on the fix and polish, and then release it to default, but I am not that far away. Then I want to resume work on survival, I got to move on.

TwoNiner29 commented 1 week ago

@tsunamayo I tested the mechs on a planet with 0.4g and it just occured to me that the animations may not be optimised for planets with higher gravity. I’ll try to tweak the animations for higher G planets and see if I can get it smoother.

TwoNiner29 commented 6 days ago

Hi @tsunamayo,

I've been tweaking the walk animation for both mechs based on peach's feedback in the other thread, I belive it is much more stable now, here are the new updates:

https://github.com/tsunamayo/Starship-EVO/assets/66531332/654585b0-d464-4dc3-9737-310c34cbea9c

starter mechs.zip

tsunamayo commented 5 days ago

@TwoNiner29 Thanks a lot, I have included the updated version to the game! They really look awesome.