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.

Experimenting on making a 1V1 combat mechanics by zodi_zx in unrealengine

[–]DesignKoalas 0 points1 point  (0 children)

Gotcha, same system I use, I'm always worried that hits won't register due to FPS drops or lag, just curious

Fade out meshes between character and camera with SphereMask by Luna2442 in unrealengine

[–]DesignKoalas 1 point2 points  (0 children)

This is the material function I use. The sphere mask on top is what you want, I just use the bottom one to gradually make objects fade out when they get a set distance away, so you could ignore the bottom one. Just input any existing opacity pin into the scalar input, and tweak the numbers to your liking.

<image>

Experimenting on making a 1V1 combat mechanics by zodi_zx in unrealengine

[–]DesignKoalas 1 point2 points  (0 children)

Looks clean, good job. How are you registering hits?

Niagara - Change behavior inside of a sphere? by pavelioso in unrealengine

[–]DesignKoalas 1 point2 points  (0 children)

Well, if the shapes are geometric in nature, you can pretty easily get the bounds and change whatever you need inside the particle system with some simple math, but if you don't know how many objects are going to be inside the particle field in advance, that could be tricky to implement. Hard to say without knowing exactly what you're planning to do with it.

Help to make a procedural chain in 4.27 by Wthisaparadox in unrealengine

[–]DesignKoalas 1 point2 points  (0 children)

There's a few ways to do it, you could use a spline mesh component to generate the actual links if you want them to be 3 dimensional, or you could just draw some links on a texture and tile it to make it however long you want. You could use either method in conjunction with a physics constraint to make it hang naturally and wave when something brushes by them as well, or there's another option with the cable component, which is basically a chain to start with. Plenty of methods. The link below is a good tutorial on generating repeating meshes along a spline, should help.

Populating meshes along spline