Announcement

Collapse
No announcement yet.

Editor free rotation manipulator

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

    Editor free rotation manipulator

    Hey, what's going on guys! My name is Ilgar Lunin and i'd like to discuss with you rotation behaviour in unreal editor.
    My goal is to figure out - do people want this? And if so, attract as much attention as possible in order for functionality like this to be standard for UE. To prevent developers to mess around with custom engines distribution to teams etc.

    Almost all top 3d packages have rotation manipulators with ability of free rotation, and it doesn't fit in my head that UE hasn't.
    Many of my friends from industry, animators, level designers and many others who ever work with UE, complained about rotatioin manipulator. And i don't like it either.

    This things pushed me to improve the tool and show you what i have so far.

    This tool can rotate multiple objects in their own local space. So you can rotate hierarchy of selected objects around their own pivots. The user will need to make only one move to rotate the object in the desired angle, instead of rotating around each axis separately.

    To switch pivot mode use ctrl + right click



    ======================UPDATE====================================

    Ok, let me introduce you new version!



    What is new:
    - 4.17.1-release code base
    - Screen space rotation handle added
    - The implementation of rotation is now closer to how it was done in the original code


    I realized that my first implementation is crappy, and had no chances to be merged. To get delta, i used look at angle from gizmo location to point projected on sphere, which led a number of problems. For example: drag distance limited by sphere diameter, therefore when mouse pointer is outside the sphere, we need to project point on plane always faced to camera. Then we need to handle this properly in different places, and that is pain. And worse - flips at the poles. So now i use mouse delta. That is much simpler concept and the original rotations works like this. Drag distance limited only by your screen area (I have 3 monitors, so i can perform veeeery long drag). And I can use existing methods to apply deltas and significantly reduce amount of code. Also, the standard XYZ handles of the widget can now rotate objects relatively as well, which allows us to rotate object hierarchies in world/local spaces of most parent selected object. And of cource, since i can rotate objects around arbitrary axis, i made rotation around camera forward axis ("Screen space"). This is another popular way of rotating objects in many 3d softwares we got used to.

    Summing up, we have the same functionality as before, but with 2 extra handles and extra rotation mode (ctrl+right click).

    At the moment I'm satisfied with the implementation. Diff against 4.17.1-release branch is tiny relatively increased functionality.

    But have a vision of what can be improved even more:
    - Preserve child transform option
    - Support of hierarchy rotation of bones in persona editor and blueprint editor viewport
    - Property view for tools (Like "Tool Settings" in maya)
    - Axis orientation gizmo ("Pivot rotation")



    Pull request opened.

    If you want to build it as a binary distribution or maybe use sources as starting point for in-house studio editor version - here is my fork link ( https://github.com/IlgarLunin/UnrealEngine ).
    Use "BuildInstalledEngineWin64.bat" located in "Engine/Build/BatchFiles". This will be executed:
    Code:
    %BATCHFILES%\runuat.bat BuildGraph -target="Make Installed Build Win64" -script=%BUILD%\InstalledEngineBuild.xml -set:HostPlatformOnly=true -set:WithDDC=false
    That menas, if you are on Mac or Linux, just change target argument value, and you are ready to go.

    I used Visual Studio 2015 to compile things.

    Cheers, have fun

    ================UPDATE================

    Started to work on preserving child transforms in separate branch



    ================UPDATE================

    Moved to editor mode!!
    Marketplace
    77
    YES!!!
    100.00%
    77
    No
    3.90%
    3
    Last edited by ILunin; 06-18-2018, 11:09 AM.

    #2
    This is Awesome! Just what needed!

    Comment


      #3
      Upvote! Hope to see as inherited to UE4 or in the market

      Comment


        #4
        As i've promised, here is the installed build.
        You can try it out and leave a feedback!! Please, i want to know about your impressions! And, please, vote if you like it! Let's make our world a little bit better

        Comment


          #5
          Great work Ilgar! It is a big step for animation development in editor!
          Last edited by aleks_allright; 03-22-2017, 09:39 AM.
          Regards,
          Alexander Shatalov

          Technical Artist & Instructor
          Currently working on: Allright Rig (UE4 Plugin)

          Comment


            #6
            That is cool! Had you considered making a Pull Request? I can't promise anything, but we could at least review it.
            Lead Programmer - UE4 Animation/Physics/Audio Team - Epic Games
            Twitter: @EpicJamesG

            Comment


              #7
              Yes, i had considered! Glad you guys noticed so quickly! I'll make it in a few days.

              Comment


                #8
                I'm downloading this now, But this looks like something that desperately needs to be added to Unreal. I was Gobsmacked when I found out you couldn't do local rotation on actors.

                Comment


                  #9
                  Come on, Epic Games!!!! We know that you know that editor needs this feature!!))) 4.16 is not real, but maybe 4.17??))
                  Regards,
                  Alexander Shatalov

                  Technical Artist & Instructor
                  Currently working on: Allright Rig (UE4 Plugin)

                  Comment


                    #10
                    Hi!! https://github.com/EpicGames/UnrealEngine/pull/3410. Looking forward for reviews
                    Last edited by ILunin; 03-23-2017, 12:22 PM.

                    Comment


                      #11
                      is this available as a plugin? Or is it some kind of custom version of UE4?

                      Comment


                        #12
                        No, this is not a plugin. It would be incorrect to implement this functionality in separate module

                        Comment


                          #13
                          i look forward to see it in 4.16!!
                          amazing improvement for the engine

                          Comment


                            #14
                            Kinda boggles the mind UE4 doesn't have this out of the box, lol.
                            http://www.helderpinto.com/

                            Comment


                              #15
                              how i install or use the build, and thanks for your hard work

                              Comment

                              Working...
                              X