PREFABS in Unreal Engine - NOT BLUEPRINTS!!!

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 45

  • @kirinervosa
    @kirinervosa 15 วันที่ผ่านมา

    4:10 you can also just select the instance and press ctrl+e. Super useful shortcut. Only uses the level editor viewport context though, so if you press ctrl+e intending to edit a component of a bp class it will still think you want to edit whatever is selected in the level editor

  • @TheKr0ckeR
    @TheKr0ckeR หลายเดือนก่อน +3

    Thats a really nice topic. I'm experienced Unity developer which is working on full time, and a beginner unreal engine developer that tries to make his own game on off times, your topics and explanations are very clear. Keep going on man!

  • @Phraxas52
    @Phraxas52 หลายเดือนก่อน +4

    Ah, I didn't realize blueprints weren't technically prefabs. Coming from Unity, I just figured that's the UE way. Thank you for clarifying this. Your channel is so valuable to me.

  • @RoughEdgeLtd
    @RoughEdgeLtd หลายเดือนก่อน +2

    Yep.
    We have also been using Packed Level Actors as prefabs in our asset packs.
    Far faster, more performant, auto optimizes meshes, merges materials and makes editing easier and less destructive.

  • @FlockersDesign
    @FlockersDesign หลายเดือนก่อน +2

    Yea and you dont want to use any of these the best way to go is using the merge and turning it in to a normal static mesh
    -supports nanite
    -cheaper to run
    -way better performance
    And there are manny manny more reasons
    But making a level instance first will help you making ajustments

  • @gaxmo920
    @gaxmo920 หลายเดือนก่อน +2

    I use level blueprints for global variables and events. For everything else, I use blueprints. It's more organized and modular. If I remember correctly, Unreal 3 required everything to be done in the level blueprint.

    • @CultivationPath
      @CultivationPath หลายเดือนก่อน

      For global variables you can also use a Developer's settings.

  • @Anomliz
    @Anomliz หลายเดือนก่อน +2

    please keep making these Unity to Unreal videos. it will be more and more usefull as days go by. #LeavingUnity

  • @BlueSpawn
    @BlueSpawn หลายเดือนก่อน +5

    I’ve been saying this for years. People complained about Unity not having nested Prefabs for years, but Unreal has NEVER had any official Prefabs at all. You can’t trust 3rd party plugins for such core systems and with most Unreal users being falsely convinced that Blueprints are prefabs, a true prefab system might never be officially added to the engine.

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน +3

      unreal is a lot more inheritance based so it doesn't assume you'll be needing prefabs i suppose. so level instances are likely to be the best we get. But the use of prefabs in unity is a lot smoother than working with level instances here i'll happily agree!

    • @ChaoticRay
      @ChaoticRay หลายเดือนก่อน

      I would say that something similar to the prefab system was actually in the engine a couple of versions ago. Namely, archetypes in Unreal Engine 3. These assets actually worked as prefabs. It was a good feature, but it's a shame that it was removed... :(

    • @wywarren
      @wywarren หลายเดือนก่อน

      This was probably the case up to circa last year or early this year. UEFN now is adopting scene graph and a prefab component system that is very similarly structured like Unity using verse as their language. You’ll see it popping up more and more in the upcoming couple of years.

    • @As_Ss
      @As_Ss หลายเดือนก่อน

      actually they already confirmed that sooner or later the whole scene will be build with prefabs like trees, everything, they even showed it

  • @collider4378
    @collider4378 หลายเดือนก่อน

    Great explanation, thanks! This is one of those topics I have to keep coming back to and this is the best yet at explaining things.

  • @roman5727-h8r
    @roman5727-h8r หลายเดือนก่อน +1

    Nice! Thanks for sharing this with us ❤

  • @TylerSerino
    @TylerSerino หลายเดือนก่อน

    Hmm didn't know about level instances, thats cool! However, in terms of performance, I kind of question if any of these options are really much better than putting them in an actor...soley because any object (including static meshes) that you place in your world are actors. When you drag a static mesh into the world, it creates a static mesh actor (which is just an actor with a static mesh as the root component). In the level instance case, you're effectively creating 3 static mesh actors.

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน +1

      is doesn't save anything in the amount of actors your create but it can prevent you from making a whole class just to group some meshes together. the difference between 1 actor with a bunch of static mesh components (as you'd do it through a blueprint) and a bunch of static mesh actors combined into a level instance isn't all that huge, but it does prevent a whole new class that needs to be created.
      Of course, just a class existing by itself doesn't tank your framerate or anything, so as far as real world performance goes, it really doesn't matter one way or the other. It's more about the convenience of grouping a few objects together in a way that might be bothersome to do in a blueprint. The added fact that we can avoid making a whole class for that is just a nice little bonus

    • @TylerSerino
      @TylerSerino หลายเดือนก่อน

      @@thegamedevcave Gotcha, thanks for clarifying!

  • @daveg4417
    @daveg4417 หลายเดือนก่อน

    I would be interested to know if Level Instances get placed into the HLODs. Blueprints do not. I also personally usually use Blueprints for prefabs because I also use the event scripts for numerous features such as actor ambient sounds, actor rotations, box collision triggers, etc.

  • @waterlemon9512
    @waterlemon9512 หลายเดือนก่อน +1

    one thing i found thats really bad with level instances is that they dont block loading. so when you spawn the player on top of a level instance, if the level instance doesnt load in time the player will fall through the level instance. i really wish there was a fix, i couldnt find one, cause i dont want things popping in to the world once the player loads into it

    • @collider4378
      @collider4378 หลายเดือนก่อน +1

      Try "OnLevelLoaded" then SpawnActorFromClass in your player BP. That should spawn your player after the entire level has loaded.

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน +1

      yes this is really annoying! especially for big level instances it can be a real pain to deal with. only real way of dealing with all that is making your spawn area stuck in the persistent level, which can be limiting..

  • @badashphilosophy9533
    @badashphilosophy9533 9 วันที่ผ่านมา

    im new, if i wanted random chests to spawn all over the world in random places could i still use this and add some kind of variables to change where they spawn each time?

    • @thegamedevcave
      @thegamedevcave  9 วันที่ผ่านมา

      for that, just make a blueprint. This video isn't about avoiding blueprints but instead on how you shouldn't make a blueprint just to put a few parts together like you would do for a prefab in engines like godot or unity. You have a chest, that's a very specific kind of object with it's own very specific kind of functionality, that makes sense to make into it's own class (blueprint)

  • @dukesofdevon
    @dukesofdevon หลายเดือนก่อน

    Really interesting technique here.
    I'm curious, what sort of real world performance improvements does this create? Compared to say, a blueprint with recieve tick disabled?

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน +1

      in practice, very little. only the overhead in memory that a basic actor would have (transform data, some functions, and so on)
      The actor class itself is 1080 bytes so about 1KB of memory per instance. By the time you'd run into that problem, you're likely bottlenecked elsewhere already that has more impact.
      Still, every bit can be worth it if it doesn't impact your workflow too much (but if it is bothersome to deal with, making actor classes and using them as prefabs is fine)

    • @dukesofdevon
      @dukesofdevon หลายเดือนก่อน

      @@thegamedevcave I'd still love some way of grouping things without having a new object class created every time I did, would also be great if the child actor system was overhauled, it's better than it was but sometimes I just wish I could say "Unreal, stick one of these to one of these"!

  • @ty_teynium
    @ty_teynium หลายเดือนก่อน

    So a bit unrelated issue but its been scaring me; Unreal Editor NOT THE PROJECTS but the editor stops launching and crashes when initializing. It starts at 9 then goes to 18 percent and stops until inevitably crashing. I verified my version and cleared out / emptied any full caches and deleted saved and intermediate files and its the same. I believe it has to do with shaders compiling because i closed a project early when it was compiling so it went unfinished.
    Im also thinking an anti-virus program is intervening with it?
    Cool viseo btw; love the content and helpful videos. Keep up the good work! ✌️

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน

      In the epic games launcher go to your engine version, open the little dropdown menu and verify. Some engine file may have gotten messed up, verify will check and redownload damaged files

  • @Veluc1f3r
    @Veluc1f3r หลายเดือนก่อน

    Pure gold!

  • @Atl3m
    @Atl3m หลายเดือนก่อน

    Handy for sure :) thank you

  • @watercat1248
    @watercat1248 หลายเดือนก่อน

    I have one question what if want to have the same character from example and when I Chenge the original to Chenge every one but I also want to add some extra aspect like hat's, and other version in the other's.
    Unity the are system that call Nesting Prefabs for this but how you can do that in unreal engine ?

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน

      If i understand nested prefabs right you can just put 1 level instance into another level instance. Should be pretty much the same

  • @As_Ss
    @As_Ss หลายเดือนก่อน

    but this are still not prefabs like the unity prefabs, its just not the same and no one uses it in UE to create complex interactive/scripted objects
    the closest to unity prefab in ue is actually the blueprint itself, thats what is used for complex objects or connections of multiple bps
    that being said, blueprint is just a universal name, but they can be purely c++ native objects and not even be available as a blueprint in editor

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน

      this is the closest thing to unity's prefabs. but you're right. unreal fundamentally doesn't work the same way as unity, it's a lot more inheritance based than composition based. So blueprints in practice are how you put together complex objects. But that's the point, when something isn't a complex objects and rather just a simple collection of objects. usually for decorative purposes or with very simple logic of a few objects that reference each other, making them into a level instance might make more sense than setting them up as a blueprint.
      By no means should you be "prefabbing" all your objects as level instances but neither are blueprints the only option you have for combining objects into a predefined collection. Knowing of both options and when to use either one is helpful.

  • @MikeReed-r8r
    @MikeReed-r8r หลายเดือนก่อน

    Ue5 plugin Prefabricator

  • @gendalfgray7889
    @gendalfgray7889 หลายเดือนก่อน

    Whats is a prefab? Unity dudes talking about that a lot 😂

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน

      Its a collection of objects that can be easily instances together. Since unity is so much more composition based, every complex object is a prefab in unity

    • @As_Ss
      @As_Ss หลายเดือนก่อน

      @@thegamedevcave they are not technically instanced together in terms of instancing for performance, it just some objects together, in unity a prefab can be just empty gameobjects, in unity scripts are added to objects to add any functionality, but not required at all

  • @DuckTheFinn
    @DuckTheFinn หลายเดือนก่อน

    Making a whole level for a prefab seems like a really stupid idea.

    • @thegamedevcave
      @thegamedevcave  หลายเดือนก่อน

      A level is just a collection of objects, so is a prefab. Unreal's workflow isnt as smooth working like this but this isnt as strange as you may think.
      Godot also doesnt make a difference between levels and prefabs for the same reason i believe for instance

    • @Dre2000lbs
      @Dre2000lbs หลายเดือนก่อน

      Comin from Unity, I'm not sure what you're seeing as a big deal.

    • @As_Ss
      @As_Ss หลายเดือนก่อน

      its actually very good idea for level design in ue, they are still not prefabs the way unitys are