Announcement

Collapse
No announcement yet.

[4.6] BlueprintImplementableEvent not displayed in blueprint

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

    [4.6] BlueprintImplementableEvent not displayed in blueprint

    Greetings, basically copy/pasted Rama's tutorial: https://wiki.unrealengine.com/Bluepr...ementableEvent

    But, it seems something changed, or it's a bug, because PlayerIsHealthyTick event not displayed in Blueprint.
    Does sombody encountered same the issues like i did?

    #2
    ye actually. it seems that defining my own event isnt working right now. Maybe I am doing something wrong, following Ramas tut pretty closely.

    can someone confirm if he is having this working with 4.6 ?

    Comment


      #3
      I answered this question here:

      https://answers.unrealengine.com/que...#answer-147954

      Two things

      Build Configuration
      1. make sure using DevelopmentEditor x64

      Dont Use Hot Reload for BP Additions
      2. You cant get new BP events, functions, or UPROPERTY()'s to show up using Hot Reload, you must close the Editor and compile in VS.

      This is true at the moment, Epic might fix this at some point

      Rama
      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

      ♥ Rama

      Comment


        #4
        Originally posted by Rama View Post
        Dont Use Hot Reload for BP Additions
        2. You cant get new BP events, functions, or UPROPERTY()'s to show up using Hot Reload, you must close the Editor and compile in VS.
        Unless this was broken in 4.6, this is definitely not the case in 4.5.

        One thing that is in a semi-broken state currently is the Context-sensitive blueprint menu. If you can't get a function or event to show in the menu and you're positive it should, try turning off context sensitive and see if that gets it to show up.

        Also, another correction with regards to the tutorial: You can make BlueprintImplementableEvents/BlueprintNativeEvents with return values. However, they are implemented in a different fashion.

        Events with no return value are implemented through the EventGraph:


        Events with a return value instead show up in the blueprint elements pane as overridable functions:


        -Camille
        Last edited by cmartel; 12-16-2014, 11:26 AM.

        Comment


          #5
          Hot Reload and BlueprintImplementableEvent

          I wrote:

          Originally posted by Rama View Post
          Dont Use Hot Reload for BP Additions
          2. You cant get new BP events, functions, or UPROPERTY()'s to show up using Hot Reload, you must close the Editor and compile in VS.
          Camille wrote:

          Originally posted by cmartel View Post
          Unless this was broken in 4.6, this is definitely not the case in 4.5.

          -Camille

          Well I tested it just now, and I got the following results:

          1. In 4.6, added this to a player controller class

          Code:
          UFUNCTION(BlueprintImplementableEvent, Category="Joy UMG", meta=(FriendlyName = "CPP Request ~ HotReload"))
          virtual void CPPRequest_HotReload(ABCBase* BC);
          2. Editor was open, I compiled using Hot Reload

          3. Hot Reload Compile succeeded, I right click and type in "hot" in context search, nothing shows up

          4. I tried turning off context sensitive as you mention above, still nothing

          5. I closed editor and restarted it, and now I type in "hot" and the event shows up!


          I am not sure what you identified as working Camille, but I just tested BlueprintImplementable Events and they definitely dont get hot reloaded in 4.6.

          What have you been able to successfully hot reload in 4.5 or 4.6 related to UPROPERTY / anything to do with reflection?

          ~~~

          Side note

          Personally I am wanting you to be right Camille, that we can hot reload stuff involving reflection, I am going to test UPROPERTY and UFUNCTION now in 4.6

          Let me know what you discover and what your test results are!

          Rama
          Last edited by Rama; 12-17-2014, 12:58 PM.
          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

          ♥ Rama

          Comment


            #6
            UPROPERTY() Crash

            I tried hot reloading the addition of a UPROPERTY(), and UE4 simply crashed.

            Once I reloaded the editor, the new UPROPERTY() was there.

            I had the Blueprint that was getting the new UPROPERTY() open at the time of the crash.

            ~~~

            So I have not succeeded in getting UPROPERTY() to hot reload in 4.6 either.

            Strike 2 on hot-reloading refleciton data.

            Camille you are saying doing this sort of thing works for you in 4.5?

            You must have gotten the Special Camille-Is-Awesome edition of 4.5!

            ~~~

            Second Test

            I ran a second test, and I got the editor to not crash using this

            Code:
            UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="HotReload")
            float HotReload3;
            However, the old HotReload variable still shows up (without the 3) and the new one is not showing up at all.

            Once I closed the editor and re-opened it, the variable HotReload3 shows up, and the original ("HotReload") is no longer in Defaults.

            My statement that UPROPERTY() does not update via hot reload is still holding true in 4.6, for UPROPERTY() and also for BlueprintImplementable Event

            At least, for my non Camille-is-awesome version of UE4, this is what's happening.


            ~~~

            Crash Log for test 1

            Code:
            MachineId:EE6AF022491394050640898F2C7D2C99
            UserName:Rama
            
            Access violation - code c0000005 (first/second chance not available)
            
            msvcr120 + 247027 bytes
            UE4Editor_CoreUObject!TArray<wchar_t,FDefaultAllocator>::CopyToEmpty<wchar_t,FDefaultAllocator>() + 121 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\public\containers\array.h:2209]
            UE4Editor_CoreUObject!TProperty<FString,UProperty>::CopyValuesInternal() + 52 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\public\uobject\unrealtype.h:977]
            UE4Editor_CoreUObject!FObjectInitializer::InitProperties() + 1356 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2116]
            UE4Editor_CoreUObject!FObjectInitializer::~FObjectInitializer() + 396 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1924]
            UE4Editor_CoreUObject!StaticConstructObject() + 1384 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2184]
            UE4Editor_CoreUObject!StaticDuplicateObjectEx() + 565 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1402]
            UE4Editor_CoreUObject!StaticDuplicateObject() + 274 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1362]
            UE4Editor_UnrealEd!FBlueprintCompileReinstancer::FBlueprintCompileReinstancer() + 722 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:55]
            UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() + 599 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:384]
            UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() + 1867 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:221]
            UE4Editor_HotReload!FHotReloadModule::ReinstanceClass() + 336 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\developer\hotreload\private\hotreload.cpp:769]
            UE4Editor_CoreUObject!UClassReplaceHotReloadClasses() + 269 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:701]
            UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() + 7 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:876]
            UE4Editor_Core!TBaseMulticastDelegate<void>::Broadcast() + 128 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:978]
            UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() + 1981 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\private\modules\modulemanager.cpp:359]
            UE4Editor_Core!FModuleManager::LoadModule() + 56 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\private\modules\modulemanager.cpp:238]
            UE4Editor_HotReload!FHotReloadModule::DoHotReloadInternal() + 520 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\developer\hotreload\private\hotreload.cpp:576]
            UE4Editor_HotReload!FHotReloadModule::DoHotReloadFromIDE() + 1600 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\developer\hotreload\private\hotreload.cpp:936]
            UE4Editor_HotReload!FHotReloadModule::Tick() + 112 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\developer\hotreload\private\hotreload.cpp:872]
            UE4Editor!FTicker::Tick() + 647 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\core\public\containers\ticker.h:78]
            UE4Editor!FEngineLoop::Tick() + 5916 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\launch\private\launchengineloop.cpp:2307]
            UE4Editor!GuardedMain() + 478 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\launch\private\launch.cpp:131]
            UE4Editor!GuardedMainWrapper() + 26 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
            UE4Editor!WinMain() + 249 bytes [e:\victoryue4\unrealengine-4.6\unrealengine\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
            UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
            Last edited by Rama; 12-17-2014, 12:45 PM.
            UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

            ♥ Rama

            Comment


              #7
              UFUNCTION() and Hot Reload

              I just tried hot reloading this addition to my player controller BP:

              Code:
              UFUNCTION(BlueprintCallable,Category="HotReload")
              void HotReloadAndReflection(bool trueorfalse);
              1. After hot reload compile, context menu shows nothing

              2. I tried turning context sensitive off as you suggested, still nothing

              3. I restart editor, and now the new BP node shows up.

              ~~~

              Summary

              Dear Camille,

              Originally posted by Rama View Post
              Dont Use Hot Reload for BP Additions
              2. You cant get new BP events, functions, or UPROPERTY()'s to show up using Hot Reload, you must close the Editor and compile in VS.
              My statement that UPROPERTY(), UFUNCTION() and BP Implementable events do not work with hot reload is true for me in every case in 4.6.

              I cannot make a rigorously tested statement about 4.5 though, and I look forward to hearing what your own research and testing uncovers!

              For me, nothing involving reflection is getting hotreloaded in 4.6

              ~~~

              To Original Poster

              My recommendation that you try compiling outside of the Editor, in Visual Studio, and then loading the editor again still stands, does doing this cause the BP Implementable event to show up for you?

              My answer here:
              https://answers.unrealengine.com/que...#answer-147954

              Is something I've just thoroughly tested as being true in 4.6.

              I know its a bold statement, but review these past 3 posts of mine and you can see its definitely my current experience with 4.6

              Rama

              PS: Personally, Camille, I wish your statement were the correct one, just for the record. But so far its not been my experience.

              PSS: I corrected my wiki page to mention that BP Implementable events with return values show up in the left panel, and you can right click to implement them, thanks for mentioning that!

              https://wiki.unrealengine.com/Bluepr...d_Return_Value
              Last edited by Rama; 12-17-2014, 01:14 PM.
              UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

              ♥ Rama

              Comment


                #8
                I just went and tested addition of properties, regular ufunctions as well as blueprint events with and without return values. I've tested reloading from Visual Studio and reloading through the editor's Compile. In all cases, I've had the changes made reflected in Blueprint after compiling.

                Hot reloading of managed things is still a new addition and it might very well have been broken in 4.6, mind you. We don't have room in our production schedule to integrate before the end of the year so I can't compare just yet. Apart from engine version, the only thing different beyond that is that I'm running DebugGame instead of Development.

                I did tear my hair for a while after integrating 4.5 because none of the changes I was making would reflect in-game. But that was because it turns out that the generated solution does not include the -debug switch necessary to start the DebugGame library, so I was still loading an outdated Development library. But I don't think this is the case here if you're running Development as you recommend.

                Comment


                  #9
                  Originally posted by cmartel View Post
                  I just went and tested addition of properties, regular ufunctions as well as blueprint events with and without return values. I've tested reloading from Visual Studio and reloading through the editor's Compile. In all cases, I've had the changes made reflected in Blueprint after compiling.

                  Hot reloading of managed things is still a new addition and it might very well have been broken in 4.6, mind you. We don't have room in our production schedule to integrate before the end of the year so I can't compare just yet. Apart from engine version, the only thing different beyond that is that I'm running DebugGame instead of Development.

                  I did tear my hair for a while after integrating 4.5 because none of the changes I was making would reflect in-game. But that was because it turns out that the generated solution does not include the -debug switch necessary to start the DebugGame library, so I was still loading an outdated Development library. But I don't think this is the case here if you're running Development as you recommend.
                  Thanks for your report!

                  I think I will let Epic take it from here, because all of my test results are displayed in this thread, as well as yours.

                  Originally posted by cmartel View Post
                  Apart from engine version, the only thing different beyond that is that I'm running DebugGame instead of Development.
                  This could very well be the reason for our different experiences, again I will let Epic examine this and see what they want to do about it.

                  Answerhub Link
                  https://answers.unrealengine.com/que...events-do.html

                  ~~~

                  I hope you have a wonderful day Camille!

                  Thanks again for the correction to my wiki tutorial, I've made the fix!
                  https://wiki.unrealengine.com/Bluepr...d_Return_Value



                  Rama
                  Last edited by Rama; 12-17-2014, 02:16 PM.
                  UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                  ♥ Rama

                  Comment


                    #10
                    Epic Confirmed

                    Epic has confirmed that the Hot Reload reflection data issues are indeed new in 4.6.0, and Tim Lincoln has done very thorough testing / confirmation here:

                    https://answers.unrealengine.com/que...events-do.html

                    Rama
                    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                    ♥ Rama

                    Comment


                      #11
                      This has been very useful info, thank you.

                      Probably implied but I have also found that changing a URPROPERTY from VisibleAnywhere to EditableDefaultsOnly (I imagine any combination of changes would yield the same result) also doesn't update via hot reload.

                      Comment


                        #12
                        I actually forgot or didn't realize that it was working in 4.5 and assumed that hot reloading BlueprintImplementableEvents was something for the future. I'm glad its a recognized bug because I guess we'll be seeing it (again) soon then.
                        Journeyman's Minimap - Available on Marketplace - Forum topic - Video

                        Comment

                        Working...
                        X