Beiträge von Pydraktor

    Hallo zusammen,


    ich fahnde gerade nach einem kritischen Absturz, wenn ich mein "Spiel" über "Launch" des Levels starte,wenn ich hingegen "play" im Leveleditior verwende läuft alles.


    Snippet

    Letzterer Aufruf von "SpawnEmitterAtLocation" gibt mir einen "Nullptr" bei "Launch" und es gibt keine Animation, sonst bei "play" liefert er einen Pointer auf das ParticleSystem zurück und die Animation läuft wie erwartet.


    Freue mich über Ideen. Benutze UE4.15.3.

    Hallo zusammen,


    weiß jemand, wie ich am Besten für einen sich bewegenden Actor ein Höhenprofil in Sichtrichtung als Sensoreninput abrufen kann, welches ich danach als Eingangsdaten für einen Wegfindungsalgorithmus oder neuronales Netzwerk nutzen kann?


    M. E. n. sollte es über eine große Anzahl von LineCast möglich sein, welche ich vom Ausgangspunkt (Augen) in verschiedene Richtungen schicke und entsprechend damit das 3d-Gelände abraster. Allerdings dürfte dieses Vorgehen sehr inperformant sein, gerade da ich für eine vernünftige Auflösung zu viele LineCasts brauche und diese auch immer bei weiterer Bewegung erneuern muss. Alternativ könnte ich vielleicht eine Art Halbkugeloberfläche als statisches Mesh temporär und unsichtbar erzeugen und vor dem Actor bewegen und damit ein Zusammentreffen detektieren, k. A. ob ich hiermit in der Lage bin auch direkt die Koordinate des Zusammentreffens zu erfassen. Eine weitere Alternative könnte das Abrufen des Höhenprofils vom 3d-Gelände sein und entsprechend vonm Sichtpunkt aus zu ermitteln, welche Bereiche sichtbar sind - mir ist allerdings unklar, wie ich das Höhenprofil abrufe, wie die Informationen gespeichert werden, inbesondere wie ich die Höheninformation erlangen kann und die dazugehörige Koordinaten. Vielleicht hab Ihr bessere Ideen oder könnt mir sagen, welche der Ideen ihr aus Performancesicht bevorzugen würdet. Ziel ist es dies mit C++ in der Engine umzusetzen.


    So schon mal vielen Dank, ich hoffe die deutsche Version findet nun besseren Anklang - bin es gar nicht mehr gewöhnt, gerade bei so vielen englischen Begriffen in der Engine ;)


    Gruß Gerald


    If you like English:


    Hello together,


    I was wondering how I can best get for an moving actor an height profile of its surrounding in front of him. The idea is to get sensoric data to train a path finding algorithm and to navigate.


    I guess raycast i.e. a unfortunately large bunch of LineCast from the view point might be a way to start building such a profile, but I hardly think this is efficient (fast). Not sure I should kind of move a static mesh around and try to get such way a collison with a surface instead of raycasts. Or can I access the height profile (how do I do that, how is the information stored, how to get access to each point in the world and how to interpretate the height/how to extract is) of my 3D landscape and then caluclate what part of the heigt profile is visible. Any idea what is fastest or better ideas?


    Thanks for help in advance and a good start in the new year.


    Best Gerald

    Update:


    Mit UPoseableMeshComponent kann ich nun eine Knochen bewegen, hatte leider den untersten Knochen verwendet, der keine Auswirkung hatte ^^. Leider bekomme ich aber keine physikalischen Effekte in UPoseableMeshComponent rein. Mit USkeletalMeshComponent funktioniert die Physik allerdings generell, hier ist mir allerdings wieder unklar, wie ich:



    • die Knochen einzeln bewegen kann. Ziel ist es wie im Bild unten zu sehen einen Tisch, der aus einzelnen Knochen (3 je Tischbein) besteht zu bewegen, jedoch ohne vorgespeicherte Animationen, sondern mit Auslenkenunge der Gelenke der Knochen und unter Berücksichtigung der Physik.
    • der vordere Tisch ist ein UPoseableMeshComponent und die Physik wirkt gar nicht, kann keine Masse zu weisen
    • der hintere Tisch (ja er sieht nicht so aus!) ist identisch mit dem vorderen, aber die Physik dreht ab, hierbei handelt es sich um USkeletalMeshComponent. K. A. warum der hintere wie wild springt und sich verdreht ohne zu stoppen - ist absolut unphysikalisch, Physik ist an.
    • Hab schon versucht UPoseableMeshComponent und USkeletalMeshComponent gleichzeitig zu verwenden und die UPoseableMeshComponent an USkeletalMeshComponent zu attachen und USkeletalMeshComponent auf unsichtbar zu stellen. Ist ggf. UPoseableMeshComponent gar nicht für mich relevant?
    • Bilder 2 und 3 zeigen den Aufbau des Tisches aus Knochen, verstehe bereits nicht, warum der 2. unterste und der unterste Knochen verschiedene Eigenschaftsoptionen in der rechten Leiste haben. U. A. hat der unterste keine Masse? Muss ich ggf. hier noch Boundaries einbauen oder Meshes um diese eingentartigen Verformungen zu verhindern, ggf. Steifheit?

    Bin für jede Hilfe dankbar. Aktuell brauche ich immer ca. einen Tag mit 8h, nur um einen winzigen Schritt vorwärts zu kommen :( - die Dokumentation ist für jemanden ihne Engine-Kenntnisse noch sehr lückenhaft - k. A. für was man nun wirklich welche Klasse verwendet, trotz massiver Suchen in der API und im I-Net.

    Die Stats sind nützlich, danke für den Tipp.


    Ich habe es geschafft mein Blender Mesh zuspawnen. Jetzt hatte ich gedacht, ich könnte die Knochen ansteuern und z. B. einfach mal zum Test einen rotieren. Hierzu wollte ich eine UPoseableMeshComponent und die Funktion GetBoneRotationByName sowie SetBoneRotationByName mittels eines FRotator-Objektes nutzen. Angeblich routiert auch die Knochen, allerdings sehe ich davon in der Anwendung nichts. Was mache falsch? Code siehe unten.



    Mir ist leider auch noch nicht ganz die Verkettung der ganzen Klassen klar.



    Ich habe einen Pawn, dieser besitzt ein Mesh, z. B. ein USkeletalMesh oder ein UPoseableMesh? Letzteres hat Knochen, hinzu kommt noch eine USceneComponent, die ich als RootComponent nutze. Was steuert denn nun eigentlich was, wie bekomme ich die PhysikEngine hinzu, was wird wann wie angezeigt und verändert, wie verkette ich alles?



    Schon mal vielen Dank für die Hilfe :)


    Hallo MAXX,


    vielen Dank erst mal für den ausführlichen Überblick, werde mich am WE mal gleich versuchen drauf zu stürzen :)


    Wie sind eigentlcih die Performance (CPU/RAM/VRAM/GPU) Restrikionen, wieviele PAWN sollte man maximal haben, wie groß (kB /MB) sollte eine Kreatur/ ein Objekt als fbx maximal sein? ICh habe mal gelesen, dass man ca. 30 FPS anstreben sollte und damit dynamisch die Performance prüft?


    Beste Grüße
    Gerald

    Hallo zusammen,


    ein Kumpel und ich wollen die Bewegnung von verschiedenen simplen "Kreaturen" mit x-Beinen aus Spaß an der Freude in unserer Freizeit simulieren und würden dies gerne mit der UE4 und Schwerpunkt auf C++ und Machine Learning angehen. Leider haben wir keine Erfahrung in Spieleengine, sind aber versierte C++-Programmierer (C++11) mit Physikstudium.


    Aktuell scheitern wir daran einen guten Einstieg zu finden, teils, da es hart ist von der reinen API-Klassen-Übersicht aus zu starten und die Tutorial bisher nicht so hilfreich waren und aufgrund älterer UE4 Version (vs 4.15) of nicht kompatibel waren. Auch sind wir beide beruflich in der Woche immer eng eingefercht und uns fehlt die Zeit die richtigen Tutoriale zu finden oder die Essenz auch etlichen herauszuziehen, gute Bücher habe ich bisher nicht im Netz gefunden.
    Wir würden uns über eine Einführung (gerne mal eine Art Seminar für einen Tag, falls jemand von Euch uns hier eine gute Einführung für einen vertrebaren Preis geben könnte) oder nützliche Links freuen:


    Soweit ich es verstanden habe, benötige ich Verständnis (möglichst auf C++-Basis und weniger auf Blueprints)
    - der einzelnen Klassen und API von UE4 um das größere Konzept und die Wechselwirkungen zu verstehen, sowie was für was am besten genutzt wird und was Performance technisch zielführend ist
    - über PAWN und ACTOR-Klassen (dynamische Erzeugung/Spawnen)
    - wie Meshes/SkeletalMesh und Skelet mit einem PAWN verknüpft werden können
    - wie ich die Knochen/Gelenke nutzen und per C++ ansteuern und auslenken kann
    - asynchrone Einbindung von Berechnungen für neuronale Netzwerke, die von der Frame-Rate entkoppelt werden und dann ab und an ein Update der AI liefern


    Aktuell haben wir vorgesehen per Blender einfache "tischartige" Wesen mit 4 Beinen und Skelett als fbx zu exportieren und zu verwenden.


    Freue mich über Rückmeldungen, Lins etc.