Announcement

Collapse
No announcement yet.

Prefab Tool - Prefab Support for Unreal Engine

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    [MENTION=260]HeadClot[/MENTION], Prefab Tool works with actors, so as long as you can drag meshes into levels, they can be turn into a Prefab.
    [MENTION=32515]Yun-Kun[/MENTION], I see. Like the idea, added to todo list
    | twitter | github | #ue4tip

    Comment


      #47
      Originally posted by Nate View Post
      [MENTION=260]HeadClot[/MENTION], Prefab Tool works with actors, so as long as you can drag meshes into levels, they can be turn into a Prefab.
      [MENTION=32515]Yun-Kun[/MENTION], I see. Like the idea, added to todo list
      Hi [MENTION=702]Nate[/MENTION],

      The more I look into this tool the more interested I become .

      Just wanted to ask - On your initial post you say "Apply changes of Prefab to all Prefab instances." Is this optional? In other words, say I create a house prefab with a blueprint actor of a door. The default door is locked (bool), but I want to unlock a specific door (on a specific instance of a prefab). Will I be able to simply deselect the boolean on the door from that one instance in editor? Or will any change to any actor inside a prefab automatically propagate to all prefabs?

      Also, I want to give a vote for [MENTION=32515]Yun-Kun[/MENTION]'s suggestion - if you are able to easily convert a prefab to a Blueprint actor (and keep the exact hierarchy etc), then we can convert our prefabs to BP Actors to be able to spawn them at runtime! This will also take care of [MENTION=28980]Ali Akbar[/MENTION] 's suggestion and can be used with Dungeon Architect -which coincidentally I just bought from the Summer Sale

      Just some suggestions - keep up the good work!
      [WIP] | Procedural City Generator
      [MARKETPLACE] Animal Behavior Kit | Space Shooter Template | Procedural Foliage Tool
      [FREE] Modular Road Tool | Action Platformer Template | Radar BP | Free Birds
      Join our Discord

      Comment


        #48
        [MENTION=49600]CoquiGames[/MENTION],

        In your house prefab example, say if you have 10 instances of the house prefab with default locked blueprint door actor, and you just changed one specific door to be unlocked, here's what might happen:

        Click image for larger version

