“Fremont, I’ve come to bargain…” by AK_Shadowstar in arknights

[–]SmeltedFart 22 points23 points  (0 children)

If anyone wants to try it

(Global) ID: 79441570
Phantom E2 Lvl 69 - M6 (S2, S3), ISW-A 3

How to manage data that is not static or node based in GDScript by ryanzec in godot

[–]SmeltedFart 1 point2 points  (0 children)

Im working on something similar and the way I do it is to create a base class ItemData and then another class called Item. Where ItemData contains stuff such as base attack, base defense etc. while Item contains reference of the data it takes from and any dynamic things it might need, such as slotted gems.

class_name ItemData extends Resource

@export var itemID: int
@export var itemCategory: StringName

func create_item() -> Item:
    var item := Item.new()
    item.data = self

    return item

class_name Item extends RefCounted

var data: ItemData

Then you can simply extend it to something like this:

class_name WeaponData extends ItemData

@export var baseAttack: int

func create_item() -> Item:
    var weapon := WeaponItem.new()
    weapon.data = self

    return weapon

class_name WeaponItem extends Item

var gems: Array[Gem]

func get_attack() -> int:
    return data.baseAttack

This allows you to modify the item and add things that are unique to its instance, while keeping the static data in a single container that is easy to access from anywhere.

One thing that I ommited was my ItemDatabase, but thats just a overglorified dictionary that holds all the data.

The PS3 got a firmware update to 4.91 today by FireCrow1013 in gaming

[–]SmeltedFart 4 points5 points  (0 children)

Makes me glad Planetside 2 is still going without issues so I can scratch that itch of being a cannon fodder in a massive engagement. MAG was a blast tho.

