can I live my life or do I have to go away forever
todays bird

⁂
Not today Justin
DEAR READER
Stranger Things
I'd rather be in outer space 🛸
Cosimo Galluzzi
🪼
No title available
Keni

祝日 / Permanent Vacation
hello vonnie

Kiana Khansmith
PUT YOUR BEARD IN MY MOUTH
macklin celebrini has autism
he wasn't even looking at me and he found me
Three Goblin Art

shark vs the universe
2025 on Tumblr: Trends That Defined the Year

PR's Tumblrdome
seen from Germany
seen from Italy

seen from United States
seen from Chile
seen from Chile

seen from United States
seen from United States

seen from United States
seen from United States
seen from United States

seen from United States
seen from United States
seen from United States
seen from United States
seen from United States

seen from United States

seen from United States
seen from Malaysia
seen from United States
seen from United States
@2nestinggeese1parkinglot
can I live my life or do I have to go away forever
i'm so mad. i think i need to start all the way over just because i don't know what i messed up. not actually learning how to read code, like how you read a language, is really kicking me in the dick. idek if i can find youtube videos teaching coding in a way that i'll actually fucking understand, they're all like "just do this and this and this" and nobody understands the fundamentals of actually TEACHING. i'm so fucking mad.
meet again, blend tree
double click to open the blend tree editor. add two "motion" fields. click the triangle in the circle to use the animations we've already created. if it doesn't look like this, click on child object animator and then the blend tree in the base layer.
don't try and use undo to fix your mistakes playing around with the ui, and if you want to be able to undo your work by closing unity you're gonna need to find that setting and turn it off. i can't even find it now i know it exists.
45 minutes later, we're back in business and the animations are further refined to look alive without too many janky frames.
this is it, this is the thing i screwed up before!! the blending variable needed to be yVelocity. who tf knows what it was before...
set respective yVelocities to -1 and 1. uncheck automate thresholds
this thing works now. great!
testing in play mode reveals that jumping and falling animations play as they're supposed to. thank god, i finally did it right :sob:
this is the field where you set parameters
also this one. don't forget to click on the tree once you've double clicked on the tree
AND NOW IT ISNT FUCKING WORKING. it was FINE until i tried to make the stupid blend tree with left movement, idling, and right movement. what the FUCK.
time to start over the whole animation section.
oh no the shortcut has ruined everything
i would swaer that i've done everything that i was meant to, that every step i took was exactly the same, that every variable and name was copied faithfully and YET, when moving every movement animation to just two blend trees, it is no longer working properly. none of them except for moving left and right. even the ground check isn't working. i'm frustrated and about to cry because i feel stupid and gaslit. i will rewind the video to 15 minutes previously, undoing an hour or more of work.
to reinforce the basics: -to make an ANIMATOR work you need a controller. right click in assets > animation > animator controller > name it. -drag controller from asset window to controller field. -open animation window (window > animation > animation, or ctrl+6) -click animator (the object) > create > name it. -drag and drop images into animation window.
the pane that has the base layer where the transitions happen is a visual reference for everything in that specific animator controller
to add a new animation to the controller, click on the object animator, go to the dropdown box, and do the things for a new clip.
for transitions: oh boy.
pick a parameter that your transition will depend on: -bool will rely on true/false statements (jump, moving<=>idling). bool is a lightswitch, on or off. -triggers are like doorbells. the animation will play fully, and then it stops. attacks are here. -float is for blending animations in which there is variability. idle>walk> run cycles and so forth? -int works with whole numbers. it links specific animations to nested actions maybe? like, you can have multiple attacks, and then the int value of each action is linked to an animation in this way. idk if that makes sense now let alone will it tomorrow.
to turn off delays in transitioning, unclick exit time, and afaik turn off transition duration.
at this point, you have to give the animator access to the animations via the script. i think.
private Animator are in there, just give it a name that you'll remember. anim right now anim = GetComponentInChildren<Animator> because the animator is a child component of the object player. put that in void Awake() to start the animation when the game or something is active, but not actively updating? i think?
HandleAnimations() should go under Update, so that each animation frame will update properly. i think that makes sense, i hope that's why it goes there. if you don't have a method for handleanimations, press alt+enter to generate a method, it will put in the top line and the curly brackets right under where you put it. saves time.
i haven't even made it back to where i was and i'm exhausted. i'll pick it up tomorrow.
oh no the shortcut has ruined everything
i would swaer that i've done everything that i was meant to, that every step i took was exactly the same, that every variable and name was copied faithfully and YET, when moving every movement animation to just two blend trees, it is no longer working properly. none of them except for moving left and right. even the ground check isn't working. i'm frustrated and about to cry because i feel stupid and gaslit. i will rewind the video to 15 minutes previously, undoing an hour or more of work.
so i don't forgor how to open the one thing
notes that need moving out of my script
// "if" functions have curly brackets that you have to explicitly type out on the inside. you can add after the if's conditions to be an alternative to the same thing, such as // // "else if(Input.GetKeyDown(KeyCode.UpArrow)) // { // rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpForce);" // you always have to end any kind of if statements with "else". //if your "if" statement is only one line of code, you can dispense with the curly brackets to keep your work condensed. ONLY if it's one line.
//!= means "is not equal to." don't put an equal sign before it, you wouldn't say "equals is not equal to zero," that's nonsensical.
// you can press "alt+enter" or "ctrl+." to move long strings of technical jargon to a "private void" line, by clicking "extraction" or smth like that. you'll give it a name, and then you can use that name to reference it instead of writing out all the calculations!
//the difference between public and private is over in the inspector tab in unity. public makes it visible in your script, private hides it. use this information to keep your worktab clean.
it really is easier to read without notes. sigh.
Sometimes we’re unsatisfied with a thing we made because when it only existed in our head, we saw all the things it could have been and when it’s done we know all the things that it isn’t, but we can’t see the way it expands into a million new things when someone else unpacks it in their head.
like to charge reblog to cast obviously
basic blender functionality
in edit > preferences you can change the ui scale, what part of the computer handles rendering, how many undos you can do. poke around another time.
hold middle click to rotate view.
shift + middle click to move camera around
scroll wheel.
the gizmo. you can click and drag to rotate the camera around the object, you can click on the axes to snap to a specific view, you can use the hand to pan the camera, you can zoom in and out too.
the toolbar can be hidden or shown with T. the four arrows is move, and it's G for grab. next is rotate, R. then scale, S.
Tab swaps between object mode and edit mode.
the outliner. selecting an object shows the properties in the window below.
this arrow hides the gizmo's sidebar. you can also press N, for "not used anywhere else" lol
to add an object, you have to click and hold to establish the x and y, then just pick a z and click to let go. if you want to make a perfect square, hitting Shift will lock the sizing of x and y to 1:1. hiitting shift again will make a perfect cube.
you can hold click on create object for additional options. cone, cylinder, two kinds of spheres, it's all there. shift + a brings up the add object menu, which gives significantly more options than just shapes.
using the toolbar's move button is more limited. you have to use the arrows, keepingg you locked to one axis at a time.
hitting g allows free floating movement, but you can swap to axis oriented movement by hitting the proper key - x, y, z. rotate and scale work the same way. scale also can be used from the toolbar to scale the whole thing, just click on the white outline
you can select multiple objects by clicking them in the workspace while holding shift. x and Del wil remove selected objects.
remember it's middle click to move yourself around dummy.
to soften the edges of round things, right click and select "shade smooth." it's a shader.
it's neat that you can ask google to explain things like you're five.
shift + a brings up the add menu. when you have an object selected, press shift + d to duplicate.
man might know blender but he don't know what chocolate chips look like smh
now THIS is a fuckin cookie.
these buttons in edit mode are for selecting specific parts of an object: vertex, side, and face. you can click and drag to select multiple of each thing, or you can click and shift + click to be more selective about it.
omfg i'm so proud of myself, i made one of those fruit bowls. we were just supposed to be making a square tray with a lip, but you don't put cookies on a bare ass tray, you put them on a plate or smth. tools used (i think): cylinder object, inset faces, bevel, then right click and triangulate faces, triangles to quads, and then from there i'm not sure. was it subdivide? extrude faces? bridge faces? i can't remember. then shade smooth
oh no what have i done
idk if that's what i wanted but clicking modeling got rid of it.
it's almost 4am. i've spent hours taking notes and following the short tutorial. i'm at 21 minutes out of 33 and i have shit to do in the morning. i'm stopping here.
basic blender functionality
in edit > preferences you can change the ui scale, what part of the computer handles rendering, how many undos you can do. poke around another time.
hold middle click to rotate view.
shift + middle click to move camera around
scroll wheel.
the gizmo. you can click and drag to rotate the camera around the object, you can click on the axes to snap to a specific view, you can use the hand to pan the camera, you can zoom in and out too.
the toolbar can be hidden or shown with T. the four arrows is move, and it's G for grab. next is rotate, R. then scale, S.
Tab swaps between object mode and edit mode.
the outliner. selecting an object shows the properties in the window below.
this arrow hides the gizmo's sidebar. you can also press N, for "not used anywhere else" lol
to add an object, you have to click and hold to establish the x and y, then just pick a z and click to let go. if you want to make a perfect square, hitting Shift will lock the sizing of x and y to 1:1. hiitting shift again will make a perfect cube.
you can hold click on create object for additional options. cone, cylinder, two kinds of spheres, it's all there. shift + a brings up the add object menu, which gives significantly more options than just shapes.
using the toolbar's move button is more limited. you have to use the arrows, keepingg you locked to one axis at a time.
hitting g allows free floating movement, but you can swap to axis oriented movement by hitting the proper key - x, y, z. rotate and scale work the same way. scale also can be used from the toolbar to scale the whole thing, just click on the white outline
you can select multiple objects by clicking them in the workspace while holding shift. x and Del wil remove selected objects.
remember it's middle click to move yourself around dummy.
to soften the edges of round things, right click and select "shade smooth." it's a shader.
it's neat that you can ask google to explain things like you're five.
shift + a brings up the add menu. when you have an object selected, press shift + d to duplicate.
man might know blender but he don't know what chocolate chips look like smh
now THIS is a fuckin cookie.
basic blender functionality
in edit > preferences you can change the ui scale, what part of the computer handles rendering, how many undos you can do. poke around another time.
hold middle click to rotate view.
shift + middle click to move camera around
scroll wheel.
the gizmo. you can click and drag to rotate the camera around the object, you can click on the axes to snap to a specific view, you can use the hand to pan the camera, you can zoom in and out too.
the toolbar can be hidden or shown with T. the four arrows is move, and it's G for grab. next is rotate, R. then scale, S.
Tab swaps between object mode and edit mode.
the outliner. selecting an object shows the properties in the window below.
this arrow hides the gizmo's sidebar. you can also press N, for "not used anywhere else" lol
to add an object, you have to click and hold to establish the x and y, then just pick a z and click to let go. if you want to make a perfect square, hitting Shift will lock the sizing of x and y to 1:1. hiitting shift again will make a perfect cube.
you can hold click on create object for additional options. cone, cylinder, two kinds of spheres, it's all there. shift + a brings up the add object menu, which gives significantly more options than just shapes.
using the toolbar's move button is more limited. you have to use the arrows, keepingg you locked to one axis at a time.
hitting g allows free floating movement, but you can swap to axis oriented movement by hitting the proper key - x, y, z. rotate and scale work the same way. scale also can be used from the toolbar to scale the whole thing, just click on the white outline
you can select multiple objects by clicking them in the workspace while holding shift. x and Del wil remove selected objects.
character flip
according to this guy, using a 180 rotation on the y axis (under player > transform) is the easiest way to flip your character model, but you can also set the scale to -1 on the x axis to flip. using the "flip" tick box doesn't flip the character on the pivot point, it flips on the center line, and we have our cells set up to be equally sized, which means a lot of space on the side sometimes.
private void Flip() (blue blue yellow) { [tab] transform.Rotate(0, 180, 0); //don't forget your z axis dummy }
somewhere above that-
[SerializeField] private bool facingRight = true; //how does serializing the field make us see it? is it over in console? what's HAPPENING?
go back to the transformation variable
private void Flip() (blue blue yellow) { transform.Rotate(0, 180, 0); facingRight = !facingRight; //he doesn't explain why or how this works very well. his method of education is not one that makes sense to me and i'm frustrated about it. }
above that, write out
private void HandleFlip() { if(rb.linearVelocity.x > 0 && facingRight == false) Flip(); else if(rb.linearVelocity.x < 0 && facingRight == true) Flip(); }
ok this makes sense now i've seen it a couple times and visualized the actual logic of it instead of trying to read it as a language sentence.
go put HandleFlip() in your global variables or whatever these are.
you can move camera back from the scene since it's on the z axis by going to the hierarchy and then main camera > camera > projection and making the projection size bigger, because a bigger number is further away from (x, y, 0).
&& allows you to check for multiple criteria in your if statements. == can be read as "should be," so "if(something && somethingElse == true) action();" would be read as "if something and something else should be true, do the action"
after all of this, he goes back to explaining facingRight = !facingRight. the way it's written out, and if i'm understanding correctly, we're coding from the understanding of "it is doing the thing we don't want and we need to change it." which when you spell it out like THAT it makes sense, given that this is a transformation function. you wouldn't want it to transform the thing if it's already doing the thing you want.
setting up the animator, the graphics, and a little of the script
when you're in 7zip, drag the appropriate img file to the asset panel.
to make an animation efficiently, right click the object in question > create empty. add a sprite renderer. smaller number = bigger objects. a "unit" is 16 pixels by 16 pixels.
for making premade assets less blurry, go to the image file, advanced, compression none, filter mode none. make sure to apply.
with sprite sheet selected, open sprite editor. you can change how it's sliced up to be evenly distributed in order for the pivot point to be C L E A N. under slice, select grid by cell size, and then probably just fuck around with it or something to find the pixels you need, click apply.
if using capsule collider and it's tall, click freeze rotation z
under assets, create > animation >animation controller. drag from asset panel to animator component. animation panel > create > name and save should make it its own file. does it automatically be in the animator, that you don't have to drag and drop?
in the animator > parameters tab you can order animations. boolean is good for transitioning between idle animation and movement. right click on the first in the transition, click on the second, click the arrow in between, "is moving" > true. the reverse will be false. you can have the transitions delay by fixed duration time, and you can uncheck "has exit time" to not have an exit time. each transition has to be checked, uncheked, or otherwise modified.
"animator" is a preset object code thing. it would be written out as "private/public animator [name]" and then under Awake you'd write "[name] = GetComponentInChildren" which is another normal command. i think.
"( )" (no space) is said as "method," maybe?
under private void Update()
HandleAnimations(); it'll be white and red underlined because there isn't a preset for it, but "alt + enter" can bring up a panel to choose a method to generate a preset. i think. no i don't think. i don't understand this.
i'm gonna move on for now and come back again tomorrow.
how to write global variables as explained to me a horse girl by google because i asked.
things in parenthese are my assumptions and are probably wrong
Making a global variable in Unity is like having a prized stallion that everyone at the ranch knows by name. All the other horses (friendly mobs) and riders (enemies and maybe tack too?) can find and use him, no matter where they are. (this is an awkward metaphor but at least i understand it.)
Method 1: The static keyword (for simple stuff)
This is the most straightforward way, like using a simple corral everyone can walk up to. You create a simple C# script, but instead of attaching it to a specific object (stall or tackroom? a specific horse?), you use the static keyword to tell Unity that this variable doesn't belong to any one horse—it belongs to the whole stable.
(this next bit assumes your script is empty, but)
(so the public static class GlobalVars is the tackroom actually, and public static int are the gear, ostensibly like the pitchforks and shovels, the tack, the brooms? stuff you complete actions with, not objects in the code sense. maybe. and it's more like a food scoop that sits in one place, and you use the IDEA of scooping by thinking about the scoop itself, which is located in the tack room? this makes a lot of sense to me actually)
(none of this is helpful at this time but i might be able to understand it eventually. oh i realize why not, it's because the video i'm at is doing this using an animation script as the teaching step/example. i'm not at score counting yet! ok good, i'm not stupid probably)
how to write global variables as explained to me a horse girl by google because i asked.
things in parenthese are my assumptions and are probably wrong
Making a global variable in Unity is like having a prized stallion that everyone at the ranch knows by name. All the other horses (friendly mobs) and riders (enemies and maybe tack too?) can find and use him, no matter where they are. (this is an awkward metaphor but at least i understand it.)
Method 1: The static keyword (for simple stuff)
This is the most straightforward way, like using a simple corral everyone can walk up to. You create a simple C# script, but instead of attaching it to a specific object (stall or tackroom? a specific horse?), you use the static keyword to tell Unity that this variable doesn't belong to any one horse—it belongs to the whole stable.
(this next bit assumes your script is empty, but)
(so the public static class GlobalVars is the tackroom actually, and public static int are the gear, ostensibly like the pitchforks and shovels, the tack, the brooms? stuff you complete actions with, not objects in the code sense. maybe. and it's more like a food scoop that sits in one place, and you use the IDEA of scooping by thinking about the scoop itself, which is located in the tack room? this makes a lot of sense to me actually)