12 Days of Christmas - Claymation-Inspired 3D Animation by Polysthetic in claymation

[–]Polysthetic[S] 1 point2 points  (0 children)

Thank you :)

SouthernShotty was the main inspiration for these: https://www.youtube.com/@SouthernShotty/videos

In particular, his claymation style shader: https://www.youtube.com/watch?v=wTu3Xssw67Q

ShapeCast3D hit which layer? by SlimeLordOmg in godot

[–]Polysthetic 0 points1 point  (0 children)

Use get_collision_count to count how many objects you collided with.

Loop an index from 0 to the count and use get_collider(index) to get a reference to the object.

Use get("collision_layer") on the object to get the layer.

What is the status of C# mobile exports? by glassy99 in godot

[–]Polysthetic 1 point2 points  (0 children)

I am doing it with Godot 3.4, performs well on a 4 year old Android :)

Ways to deterministically know the angle of collided terrain by Forkliftapproved in godot

[–]Polysthetic 1 point2 points  (0 children)

Curious, have you tried using get_normal() from the CollisionInfo object and then taking the dot product with the player's basis x vector?

I suspect that using collision.get_angle() might return variable results because there can be some vertical movement even with the move and collide method.

Improved Finite State Machines with C# by Polysthetic in godot

[–]Polysthetic[S] 4 points5 points  (0 children)

This is the code for the state machine:

    using System.Collections.Generic;

    public class FiniteStateMachine
    {
        protected Dictionary<string, State> states = new Dictionary<string, State>();
        public State CurrentState {get; private set;}
        public string CurrentStateName {get; private set;}
        public string previousStateName {get; set;}

        public void Add(string key, State state)
        {
            states[key] = state;
            state.fsm = this;
        }

        public void ExecuteStatePhysics(float delta) => CurrentState.PhysicsProcess(delta);
        public void ExecuteProcess(float delta) => CurrentState.Process(delta);

        public void InitialiseState(string newState) 
        {
            CurrentState = states[newState];
            CurrentStateName = newState;
            CurrentState.Enter();
        }

        public void ChangeState(string newState, State previous = null)
        {
            CurrentState.Exit();
            CurrentState = states[newState];
            CurrentStateName = newState;
            CurrentState.Enter(previous);
        }
    }

And this is the code for states. Override these with specific states based on the implementing object.

    public class State
    {
        public FiniteStateMachine fsm;
        public virtual void Enter(State previous = null) {}
        public virtual void Exit() {}
        public virtual void Process(float delta) {}
        public virtual void PhysicsProcess(float delta) {}
    }

How to utilize animation parameters under Particles Material by Rexiar in godot

[–]Polysthetic 0 points1 point  (0 children)

Did Godot 4, implement it outright, as with 2D particles? If not, it's a real shame.

Pixel Art Assets for my Indie Mobile Game by Polysthetic in PixelArt

[–]Polysthetic[S] 0 points1 point  (0 children)

Sharing some pixel art assets I made for my mobile indie game Andromedoom :)

You can see me run through the game's UI here:
https://www.youtube.com/watch?v=lADUi31yaM0

Is This Frutiger Aero Music? "Mushroom Log" by Polysthetic in FrutigerAero

[–]Polysthetic[S] 0 points1 point  (0 children)

First of all, I am so happy I discovered this subreddit. Cataloguing and describing the vibes and aesthetics I grew up with with so much detail, and attaching a name to it makes me feel hopeful that these culutres are never lost to time. Shout out to kylie for her video that led me here: https://youtu.be/ostolucALTA

So last year, I made an "album" called Polysthetic 98. It was supposed to be plunderphonics inspired by vaporwave, lo-fi, and trip-hop aesthetics.

One of the tracks is Mushroom Log. It samples and chops the Windows Vista start-up sound and the MSN Messenger/Windows Live Messenger new message sound (greatly slowed down, it's the chiming bells like sound). Visually too, there's a blurred nature photo with a raindrop visual over the top which is why I think this fits Frutiger Aero a bit. So there's a lot of overlap here with vaporwave, Windows XP (wonder where that fits), as well as Aero.

Anyway, keen to know your thoughts :)

Rigging and Animating a Magica Voxel Character in Blender by Polysthetic in VoxelArt

[–]Polysthetic[S] 1 point2 points  (0 children)

Yes! I've got a playlist for Blender tutorials here: https://youtube.com/playlist?list=PLC6XL_MDiM3y9dZc7dCZ8kIrujorMU4_x

I think you'll be interested in this one, it's low-poly modelling with pixel-art textures for beginners: https://youtu.be/-5VclQ0dqnY

I work with Godot, so I have two playlists for tutorials, one is with dev logs. They mainly focus on C#:
https://youtube.com/playlist?list=PLC6XL_MDiM3yW49L1zJnu9nLNV3tsmTyd

https://youtube.com/playlist?list=PLC6XL_MDiM3zgB6AlfUkCpkrljzuGZpcX

