EditorTools

Tutorials and discussions about Mapping - Introduce your own ones!
Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

EditorTools

Post by Buggie » Wed Aug 05, 2020 3:14 pm

Different tools for UnrealEditor 2.0/2.2.
scr_1598391681.png
scr_1598391681.png (11.72 KiB) Viewed 171 times
1. Align Camera on Selected Actor.
2. FaceDrag Mode.
3. 8 buttons for fast switch between Mover Key positions.
4. SkyBox1000Stars - make skybox with star sprites.
5. Distance - for measure distance.
scr_1596636583.png
scr_1596636583.png (4.08 KiB) Viewed 494 times
6. EditActor - set some property to some value or show EditActor window. Similar to "Actor properties" window, but always stay on initial actor. Also contain category (Null/None) for vars without category.
7. Extruder - build brush which follow path defined by ClipMarkers.
8. BrushToCamera - Move builder Brush to first selected actor or in front of first Camera.
9. SearchActors - Search for Actors by different criteria. Allow search Event and Tags in custom fields, search by substring, by any property name, without case, filter world by search, search in search results, in specified class and so on.
10. RotateActor - Rotate selected actors to specified amount over one of axis.
EditorTools.zip
(43.03 KiB) Downloaded 12 times
-----
SkyBox1000Stars: add support for different sprites.
scr_1596644402.png
----
SkyBox1000Stars:
- Add SizeStars params if you want more bigger stars.
- Add group SkyBox1000Stars for each star, so you can easily select all stars and delete them.

-----
SkyBox1000Stars:
- More star sprites.
- Sprite now use BlockMonsters Actor for avoid slowdown on build Light.
- Really good distribution stars on the sky.
scr_1596685712.png
Last edited by Buggie on Mon Sep 07, 2020 1:18 am, edited 8 times in total.

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Sat Aug 08, 2020 7:02 am

Added:
- Align Camera on Selected Actor.
- FaceDrag Mode.
- EditActor - show EditActor window. Similar to "Actor properties" window, but always stay on initial actor. Also contain category (Null/None) for vars without category.
- Extruder - build brush which follow path defined by ClipMarkers. (Beta)
scr_1596842479.png
scr_1596843648.png
scr_1596843695.png
scr_1596864452.png
As example you can make new map, paste next:

Code: Select all

Begin Map
Begin Actor Class=ClipMarker Name=ClipMarker91
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2944.000000,Y=-256.000000,Z=640.000000)
     OldLocation=(X=-2944.000000,Y=-256.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker1'
     Name=ClipMarker91
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker92
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2688.000000,Y=-256.000000,Z=640.000000)
     OldLocation=(X=-2688.000000,Y=-256.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker2'
     Name=ClipMarker92
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker93
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2688.000000,Z=640.000000)
     OldLocation=(X=-2688.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker3'
     Name=ClipMarker93
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker94
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2944.000000,Z=640.000000)
     OldLocation=(X=-2944.000000,Y=-16.000000)
     bSelected=True
     Name=ClipMarker94
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker95
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2944.000000,Y=-256.000000,Z=640.000000)
     OldLocation=(X=-3088.000000,Y=-256.000000)
     bSelected=True
     Name=ClipMarker95
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker96
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2816.000000,Y=-128.000000,Z=640.000000)
     OldLocation=(X=-2816.000000,Y=-128.000000)
     bSelected=True
     Name=ClipMarker96
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker97
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2816.000000,Y=-128.000000)
     OldLocation=(X=-2752.000000,Y=-128.000000)
     bSelected=True
     Name=ClipMarker97
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker98
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2560.000000,Y=-128.000000)
     OldLocation=(X=-2560.000000,Y=-128.000000)
     bSelected=True
     Name=ClipMarker98
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker99
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2432.000000,Y=-384.000000)
     OldLocation=(X=-2432.000000,Y=-384.000000)
     bSelected=True
     Name=ClipMarker99
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker100
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2560.000000,Y=-640.000000)
     OldLocation=(X=-2560.000000,Y=-640.000000)
     bSelected=True
     Name=ClipMarker100
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker101
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-2816.000000,Y=-640.000000)
     OldLocation=(X=-2816.000000,Y=-640.000000)
     bSelected=True
     Name=ClipMarker101
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker102
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-3072.000000,Y=-512.000000)
     OldLocation=(X=-2944.000000,Y=-384.000000)
     bSelected=True
     Name=ClipMarker102
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker103
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-3200.000000,Y=-256.000000)
     OldLocation=(X=-3200.000000,Y=-256.000000)
     bSelected=True
     Name=ClipMarker103
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker104
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-3584.000000,Y=-384.000000)
     OldLocation=(X=-3456.000000,Y=-512.000000)
     bSelected=True
     Name=ClipMarker104
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker105
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-3584.000000,Y=-768.000000)
     OldLocation=(X=-3328.000000,Y=-768.000000)
     bSelected=True
     Name=ClipMarker105
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker106
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag=ClipMarker
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=-3072.000000,Y=-1024.000000)
     OldLocation=(X=-3072.000000,Y=-768.000000)
     bSelected=True
     Name=ClipMarker106
