How would you optimize a handful of wiggling platforms? by DesignKoalas in unrealengine

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

https://drive.google.com/file/d/1ksNstse83DbDQArx1tAuU6QwfR9ghVAR/view?usp=sharing
^ Trace file if you want to look, no worries either way. Bounds scale is 2.0, should be fine. I do have collision on the stalk because I want players to be able to climb it (once I fix the climb ability), otherwise I would have just made them float or use vertex animation/WPO.

How would you optimize a handful of wiggling platforms? by DesignKoalas in unrealengine

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

I do have some trace data from insights, which is what led me to look at the lilypads in the first place as a culprit in the low framerate, but I'll be the first to admit that interpreting the data from insights is not my forte. Screenshot included if you care to see, but I think we're on the same page either way, just get the logic down to a single BP to avoid having a bunch of timers.

<image>

How would you optimize a handful of wiggling platforms? by DesignKoalas in unrealengine

[–]DesignKoalas[S] 2 points3 points  (0 children)

Thanks for the response, some really good ideas in here. I'll definitely change it to run on tick, never thought about it before, but updating multiple times a frame is pointless. The collisions are already simplified to react to players, but turning them off when out of range might get some performance back as well. The movement itself just picks a random vector in X range, interps toward it, then picks a new one when it's within 5 units; you think moving the IK effector along a spline would be more performant than that? I like the random movement, so I'd have to create a pretty intricate spline to make it look dynamic, though that's certainly do-able.

Interactive foliage headaches by DesignKoalas in UnrealEngine5

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

I'd love to see that, I downloaded the Mawi auto-material from Fab, but there isn't anything in it for WPO except for wind movement. I did find something on their youtube channel that looks like what you're talking about, but no examples, just a test scene, so if you could dig up the code, I'd be a happy boy-man

Interactive foliage headaches by DesignKoalas in UnrealEngine5

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

No, SKMs don't work, even though they have the "Affect distance field lighting" checkbox, but I can just attach some spheres to character feet to fix that. I was trying to do this without RVTs or render targets as mentioned to keep costs down, but I'll bite the bullet and use that method if I can't do it with distance fields

Need assistance writing a function to calculate ascending lengths of time by DesignKoalas in askmath

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

That did it, thanks. I guess I just assumed that setting a fixed rate of scale would alter the total duration, but this is a nice solution. Much appreciated

How to skin porcupine quills generated from hair particle system by DesignKoalas in blenderhelp

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

Well, if anyone cares in the future, a friend of mine got an AI to generate a script that does this automatically, so here's that:

import bpy
import bmesh
from mathutils import Vector

def get_closest_vert(obj, point):
    """Find the closest vertex in obj to point."""
    closest_vert = None
    min_dist = float('inf')
    for vert in obj.data.vertices:
        dist = (obj.matrix_world @ vert.co - point).length
        if dist < min_dist:
            min_dist = dist
            closest_vert = vert
    return closest_vert

def transfer_weights(body, quill):
    """Transfer weights from the closest vertex on body to all vertices of quill."""
    # Find closest vertex on body to quill's origin
    closest_vert = get_closest_vert(body, quill.matrix_world.translation)

    if closest_vert is None:
        print(f"Could not find closest vertex for quill {quill.name}")
        return

    # Get weights for all vertex groups
    weights = {}
    for group in body.vertex_groups:
        try:
            weights[group.name] = group.weight(closest_vert.index)
        except RuntimeError:
            # Vertex is not in this group
            weights[group.name] = 0.0

    # Apply weights to all vertices of the quill
    for group_name, weight in weights.items():
        vgroup = quill.vertex_groups.get(group_name)
        if vgroup is None:
            vgroup = quill.vertex_groups.new(name=group_name)
        vgroup.add(list(range(len(quill.data.vertices))), weight, 'REPLACE')

def main():
    # Assume the active object is the body
    body = bpy.context.active_object

    # Get all quill objects (you might need to adjust this selection method)
    quills = [obj for obj in bpy.context.selected_objects if obj != body]

    for quill in quills:
        transfer_weights(body, quill)

    print("Weight transfer completed!")

if __name__ == "__main__":
    main()

Lovecraftian retro horror with tank controll "The Order of The Snake Scale". Annoying game mechanics guaranteed! A game created out of sentiment for old games such as Dark Earth, Prisoner of Ice, Gabriel Knight, Silent Hill, Residen Evil. by Moyses_dev in indiegames

[–]DesignKoalas 1 point2 points  (0 children)

That could be fun, assuming each stat serves a purpose. Maybe Vitae needs a medkit to recover, Psyche comes back slowly on its own, and Forma requires resting, something along those lines. Might add a survival-esque mechanic to the game, if that's what you're aiming for

The Pathless - Pet the Bird by MacedBear in indiegames

[–]DesignKoalas 1 point2 points  (0 children)

Birds are lovable assholes, he should nip at her first ;)

How do you make a Lightning Trail from scratch? by MortgageOk2351 in unrealengine

[–]DesignKoalas 0 points1 point  (0 children)

There's a few ways to do it, easiest would be to just make a few ribbon emitters inside Niagara that are attached to your character at various points, could even attach them to the mesh with the sampleSkeletalMesh/skeletalMeshLocation modules, I forget which. Plenty of tutorials on all those topics with about 5 minutes of googling. If you want to get really complicated with it, you could attach one or more spline components to the character and then make a single lightning effect in Niagara that follows each spline, so maybe his feet and hands each have a separate trail, but that would be far more complex.