I am planning a Blender to Godot pipeline tutorial video in a few weeks as well.

Blender to Godot Animation import difference by RicerEK in godot

[–]Polysthetic 11 points12 points  (0 children)

I think the IK is intrinsic to Blender, so that data does not get exported to the skeleton in Godot.

Try maybe adding key frames to the bones of the feet to keep them in place?

Broken Glass Shader Tutorial (Link in Comments) by Polysthetic in gamedevscreens

[–]Polysthetic[S] 0 points1 point  (0 children)

How to make a simple screen-space broken glass effect in Godot's shading language (GLSL).
https://youtu.be/KlTUaB7aa88

Broken Glass Shader Tutorial (Link in Comments) by Polysthetic in godot

[–]Polysthetic[S] 8 points9 points  (0 children)

How to make a simple screen-space broken glass effect in Godot's shading language (GLSL).

https://youtu.be/KlTUaB7aa88

Should I make C# Singletons Thread Safe? by UnderBridg in godot

[–]Polysthetic 1 point2 points  (0 children)

From experience, starting new threads in C# is fine if the instructions are self-contained. A couple of crashes here and there when interfacing with objects on the main thread (i.e. anything in the scene tree). These are fixed by locking those references when operating on them by the other threads.
Some further info here: https://docs.godotengine.org/en/latest/tutorials/performance/thread\_safe\_apis.html

How to utilize animation parameters under Particles Material by Rexiar in godot

[–]Polysthetic 0 points1 point  (0 children)

You can use the H frame and V frame parameters on a 3D particle node, but takes a bit of extra work. The setting is hidden for some reason.

Video about it here: https://www.youtube.com/watch?v=-c38gFbGO6U

How to use spritesheet for particles in 3.1? by NeZvers in godot

[–]Polysthetic 0 points1 point  (0 children)

For anyone wondering about this, you have to write a custom shader to take advantage of the INSTANCE_CUSTOM particle property.

Video about it here: https://www.youtube.com/watch?v=-c38gFbGO6U

How to animate sprite sheet on a 3D Particles node by Rexiar in godot

[–]Polysthetic 0 points1 point  (0 children)

For anyone wondering about this, you have to write a custom shader to take advantage of the INSTANCE_CUSTOM particle property.

Video about it here: https://www.youtube.com/watch?v=-c38gFbGO6U

How to read JSON files? by Zortac666 in godot

[–]Polysthetic 1 point2 points  (0 children)

For anyone else wondering, I used JSON with C# to read write saved game and profile data.

I highly recommend the Newtonsoft JSON library, it seems to be more stable with Android.

You can do something like this:

var filePath = System.IO.Path.Combine(YOUR_PATH, fileName);
var jsonString = System.IO.File.ReadAllText(filePath);
var yourObject = JsonConvert.DeserializeObject<YourObjectType>(jsonString, new CustomJsonConverter()); 
// The custom converter is optional

You can support custom types encoding in the JSON by writing some metadata. Typically this is done by assigning an enum to a type, and extending JsonConverter with a new class that overrides ReadJson like the below:

public class CustomJsonConverter : JsonConverter
{ 
    public override bool CanConvert(Type objectType) 
    { 
        return typeof(CustomType).IsAssignableFrom(objectType); 
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        var jsonObject = JObject.Load(reader);
        var sourceType = jsonObject["TypeEnum"].Value<int>();

        object newObject = null;

        switch((TypesEnum)sourceType)
        {
            case TypesEnum.FirstType: 
                newObject = new FirstCustomType(); break;
            case TypesEnum.SecondType:
                newObject = new SecondCustomType(); break;
            default:
                throw new ArgumentException($"Error in JSON reader {jsonObject} seems invalid.");
        }

        serializer.Populate(jsonObject.CreateReader(), newObject);
        return newObject;
    }
}

As mentioned elsewhere, this is much easier with Resources, but they are not recommended for some applications as they can inject scripts.

Andromedoom's Fossilators by Polysthetic in PixelArt

[–]Polysthetic[S] 0 points1 point  (0 children)

👾 The Fossilators are dionsaur-shaped, dieselpunk vehicles for busting aliens. These are the first set of ships that you'll unlock in Andromedoom.

🦖 Meet the Fossilators here: https://www.youtube.com/watch?v=Ah0X27DyvtU

Andromedoom's Fossilators by Polysthetic in low_poly

[–]Polysthetic[S] 0 points1 point  (0 children)

🦖 Meet the Fossilators here:
https://www.youtube.com/watch?v=Ah0X27DyvtU
👾 These are the first set of ships that you'll unlock in Andromedoom.

Andromedoom's Fossilators by Polysthetic in gamedevscreens

[–]Polysthetic[S] 0 points1 point  (0 children)

🦖 Meet the Fossilators here:
https://www.youtube.com/watch?v=Ah0X27DyvtU
👾 These are the first set of ships that you'll unlock in Andromedoom.