End Actor
End Map
And press Extruder button.

If you have bug with Extruder - select all ClipMarkers, copy it as text, make post here with this info in code tag.

------

Added:
8. BrushToCamera - Move builder Brush to first selected actor or in front of first Camera.
9. SearchActors - Search for Actors by Event or Tag even in custom fields.
scr_1596911567.png
-----

Also I can make tool CopySelectedTexture, but this feature already implemented in UnrealEd v469. Need only wait for public release. Must be soon enough.

----

Unfortunately it is not possible because command "poly TEXTURENAME" not exists in v436. So in any case need wait public release of v469.

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Sun Aug 09, 2020 11:20 am

Add support for sheets in Extruder. Just make initial shape from two ClipMarkers.
scr_1596924111.png
scr_1596924099.png
Example code for try on map:

Code: Select all

Begin Map
Begin Actor Class=ClipMarker Name=ClipMarker0
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=256.000000,Z=640.000000)
     OldLocation=(X=256.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker1'
     Name="ClipMarker0"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker1
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=512.000000,Z=640.000000)
     OldLocation=(X=512.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker2'
     Name="ClipMarker1"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker2
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=256.000000,Z=640.000000)
     OldLocation=(X=400.000000,Y=-128.000000)
     bSelected=True
     Texture=Texture'Engine.S_ClipMarker3'
     Name="ClipMarker2"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker3
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=384.000000,Z=640.000000)
     OldLocation=(X=384.000000,Y=-128.000000)
     bSelected=True
     Name="ClipMarker3"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker4
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=384.000000,Y=-128.000000,Z=640.000000)
     OldLocation=(X=384.000000,Y=-128.000000)
     bSelected=True
     Name="ClipMarker4"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker5
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=384.000000,Y=-272.000000,Z=512.000000)
     OldLocation=(X=384.000000,Y=-256.000000)
     bSelected=True
     Name="ClipMarker5"
End Actor
Begin Actor Class=ClipMarker Name=ClipMarker6
     bDynamicLight=True
     Level=LevelInfo'MyLevel.LevelInfo0'
     Tag="ClipMarker"
     Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=-1)
     Location=(X=384.000000,Y=-384.000000)
     OldLocation=(X=384.000000,Y=-384.000000)
     bSelected=True
     Name="ClipMarker6"
End Actor
End Map

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Mon Aug 17, 2020 12:32 am

Add HideNotMatch option for SearchActors tool.
This allow you select all found results. And set group or make any other actions.

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Tue Aug 18, 2020 10:28 am

Improved SearchActors tool:
  • SearchInProperty
  • TypeMatch: MATCH_Inside, MATCH_Exact, MATCH_Started, MATCH_Ended
  • SearchIgnoreCase
  • OnlySubclassOf
  • ShowHelp

Code: Select all

usage:

    - SearchInProperty empty - search over Event and Tag properties. Even if they specified not in standard fields, like OutEvents in Dispatcher. Supported only standard classes: Dispatcher, StochasticTrigger, RoundRobin, CodeTrigger, FatnessTrigger.

    - SearchInProperty not empty - search desired text in specified property. SearchInName, SearchInEvent, SearchInTag - ignored. Search text can be empty if TypeMatch == MATCH_Exact.
Now you can find all Actors with some property set to some value. For example all dynamic light movers:
scr_1597741971.png
scr_1597741971.png (7.09 KiB) Viewed 296 times

Code: Select all

ScriptLog: ------- Search for bDynamicLightMover = 'True' started:
ScriptLog: Mover144              bDynamicLightMover 'True'
ScriptLog: Mover204              bDynamicLightMover 'True'
ScriptLog: Mover175              bDynamicLightMover 'True'
ScriptLog: Mover208              bDynamicLightMover 'True'
ScriptLog: Mover215              bDynamicLightMover 'True'
ScriptLog: AttachMover9          bDynamicLightMover 'True'
ScriptLog: AttachMover12         bDynamicLightMover 'True'
ScriptLog: Mover47               bDynamicLightMover 'True'
ScriptLog: Mover11               bDynamicLightMover 'True'
ScriptLog: Mover13               bDynamicLightMover 'True'
ScriptLog: Mover10               bDynamicLightMover 'True'
ScriptLog: Mover18               bDynamicLightMover 'True'
ScriptLog: ------- Search for bDynamicLightMover = 'True' ended. Found 12 results.

User avatar
sektor2111
Godlike
Posts: 4709
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: EditorTools

Post by sektor2111 » Wed Aug 19, 2020 6:51 am

Can you add option for setting up some property regarding to a selected actor, like in a recent scenario "requiring coding" ?
A selected Titan needs InitialState Sitting - Editor doesn't allow doing this with mouse and neither advanced actor editing because Epic have forgot writing codes properly.
Plain code Titan.uc:

Code: Select all

state Sitting
....
For mapping a map with a Titan mapped properly it should be:

Code: Select all

state() Sitting
But they were paying for brackets and budget was low.

Mmm... I think I can add this in a future version of MapGarbage.

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Wed Aug 19, 2020 8:04 am

Add OnlyInVisible option for SearchActors tool.
This allow you search in found results (use HideNotMatch for previous search). Or manually select desired actors where search and use "Show only selected actors" UEd feature.
Now you can find Actors by complicated query like:
- Find All actors which have PropertyA = foo and PropertyB = bar.

Add options for EditActor tool.
This allow set any property to any value for selected actors.
Also show count actors on which values is set and count actors which accept this value.
scr_1597820411.png

User avatar
sektor2111
Godlike
Posts: 4709
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: EditorTools

Post by sektor2111 » Wed Aug 19, 2020 8:14 am

Perfect, man !
Now you can delete these dependencies because nobody uses IpDrv and those UT Web specific things in Editor's Builder. Editor is not connected anywhere.
Umake.ini >>

Code: Select all

...
[Editor.EditorEngine]
CacheSizeMegs=32
EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=UnrealShare
EditPackages=UnrealI
EditPackages=Botpack
EditPackages=EditorTools
;EditPackages=UWindow
;EditPackages=Fire
;EditPackages=IpDrv
;EditPackages=UWeb
;EditPackages=UBrowser
;EditPackages=UMenu
;EditPackages=IpServer
;EditPackages=UTServerAdmin
;EditPackages=UTMenu
;EditPackages=UTBrowser

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Wed Aug 19, 2020 8:20 am

It is just lines in make.ini.
Maybe slowdown build a little. Nothing more.

No any dependency to this packages on .u file.
UT make dependency only on used things.
scr_1597821499.png
scr_1597821499.png (1.15 KiB) Viewed 256 times

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Tue Aug 25, 2020 10:45 pm

Add tool RotateActor:

10. RotateActor - Rotate selected actors to specified amount over one of axis.

Red_Fist
Godlike
Posts: 1784
Joined: Sun Oct 05, 2008 3:31 am

Re: EditorTools

Post by Red_Fist » Wed Aug 26, 2020 3:46 am

What I would like is a way to see a numerical dimensions of a brush I click on.

So say you come back to a map, you made a doorway or some other brush you want to "remember" what the size was, or if it has some off-size from fixing a map.

If there was a way to see it quickly I wouldn't have to keep punching in numbers to find the size I used, OR to match up to a length that I want to know but be a close fit without having to punch stuff in cube brush to find the exact size, over and over constantly counting while looking at a grid of 1.
Binary Space Partitioning

Buggie
Skilled
Posts: 232
Joined: Sat Mar 21, 2020 5:32 am

Re: EditorTools

Post by Buggie » Wed Aug 26, 2020 4:21 am

There is no data access interface for the Model class that contains information about the Brush points.
So all you can do now is use the Distance tool.
Or write C code from which to access the model data. Which makes the utilities tied to a specific version of UnrealEd. And in general, very non-trivial things, in view of the almost complete absence of documentation on how to do this.

User avatar
sektor2111
Godlike
Posts: 4709
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: EditorTools

Post by sektor2111 » Wed Aug 26, 2020 4:44 am

A maybe not that clear thing doable is copy-paste brush in Notepad whatever and looking at data, else how to get dimensions on which axis when brush is rotated, I don't think is a good way to have results... In a few mapping sessions which I had, I never messed up with these. I'm using normal dimensions when I do a tunnel or such making sure about good dimensions right from beginning. If is about editing maps, I'm probing spots using... monsters. If Editor cannot place whatever monster there, of course place is small, else you can compare monster size with area where is located.

But... If I want to find in closer dimensions how big is a cube, I can place two keypoints closer to corners between wall and floor on opposite locations of cube taking their collision data in account or even snapping them at grid directly and then counting distance between them.
HowBigIsCube0.PNG
HowBigIsCube1.PNG
Huh ? 8)

Red_Fist
Godlike
Posts: 1784
Joined: Sun Oct 05, 2008 3:31 am

Re: EditorTools

Post by Red_Fist » Wed Aug 26, 2020 5:16 am

Interesting with the clip idea.

I want a right click to see the dimensions on the fly. Technically I don't see how it is not possible because there has got to be a way to grab the dimensions since the whole damn thing uses and needs it for the editor or maps to fit at all !!!

Gotta be a place to get that data, like, right click, see dimensions, simple right ? LOLzzzzz

You guys do great. wish I knew more code stuff.
Binary Space Partitioning

User avatar
Chamberly
Godlike
Posts: 1909
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA
Contact:

Re: EditorTools

Post by Chamberly » Wed Aug 26, 2020 5:23 am

Sektor2111, you know a lot of us really like a simple measure viewing tool of such brushes!
Image
Image
Image

Post Reply