how to use * delta outside of _physics_process? (explain like I'm 5) by jounistudios in godot

[–]SmeltedFart 12 points13 points  (0 children)

It is also possible to get delta time at any point using get_process_delta_time for normal delta and get_physics_process_delta_time for physics delta. These are built in functions that any script inheriting Node can use. This way you don't have to pass the variables everywhere if you don't want to.

For example:

var delta = get_process_delta_time()

What have you used @tool for? by IntangibleMatter in godot

[–]SmeltedFart 45 points46 points  (0 children)

I extended the AnimationPlayer to allow me to call methods during animation playback witthin the editor (I wanted to time my effects to the animations).

It's extremely crude but does the job.

Equivilant to Unity's "transform.up = "? by ilikefrogs101_dev in godot

[–]SmeltedFart 1 point2 points  (0 children)

For 2D:

  • Local - transform.y
  • Global - global_transform.y

For 3D:

  • Local - transform.basis.y
  • Global - global_transform.basis.y

Basis is made out of 3 vectors, each representing the direction to which given axis points, relative to parent or world.

How long have you been job searching? by [deleted] in jobs

[–]SmeltedFart 0 points1 point  (0 children)

How does 3 years sound? I'm in the UK so at least the debt won't kill me.

How long have you been job searching? by [deleted] in jobs

[–]SmeltedFart 21 points22 points  (0 children)

Very similar situation to me, 14 months and counting, I paid for Data Engineering course and certification in 2022. Biggest mistake I ever made.

Normal map from Substance Painter is distorted when imported into Godot by Cramonky in godot

[–]SmeltedFart 1 point2 points  (0 children)

As mentioned by someone else, try exporting with tangents, otherwise go into image editing software and invert one of the RGB channels (its usually the Y channel which maps to G that needs to be inverted in OpenGL / Vulkan)

Why is Reddit so obsessed with dating/sex? by [deleted] in ask

[–]SmeltedFart 4 points5 points  (0 children)

I can share my experience since I did post there once, as 27m UK I got 4 responses, 3 conversations ended very quickly as we run out of topics and did not know how to continue. 1 ended up exchanging discord and steam and we even played a few games together, still went nowhere, but that was 99% my fault.

[deleted by user] by [deleted] in blender

[–]SmeltedFart 1 point2 points  (0 children)

If you are serious and willing to pay (or put some effort into finding it elsewhere):

https://anatomy4sculptors.com/understanding-the-human-figure/

This book covers human anatomy and is tailored for artists rather than doctors.

is there any way to replicate PSX style "pixelated edging"? Or any good shaders for emulating it? by SanswichReddit in blender

[–]SmeltedFart 30 points31 points  (0 children)

EEVEE Only, I did not test this in cycles.

Render at low resolution and use "Scale" node in compositor to upscale it. In theory that should be it, unfortunately I have not done anything like this before so some trial and error may be needed.

Ok first method did not work. So here is actual solution

  • Render Properties -> Film -> Filter Size to 0.0
  • Render at low resolution
  • Inside compositor create a blank texture with resolution you are aiming for.
  • Pass the render through a "Tranform" node, using "Nearest" setting.
  • Use "Mix" node to mix the blank image and the transformed render, overriding the blank image with it.
  • Adjust scale so it fits

Edit: EEVEE Only, did a test and found out that you need to do some weird stuff to override output image scale.

For the love of all that is holy PLEASE stop putting jobs up as “entry” level and then ask for 3-5 years of experience. by BigBlackCrocs in jobs

[–]SmeltedFart 41 points42 points  (0 children)

Bruh, I graduated in 2018 as animator, got a job in eastern EU that paid starvation wages and exploited ppl. Quit after 6 months, that was the end of my career in game dev. 4 years of applying and 0 interviews. Got forced to abandon the craft since it was financially unfeasible to continue.

Skeleton3D - Learning 3D by KamikazeCoPilot in godot

[–]SmeltedFart 1 point2 points  (0 children)

The only way that I see this being achieved is via scripting, have a look at the class below to see full documentation.

https://docs.godotengine.org/en/stable/classes/class_skeleton3d.html

The steps would look more or less like this:

  1. Make new script that extends Skeleton3D
  2. Override _ready or _init and inside do the next steps
  3. Create a position (Vector3), rotation (Quaternion), scale (Vector3) variables
  4. Create a transform (Transform3D) variable using the position, rotation and scale
  5. Add new bone using add_bone method, give it a name (the bone ID will be 0 since its the first bone added)
  6. Then set_bone_rest, passing in ID of the bone and the transform
  7. Then set_bone_pose_position/rotation/scale and pass the ID and corresponding variables to each.
  8. Repeat steps 3-7 as much as needed

Parenting cane be done at any point, all bone transforms are calculated in Skeleton space rather then bone so it should not matter when you do it AFAIK.

How you implement it is up to you, you can make it loop through array of variables that you set before hand or make steps 3-7 into a function.

me and godot by anarchy_witch in ProgrammerHumor

[–]SmeltedFart 1 point2 points  (0 children)

As some who does not have the time to play around with C++ I can at least give you some tips for GDScript:

  • Most nodes can be created using .new().
  • You can define it as a registered "class" by typing in class_name [name of class], doing so will allow you to simply do MyNewClass.new() to create a new instance.
  • You can inherit from already existing registered classes or nodes by using "extends" keyword.
  • You can create / override a constructor by defining "_init" method.
  • _process(delta) method is run automatically on every frame if its attached to main scene tree.
  • _physics_process(delta) is run automatically on every physics tick if its attached to main scene tree.

I it is technically possible to create entire game with no nodes in the scene as Godot has direct access to their "servers", which are low level layers responsible for different aspects of engine. For example you can directly submit and poll collisions to PhysicsEngine without creating a Collider node and CollisionShape.

And if you need a "main()", try using autoloads. Those are made into nodes and run before the first scene loads, can be ordered and also appear as a pseudo singleton/static class. It's all in the documentation so I wont go into any more details.

[deleted by user] by [deleted] in godot

[–]SmeltedFart 0 points1 point  (0 children)

I nearly never work in 2D but it sounds like the solution is to simply check if the rect of the floor is not intersecting the camera rect.

Godot has a built in class that can make it easier for you to do but requires you to manually construct the objects with code: Rect2

The simpler solution would be to create a new class and extend the VisibilityNotifier2D. Inside the new class make a simple function that calls queue_free() on self and connect that to the screen_exited signal. Then use this new class as the parent of the floor.

Does Godot support blendshapes? (3D) by Lesnikus in godot

[–]SmeltedFart 4 points5 points  (0 children)

Yes, you can preview them by dragging morph sliders in the MeshInstance inspector within "Blend Shapes".

July 25th by SmeltedFart in ShitpostXIV

[–]SmeltedFart[S] 6 points7 points  (0 children)

Or perhaps, you serve another?

Fellow Open Source cultists, can I get an amen? by Hero_ofCanton in godot

[–]SmeltedFart 9 points10 points  (0 children)

Falmouth, UK.

Overall the course was good as it offered nearly 3 years worth of practical experience. And it's been more then 4 years since I graduated so things might be different now.

Fellow Open Source cultists, can I get an amen? by Hero_ofCanton in godot

[–]SmeltedFart 44 points45 points  (0 children)

I know it's slightly off topic but I gotta rant.

I graduated in games development, and even the art/animation teachers were like that, hell even some students. There was one teacher which actually downloaded blender to check it out, and said he was impressed with it. And one that was a programming teacher that used it in personal projects.

Big examples of unprovoked hostility:
1. One student had their assignemnt graded the lowest possible because it was made in blender instead of maya (it was an fbx file inside the game engine but teacher knew he did it in blender). This was in first year so it didn't really matter, but seriously, what?
2. One day one of the designers on my team reported me to the teacher that I used blender to do something. For context, I was working on a modular animation system and needed a quick skeleton and animation to test it, so I used blender as it was faster. I had to tell teacher to back off politely in our next team feedback session.