Name:	28431814-35612ff8-6db8-11e7-87e2-f08e4762902b.png
Views:	1
Size:	4.2 KB
ID:	1131342

        * Click "Apply", all 10 houses will have their door unlocked
        * Click "Revert", current door will be reverted to locked
        * Check off "Connected", the door will be remain unlocked. (But it'll not receive any updates from the house prefab afterward)
        * Do nothing, save the map and re-open the map, that specific door will be reverted to locked. (Unless the "Update All Prefab Actors when Open Map" option is unchecked)
        Click image for larger version

Name:	28431817-3807534a-6db8-11e7-91cf-af46a7b3a96c.png
Views:	1
Size:	14.1 KB
ID:	1131343

        As converting Prefab to Blueprint, thanks for the suggestion. I'll do some test see how feasible it will be. (Not sure if ChildActorComponent supports hierarchy)
        | twitter | github | #ue4tip

        Comment


          #49
          I see, thanks for clarifying [MENTION=702]Nate[/MENTION]!
          [WIP] | Procedural City Generator
          [MARKETPLACE] Animal Behavior Kit | Space Shooter Template | Procedural Foliage Tool
          [FREE] Modular Road Tool | Action Platformer Template | Radar BP | Free Birds
          Join our Discord

          Comment


            #50
            [MENTION=702]Nate[/MENTION]:

            There is an awesome plugin called Dungeon Architect. It has Snap module that requires dungeon modules to be BP actors. As-is, it's really messy to be building modules using static meshes (or anything for that matter) inside BP Editor. Would your Prefab plugin make the task of building such BP actors (modules) a breeze?

            Basically making a modules as part of the level in the Editor, then combining selected assets into a BP Actor and then edit it, if necessary, right in the Editor and not BP Editor ? (by edit I mean add/remove/move/rotate/scale components)

            Thanks

            Comment


              #51
              Hello there

              Guys I've read you on both threads (DA and here) talking about "Modules" and "Maps".

              I've built a lot of them for Sacred Swords.
              And we're also building lots of them for our incoming FPS game.

              None of this would have been possible without Prefab Tool. I didn't have it while working on Sacred Swords and as you mentionned [MENTION=1680]motorsep[/MENTION], working within the Blueprint Editor is a big no-no (I did nevertheless).

              Now that we're working on our indie game the workflow with prefab tool is as good as it can be (we just need few more things to be fluent, as I discussed with [MENTION=702]Nate[/MENTION] - btw I didn't forget the feedbacks from our team, they're incoming ).

              Basically making a modules as part of the level in the Editor, then combining selected assets into a BP Actor and then edit it, if necessary, right in the Editor and not BP Editor ? (by edit I mean add/remove/move/rotate/scale components)
              This is exactly the kind of feature our team needs (for the same reasons).
              The idea would be to be able to convert a Prefab into a Blueprint then to update the Blueprint when modifying the Prefab (else you have to delete / rebuild / replace reference of the Blueprint each time you want something to change).

              This Prefab Tool is amazing, it enables so much potential Unreal 4 is lacking right now!
              Last edited by Yun-Kun; 07-24-2017, 02:12 PM.
              [Released] Multiplayer Combat Editor
              A-RPG Sacred Swords
              Youtube Tutorials

              Comment


                #52
                Originally posted by Yun-Kun View Post
                This is exactly the kind of feature our team needs (for the same reasons).
                The idea would be to be able to convert a Prefab into a Blueprint then to update the Blueprint when modifying the Prefab (else you have to delete / rebuild / replace reference of the Blueprint each time you want something to change).
                Maybe [MENTION=702]Nate[/MENTION] can add this feature

                Comment


                  #53
                  [MENTION=32515]Yun-Kun[/MENTION], thanks a lot for sharing your experiences!
                  [MENTION=1680]motorsep[/MENTION], I'm currently doing some research on the Prefab -> Blueprint conversion feature, will update here when I got something to share.
                  | twitter | github | #ue4tip

                  Comment


                    #54
                    1.0.3 released on itch. Unreal marketplace is waiting final review result.

                    1.0.3
                    ------------------
                    * Add Visibility Widget to show/hide Prefab Actor with it's children actors in one click
                    * Add Select Parent Prefab Actor context menu
                    * Add Collapse and Select Parent Prefab Actor context menu
                    * Add default hotkey binding for Select/Collapse/Show/Hide Prefab Actor
                    * Fix Weak Object Reference in Prefab wrongly pointing to original source actor
                    * Select Prefab Actors from Prefab Asset context menu now select actors even it's hidden
                    Prefab Tool - What's new in 1.0.3

                    | twitter | github | #ue4tip

                    Comment


                      #55
                      Perfect! This will greatly speed up our workflow

                      I love the update video, makes me think of a patch spotlight for a game.

                      Keep up the good work, you rock.
                      [Released] Multiplayer Combat Editor
                      A-RPG Sacred Swords
                      Youtube Tutorials

                      Comment


                        #56
                        [MENTION=702]Nate[/MENTION]
                        Prefab tools looks really great so far and we're excited to start trying it in our workflow.

                        We have run into one problem/bug so far. We sometimes get a crash involving renaming objects. At map load, Prefab calls RevertAllPrefabActorsInCurrentLevel(). This eventually goes to ReplacePrefabInstances(), and then Rename. Rename fails because there's already something in the map with the same name. This is a fatal error.

                        I'm not entirely certain how the map got into this state. The objects in the map with the same name either came from or were the original source of the prefab. We will try to get better reproduction case for you. But one can imagine that even a normal revert (i.e. one by hand) might be a problem if an object with the same name happened to be created.

                        Cheers,
                        shannon

                        Comment


                          #57
                          Just started using this at work and oh man, it is awesome!! Thank you for the continued support on it too- I was literally going to ask for "Add Select Parent Prefab Actor context menu" today because it was by far one of the biggest pain points when working with prefabs. Thanks again for the awesome tool- really looking forward to seeing what is to come!!

                          Comment


                            #58
                            [MENTION=221987]ColdIronPoz[/MENTION], very sorry about the bug you run into. May I ask which line trigger the crash? And if possible, a test project for me to reproduce the bug would be much appreciated!

                            Code:
                            1503: OldActor->Rename(*OldActorReplacedNamed.ToString());
                            1532: NewActor->Rename(*OldActorName.ToString());
                            1580: OldActor->Rename(*OldActorName.ToString());

                            If you turn the "Update All Prefab Actors when Open Map" off, then manually click "Apply" in Prefab Actor's detail panel, will that still trigger the bug?

                            Click image for larger version

Name:	28992453-100f7d0e-79cf-11e7-9ca9-34801e0e490a.png
Views:	1
Size:	13.7 KB
ID:	1132085
                            | twitter | github | #ue4tip

                            Comment


                              #59
                              [MENTION=702]Nate[/MENTION]: We did get around the crash by toggling that option in the ini file.
                              We renamed the actors so the map no longer crashes, so I don't have a handy reproduction for you. I'm not entirely sure how it got into the state. It hasn't happened a second time (yet?) :-)

                              Here's the call stack. It's from the previous version.

                              Code:
                              Fatal error: [File:D:\src\unrealengine\branches\dev\Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp] [Line: 197] 
                              Renaming an object (SpotLight /Game/Maps/Rooms/FRE/Corridors/FRE_CO_4_Circle_A.FRE_CO_4_Circle_A:PersistentLevel.SpotLight_0) on top of an existing object (SpotLight /Game/Maps/Rooms/FRE/Corridors/FRE_CO_4_Circle_A.FRE_CO_4_Circle_A:PersistentLevel.SpotLight_3) is not allowed
                              
                              
                              UE4Editor_Core!FDebug::AssertFailed() [d:\src\unrealengine\branches\dev\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
                              UE4Editor_CoreUObject!UObject::Rename() [d:\src\unrealengine\branches\dev\engine\source\runtime\coreuobject\private\uobject\obj.cpp:197]
                              UE4Editor_Engine!AActor::Rename() [d:\src\unrealengine\branches\dev\engine\source\runtime\engine\private\actor.cpp:823]
                              UE4Editor_PrefabAsset!FPrefabToolEditorUtil::ReplacePrefabInstances() [d:\src\endeavor\endeavor\plugins\prefabtool\source\prefabasset\private\prefabtoolhelpers.cpp:1637]
                              UE4Editor_PrefabAsset!FPrefabToolEditorUtil::RevertPrefabActor() [d:\src\endeavor\endeavor\plugins\prefabtool\source\prefabasset\private\prefabtoolhelpers.cpp:2001]
                              UE4Editor_PrefabAsset!FPrefabToolEditorUtil::RevertAllPrefabActorsInCurrentLevel() [d:\src\endeavor\endeavor\plugins\prefabtool\source\prefabasset\private\prefabtoolhelpers.cpp:2266]
                              UE4Editor_PrefabAssetEditor!TBaseRawMethodDelegateInstance<0,FPrefabAssetEditorModule,void __cdecl(FString const & __ptr64,bool)>::ExecuteIfSafe() [d:\src\unrealengine\distrib\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
                              UE4Editor_UnrealEd!TBaseMulticastDelegate<void,FString const & __ptr64,bool>::Broadcast() [d:\src\unrealengine\branches\dev\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
                              UE4Editor_UnrealEd!FEditorFileUtils::LoadMap()
                              The line is
                              Code:
                              NewActor->Rename(*OldActorName.ToString());
                              Last edited by ColdIronPoz; 08-08-2017, 04:13 PM. Reason: Forgot to tag.

                              Comment


                                #60
                                [MENTION=221987]ColdIronPoz[/MENTION], thanks a lot for the call stack!

                                The logic behind the suspicious line is quite simple:

                                Code:
                                Step 1. rename old actor to something unique
                                Step 2. rename new actor to old actor's name
                                The only reason that Step 2 is failed (which causing the crash) is that Step 1 failed silently somehow. My theory is that unique name generator is not reliable during LoadMap call back. (Need more code digging to prove that theory)

                                My current solution is adding rename test before the actual rename operation to capture possible rename failure in the first place. Will be in next update.
                                | twitter | github | #ue4tip

                                Comment

                                Working...
                                X