Announcement

Collapse
No announcement yet.

Unreal Engine 4.6 Released!

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

    #46
    Thanks !! lots of stuff we can use right away....

    We love the engine !

    Comment


      #47
      Originally posted by JohnnyBeans78 View Post
      Can we get some clarification on the TSubobject<> change? Should we be implementing the private with Get() Set() functions stating with 4.6 or 4.7? I see that making them private will happen in 4.6 (edit I mean 4.7) but what about the Get() Set() can/should we start using them now? Do these Getters and Setters need a certain signature? I am very glad to see the TSubs go (I never felt like I understood WTF I was doing with them), but now with the freedom comes questions
      If you are doing it honestly doesn't matter.
      The good coding practice is that raw pointers shouldn't be really exposed directly.

      The thing to get used is that all default subobjects (like Movement componenet in ACharacter), will be private and you will be accessing it trough GetMovementComponent() instead of directly.

      I usually don't make any components private, they either public or protected.

      The Get is usually like
      Code:
      UYourComponent* GetYourComponent()
      {
       return YourComponentPointer;
      }
      Setters are not needed, as last time i checked you can't swap default subobjects at runtime.
      https://github.com/iniside/ActionRPGGame - Action RPG Starter kit. Work in Progress. You can use it in whatever way you wish.

      Comment


        #48
        That's simply Epic
        Thanks for the foliage lightening and the multi texture new shader.
        Last edited by Galeon; 12-04-2014, 07:31 AM.

        Comment


          #49
          Fantastic work overall, but extra appreciation goes to the animation folks for the great updates.
          GiM - Games in Motion

          Comment


            #50
            Sweet! Downloading it now!

            Comment


              #51
              Since the release notes mention it, has someone tried splinethicken for hair rendering?
              ArtStation

              Comment


                #52
                Wow, that's quite an update!

                Regarding the C++ changes, I'm unclear on how to proceed, based on the explanations in the Release Notes. Currently I have code like this:

                AMyCharacter::AMyCharacter(const class FPostConstructInitializeProperties& PCIP)
                : Super(PCIP)
                {
                Body = PCIP.CreateOptionalDefaultSubobject<USkeletalMeshComponent>(this, AMoHCharacter::BodyComponentName);
                }

                The existing documentation (4.5) makes it appear as if we simply replace the PCIP-related code directly with:

                AUDKEmitterPool::AUDKEmitterPool(const class FObjectInitializer& ObjectInitializer)
                : Super(ObjectInitializer)

                The release notes, however, state:

                "FPostContructInitializeProperties is deprecated. It's replaced by FObjectInitializer, and you only have to specify it when you actually need it."

                How do I know if I need it (i.e. How does FObjectInitializer replace PCIP, because it's not actually used in the documentation example)?

                I am also unclear on how the Body (skel mesh) component is now created. The release notes state "You now define and use "normal" C++ constructors for your classes".

                Does this mean that I would write something like:

                Body = new USkeletalMeshComponent();

                If yes, do I need to check classes like this to see if they require parameters, or if they have empty constructors, before instantiating them?

                I understand that there is a requirement for macros so that the user-generated code is integrated into/exposed to the editor. That said, there's a fair bit of it, and to someone without a detailed understanding of what the macros do under the hood, it seems arcane. Therefore, when you make fundamental changes to the code structure like this, then someone like me (Java programmer), needs to wait until someone gets around to updating an existing wiki example, or writes a new one.

                I apologize if I sound like I'm complaining; I've only been working with UE4 for a short while, and I am enjoying the experience. To get up and running quickly, however, I rely heavily (too heavily, perhaps) on existing "boiler plate" examples. Therefore, if you could shine some light on how these changes affect existing code (sort of a before and after example), it would be appreciated.

                Thanks again for all of your hard work.
                Last edited by DM_Actual; 12-04-2014, 01:00 PM.

                Comment


                  #53
                  Originally posted by DM_Actual View Post
                  Regarding the C++ changes, I'm unclear on how to proceed, based on the explanations in the Release Notes. Currently I have code like this:

                  AMyCharacter::AMyCharacter(const class FPostConstructInitializeProperties& PCIP)
                  : Super(PCIP)
                  {
                  Body = PCIP.CreateOptionalDefaultSubobject<USkeletalMeshComponent>(this, AMoHCharacter::BodyComponentName);
                  }

                  The existing documentation (4.5) makes it appear as if we simply replace the PCIP-related code directly with:

                  AUDKEmitterPool::AUDKEmitterPool(const class FObjectInitializer& ObjectInitializer)
                  : Super(ObjectInitializer)

                  The release notes, however, state:

                  "FPostContructInitializeProperties is deprecated. It's replaced by FObjectInitializer, and you only have to specify it when you actually need it."

                  How do I know if I need it (i.e. How does FObjectInitializer replace PCIP, because it's not actually used in the documentation example)?
                  The way I understand it is you only need to have a constructor with FObjectInitializer if you use "PCIP" to create a component. If you don't need the PCIP object, then you don't have to specify it as an argument in the constructor.

                  Originally posted by DM_Actual View Post
                  I am also unclear on how the Body (skel mesh) component is now created. The release notes state "You now define and use "normal" C++ constructors for your classes".

                  Does this mean that I would write something like:

                  Body = new USkeletalMeshComponent();

                  If yes, do I need to check classes like this to see if they require parameters, or if they have empty constructors, before instantiating them?
                  The new constructors don't effect this at all. You still have to create components and spawn actors the same way as before.

                  Comment


                    #54
                    Thank you for the clarification. I was also wondering when the Editor will start accessing these things through the Get*() functions. Unless I am totally off, doesn't the editor access these when deriving a blueprint? Or editing an Actor's Components?

                    Comment


                      #55
                      Originally posted by JohnnyBeans78 View Post
                      Thank you for the clarification. I was also wondering when the Editor will start accessing these things through the Get*() functions. Unless I am totally off, doesn't the editor access these when deriving a blueprint? Or editing an Actor's Components?
                      I'm not sure how it works behind the scenes. My guess would be that the preprocessor automatically creates getters and setters for use in Blueprints.

                      Comment


                        #56
                        Is there Any tutorial about how to integrate SQLite ?
                        I tried to include the header files "SQLiteDatabaseConnection.h" to use the db connection class, But the error occurred and "SQLiteSupportPrivatePCH.h" cannot be found. I downloaded 4.6 by Launcher and did not build it from the source.

                        Comment


                          #57
                          Thanks, rcapote. I appreciate the clarification.

                          Originally posted by rcapote View Post
                          The way I understand it is you only need to have a constructor with FObjectInitializer if you use "PCIP" to create a component. If you don't need the PCIP object, then you don't have to specify it as an argument in the constructor.



                          The new constructors don't effect this at all. You still have to create components and spawn actors the same way as before.

                          Comment


                            #58
                            how to use WebBrowser in Blueprint?

                            Comment


                              #59
                              That's rad, they used my suggestion for the delta value when comparing floating point numbers
                              https://answers.unrealengine.com/que...oint-numb.html

                              •New: Added an error tolerance input to "Equal" function node for vector/rotator types.
                              •This pin defaults to a small epsilon value that helps to ensure equality when values don't exactly match due to floating-point precision errors that can arise during processing.

                              Excited about 4.6, been working on getting my project to compile and excited to see the perf changes right out of the gate. Great job guys and gals

                              EDIT: I'm getting an error with my delegate function... function does not take 4 arguments
                              DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FJoystickStateAxisChangedSignature, JoystickAxisType, Type, JoystickAxis, Axis, float, Value);

                              The macro is (DelegateName, ParamType1, ParamName1, ParamType2, ParamName2, ParamType3, ParamName3) so I'm not sure why this is an issue

                              EDIT2: Fixed it by sticking them inside the UClass they are used but now it's telling me there is an error in my *.generated.h header saying Syntax Error: identifier 'EnumName'. I know it's not a UFUNCTION, but that wouldn't be related to the fix mentioned below...
                              •Generated code fix for UFunctions which take enum classes as parameters.

                              UPDATE: When commenting all the delegate code, it built fine. I checked and I'm doing the same thing with another plugin but it doesn't use any custom enumerations, just unreal types. So I'm guessing it's related to the above issue since the error is in a generated.h header and it's a UENUM param.

                              FINAL UPDATE: Okay, now I'm really confused and not sure if this is documented somewhere but in order to get it to work, I had to put my #include "MyFile.generated.h" after declaring the UENUM's that were causing the syntax error, Anyways, it looks like it is fixed but let me know if that's normal. Thanks.
                              Last edited by MC Stryker; 12-05-2014, 05:41 AM.

                              Comment


                                #60
                                Awesome! See so much new stuff at that speed is simple amazing!
                                Sr. Engine Programmer @ www.playspace.com - moritzwundke.com
                                Remember: be polite and respect other peoples opinions - Join the Unofficial Unreal Discord Channel - Found a bug? Then use the Bug Report Form to get it fixed ^^

                                Comment

                                Working...
                                X