OldUnreal / UnrealTournamentPatches

Other
993 stars 29 forks source link

[469c] UnrealEd enhancement: Show number of changed properties per category & highlight said properties #1277

Open cybernaut4 opened 1 year ago

cybernaut4 commented 1 year ago

Situation

Consider you're learning how a map is made, be it an arena, mod-altered, cinematic, etc.

You have to know what values changed per every single actor placed on the map.

Problem

Unless you have used UnrealEd long enough to memorize what value is usually there in every actor/surface/level, you may have to open a second instance of UnrealEd and compare side to side their values: blank map level properties vs opened map, doesn't seem much if just with level properties, because there's always one per map.

You may learn how to change the music, add fog etc. from Level properties, but imagine doing this with every Actor to understand how to make a cinematic entrance, or any other kind of trigger/event/sequence you can imagine.

03 June Update: image Actor Text View doesn't show where the properties are, and not all of them are in the most obvious categories. It also takes space on-screen for what I believe could be minimized into one window. My extended opinion is below.

Solution

Part 1/2: Adding a change counter per category

Showing where things have changed at first glance might help know where to really pay attention to.

Here's an usage example from Godot 4 https://media.discordapp.net/attachments/645560317086269441/1114317253173846166/image.png

Here's where would it could potentially be in UnrealEd: https://media.discordapp.net/attachments/645560317086269441/1114317253408722995/image.png

Part 2/2: Highlighting changed values

Godot has one way of handling it: displaying a restore button near it.

On changed value: https://media.discordapp.net/attachments/645560317086269441/1114320894886694942/image.png

On default value: https://media.discordapp.net/attachments/645560317086269441/1114320975996137592/image.png

Although I believe this is (for the most part at least) an ideal solution, I'm not sure how much is possible in UnrealEd, so I prepared some alternatives.

Alternatives

  1. Change text color, or...
  2. Show the Clear button at the end of property name like so: image Note: it's an edited image to illustrate a point, this isn't how UnrealEd works today.

Currently, UnrealEd shows the Clear button only if the property is selected (and is an asset selector) I believe it would be better to show the button at all times to see, at first glance, where the changed values are.

The changing color alternative isn't ideal for colorblind people but as a last resort if it can't be helped. I have thought of bold text instead, but it generates a problem stretching the field and making it harder to read soon enough.

SeriousBuggie commented 1 year ago

img img

What about this feature? It what you want? It already implemented in v469c and contain only changed props.

It even easier, since you see all in once. Not need expand each category for search what changed here. Also it able show info for few actors: img

SeriousBuggie commented 1 year ago

About reset value back to default/parent value - it must be separate issue,

cybernaut4 commented 1 year ago

What about this feature? It what you want? It already implemented in v469c and contain only changed props.

It even easier, since you see all in once. Not need expand each category for search what changed here. Also it able show info for few actors:

While the separate window summarizes the amount of changes, not only occupies space on screen, but they don't show where they are, let alone the list it displays isn't arranged the same way as categories are sorted from top-bottom. Sure, in some scenarios it's obvious where each property should be, but others become a collapsing/expanding guesswork unless you already know where each is. To prove the point, I'm presenting a series of cases:

Case 1

Suppose you want to study CityIntro.unr for cinematic-related stuff. Starting to check InterpolationPoint actor first. One would think OldLocation (Nº8) should be in Movement category along with the Location property, but turns out it's inside \<HiddenProperties>. That's doesn't take much time fortunately, and you can find Position and RateModifier there as well. Tag, Location, Rotation and Name are in common places. Little guesswork here. oldunreal-ued-issue2

Case 2

AmbientSound actor is easier, you get accostumed knowing Sound* properties are in Sound. Other familiar properties. No issues here. oldunreal-ued-issue1

Case 3

ZoneInfo, here it becomes a little strange. When you read "Delay" and "Gain" from a ZoneInfo with "bFogZone=true" some may think it could be related to a Sound or ZoneInfo, but neither Delay nor Gain are there, so one would search like crazy within \<Hidden Properties> only to find out there's a sneaky Reverb category (parallel to Sound, for some reason, which is a word that belongs within Sound subject). Of course later on it may make sense, but took me like 8 minutes with little to no tolerance of constant expand/collapse everything for it. oldunreal-ued-issue3

Case 4

SpecialEvent, where InitialState may mean there's probably a StateMachine situation happening here. It can be related to SpecialEvent category, Events, or Object. Not very long to find out. But then ColLocation isn't in Collision, Movement, Filter, Networking and SpecialEvent, it's rather in the big list within \<Hidden Properties>. It starts to get tiresome, feels like I can forget or have to start taking notes again: something I recall not ever happening with Godot or any other editor but Blender. oldunreal-ued-issue4

Case 5

Starting to learn what I believe is a "mesh actor": Mover. Here it dumps a list of detailed coordinates that overflows to a scrolling point. I'd scroll down to the bottom each time I select it, only to check what other property I touched here. Here, instead of finding PrePivot and PostPivot in the same place, it turns into a manual search again, eventually becoming nerve-breaking, only to find PrePivot within Actor subcategory even after searching within twice, just because I got impatient after going through the previous cases. image image

The way I see it, I don't think it's the most optimal way to look for changes, unless you've been in the scene for a long time (so you'd already know where to look, but until then it's time consuming). It can also be discouraging to keep learning. I still think it's better to mark how many changes are in each subcategory as you descend, if possible.