Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ME3Explorer ME3Tweaks Fork 4.0 #105

Merged
merged 536 commits into from
Jun 1, 2019
Merged

ME3Explorer ME3Tweaks Fork 4.0 #105

merged 536 commits into from
Jun 1, 2019

Conversation

Mgamerz
Copy link
Member

@Mgamerz Mgamerz commented Feb 24, 2019

ME3Explorer ME3Tweaks Fork 4.0

ME3Explorer 4.0 is a huge update that greatly improves the editing capabilities for the Mass Effect Trilogy. Brought to you by Mgamerz, SirCxyrtyx, Kinkojiro, and Aquadran.

Global Changes

Icons have all been redone to have a consistent visual style, with source .xcf files as part of the project now. They are all higher resolution so they will look crisp on high DPI displays.
image

The toolset splash has also been updated to be just as fabulous as the toolset is now.
image

The toolset has moved some of the initialization code to a background thread that will continue once the splash closes. During this time you will see a loading in background indicator while TLK entries are parsed and loaded. Until this completes, not all TLKs will be available for lookups.
image

New tools

The term "WPF" means Windows Presentation Framework. It is a more modern UI design language that is far easier to support than WinForms (the old style) and has several advantages such as hardware acceleration and databinding. The biggest feature you will notice as an end user is it's support for proper UI scaling, so tools that are based on WPF will run nearly identical on 4K screens as they would compared to a 1080p one.

All new tools are built on WPF - and existing ones that have been rewritten may be referred to as [Tool] WPF to distinguish it from the "Classic" (WinForms) version.

Mount Editor

Allows you to edit or create mount.dlc files for both Mass Effect 2 and Mass Effect 3. Ported from Mass Effect 3 Mod Manager.
image

TLK Manager WPF

Manage TLKs for all 3 games in a single window, autofind TLK files in the game directory, replace and export TLK data quickly and easily. Edit Mass Effect 1 TLKs in TLK Editor (more info below).
image

  • Chosen options will persist for all 3 games, unlike previous versions where only the files for ME3 were persisted. These files are loaded at application boot, which is what the "Loading in background" item now is
  • All other TLK managers have been removed as they have been merged into this tool

Sequence Editor WPF

image

Sequence Editor has received a big upgrade. The most exciting new feature is auto-layout. When you open a sequence for the first time, Sequence Editor will attempt to layout the nodes in an intelligible fashion, as opposed to the entirely unhelpful straight-line layout it used to do. It works rather well most of the time, and even when it creates a sub-standard layout, it's still much better than it used to be.

Other new features include:

  • Multiselect: hold down shift or ctrl to select multiple nodes in either the graph or the list on the right-hand side. You can then drag them as a group.
  • Event Links are now displayed. These are similar to Variable links, except they link to Sequence Events.
  • Menu option to go to a specific export that is in any sequence in the current file.
  • Right-clicking on a PMExecuteTransition object will give you the option to open the referenced State Transition in the Plot Editor.
  • General UI improvements to bring it in line with the other rewritten tools.

Pathfinding Editor WPF

image

Pathfinding Editor has been completely rewritten into a WPF application. This means it scales much better on high DPI screens and can take better advantage of WPF features. The map now pans with animation and can refresh most operations without doing a full redraw, improving performance significantly.

Load an overlay file

You can load an overlay file to display its nodes, but not interfere with your current file. The overlay file loads read only and can't be modified, but is an immense timesaver when working with multiple overlaying files like Art and Design files.
image

New side panels for quickly changing pathfinding attributes

New items in the side panel allow you to quickly create reach specs, change a node type, run a fix and validate pass, and add or remove nodes from combat zones and playpens.
image

Other notable features and changes

  • Now uses UIndexing to match other new tools
  • Shift click a node to automatically populate it in the reachspec creation box. Select the starting node, shift click the target node, press create, and repeat to quickly create a pathfinding chain
  • Create an external node reachspec by checking the box, loading the linked file, and then using the linked file's destination node UIndex
  • Quickly open recent files with the new recents panel when the tool opens
  • Double click an actor to show its brush, if it has one. Or turn on all of them at once like in the classic version in view options
  • Multiple new node types have been added
  • Graph should now use less memory
  • Pathfinding Editor (Classic) has been removed

AutoTOC WPF

AutoTOC has been rewritten into WPF. All of the functionality remains the same, but gains the benefits of WPF scaling and performance.
image

  • AutoTOC classic has been removed

Changed Features

Just about all areas of the toolset have had feature changes.

Package Editor WPF

  • Cross porting data between ME1 files and between ME2 files now correctly copies the binary data over
  • Trashing an export now just writes the GUID to the end of the header - 4, instead of attempting to parse through to find it's location. This will prevent exceptions from occurring when attempting to trash exports
  • When typing in the goto box in names view, the name value referenced is displayed
  • When typing in the goto box in imports, exports, or tree view, the indexValue is now also displayed
  • Relinker has been significantly improved, can now auto link to existing exports in the destination file
    • Supports multi-drop relinking. Turn this option on in the menu, and then drag/drop as many items as you need from a single source file. When you're done, perform relinking, which will relink all of the objects together. This significantly can speed up porting things between files that require a lot of exports to be moved
    • Function relinking now relinks the superclass, the childprobe
    • Porting a class will now relink imports
    • Relink report is now UIndex based instead of Index based (so it matches the numbers in the interface)
    • Relinker now includes superclass of exports when porting items

Menu options

image
There are several new options in Package Editor WPF menus.

  • Pop out current view: Press CTRL + P any time an export is selected and the current tab will pop out into a new window. This allows you to look at multiple exports at a time without having to have a full new instance of Package Editor WPF

image

  • Touch Comfy mode has been expanded to also include items in Interpreter WPF, making them have more padding on items. It is also now persistent so you can permanently keep it enabled if you want
  • You can now associate PCC/SFM files with ME3Explorer so that you can double click files and they'll open up immediately in Package Editor WPF
  • You can change unknown array types to parse as objects instead of integers. This will be rarely used as we have improved property parsing significantly, but may come in handy when working with custom classes. You can change this per game
  • Interpreter can now have advanced mode turned on or off. The default is currently on, but turning it off will condense the size of the node by removing offset, type, and array size.
  • Texture Viewer can automatically load the highest mip of textures. This is off by default because the texture code does not appear to be stable, and can crash the toolset. We haven't been able to identify the cause.

Package Editor WPF Subtools

Texture Viewer (New)

You can now preview textures as-referenced directly in Package Editor WPF. If the texture can't be referenced, you'll see an exception. Note this feature is still experimental and the native code it uses does not appear to be stable, and the toolset may crash when using it!
image

ME1 Talk File Editor (New)

You can now edit BioTlkFile exports directly in package editor. Or if you want a more full editor, you can pop it out into its own window.
image

Interpreter WPF

image

  • StringRefProperties now parse and display their referenced values for Mass Effect and Mass Effect 2
  • Bottom statusbar now refreshes on export load
  • LinearColor no long can be modified by color picker. LinearColor's don't represent actual colors
  • The font for the offset and property name are no longer italicized, which makes it surprisingly easier to read
  • Colors have been slightly adjusted to show background indicator better
  • You can now empty an array by right clicking and choosing the Clear Array option
  • You can now move array elements up and down
  • Current selected item is restored when the export reloads when removing, adding, or moving array elements
  • You can now edit byteproperty values that are not enums
  • Statusbar now shows parsed floats
  • Additional resolved types have been added that allow you to see the actual referenced object, such as what the template for a referenced particle component is without having to drill into the export referenced

Bio2DA Editor WPF

  • You can now import to and from an excel spreadsheet
  • Fixed an exception that was thrown when row names were changed and export was commited

Metadata Editor WPF

  • Class for Imports is now correctly written. It was using the value from Pacakge File instead of Class dropdown
  • Cloning an entry should now properly populate fields that have the value of 0: Class when it is immediately selected
  • You can no longer "save hex changes" if you didn't actually change anything
  • Pressing enter on a new name dialog to close it will no longer wipe out what you just entered because the box also intercepted the value
  • You can no longer add blank names when pressing enter
  • Offset displayed for object index on imports will now be correct when an import is loaded into the editor

Soundpanel

Soundpanel is the right side component of Soundplorer.
image

  • Converting audio now takes place in a background thread so the interface should not lock up while converting audio
  • No longer will attempt to parse Default__ items
  • WwiseStream's now show the header information of the referenced audio file
  • The HIRC tabs are disabled if you're not looking at a soundbank
  • Replacing audio for ME3 now asks what samplerate you want to use, which includes 24K and 32K values you can use
  • Default sound level is now 65% for human safety reasons
  • Soundpanel now has a built in HIRC editor, which will eventually be used to replace WwiseBank Editor, but not in this release

Binary Interpreter WPF

  • Added TextureFlipBook
  • Enhanced World for ME3
  • Enhanced Level for ME3
  • Added some scan info for ShaderCache based on what we know about it
  • Added BioCodexMap
  • Added BioQuestMap
  • Added BioStateEventMap
  • Added BioConsequenceMap
  • Added Model (mostly generic)
  • Added Polys (generic)
  • Materials scan will now append a generic scan to the end
  • Class Parser (ME3): Replication block now parsed as UnrealScript (not relinked!)
  • Added StaticLightCollectionActor
  • Full parsing of Skeletal Meshes for all 3 games and UDK
  • Statusbar now shows parsed floats

Unreal Script Editor WPF

image

  • Significantly improved ME1 function parsing. Should be nearly 100% working now, though some formatting changes are desired for the output text
  • ME1 functions are now hooked up into the editor so they work like ME3's with tokens and statements
  • Changed how hexbox selecting is done to prevent the cursor from jumping all over as you tried to scroll the hex cursor
  • The current selected token from the hexbox will now be brought into view as you move the cursor
  • ME1: Show OpCode in status bar of current hex byte
  • ME3 Bytecode for FRand() has been fixed to be properly interpreted, which will fix display of scripts that use this element
  • The item under the caret, in hex, is an entry in the file and the entry's object name matches the current export, the full path is displayed instead of just the name to avoid confusion. This is a common occurrence when calling super methods
  • ME3 Bytecode for EX_FinalFunction will check the target method's object name, and if it matches matches the current export, the full path is displayed instead of just the name to avoid confusion. This is a common occurrence when calling super methods
  • ME3 Bytecode for EX_FinalFunction will check the target method's object name, and if it matches matches the current export, the full path is displayed instead of just the name to avoid confusion. This is a common occurrence when calling super methods
  • Improvements to ME3 Bytecode parsing for Iterators that have null optional arguments
  • Changed token list look a bit
  • Tool can now have the boxes changed around
  • ME1 footer information is now correctly aligned, it seems RepOffset is not present in ME1...?
  • ME1 Bytecode: Fixed Dynamic Iterator Addition Parsing
  • ME1 Bytecode: Fixed ByteToInt() parsing

Soundplorer WPF

  • You can now directly load ME2 AFC files to listen and extract their audio
  • Extracting audio in bulk now runs in a background thread for UI responsiveness

Plot Editor

Plot Editor now works for all 3 games, thanks to Kinkojiro. It also has a significantly improved UI to bring it in line with the other tools. It still needs some more work, but it'll get there eventually.
image

Package Dumper

  • Package Dumper is now multithreaded, which is much faster
  • Supports Drag & Drop of single or a group of files
  • Can select single or specific files to dump
  • ME1 functions are now dumped

WwiseBank Editor

You can find most functionality of this tool now within Soundpanel's HIRC tabs.

  • Search Hex has been fixed

Internals

These items are not part of any tools directly, but most tools will benefit from them.

  • ME1, ME2 has had significant enhancements to the property parsing, especially for enums.
  • Renamed classes can look up info as long as the relevant info is in the same file
  • Property information has been updated for all 3 games for better support of property parsing. ClassProperty and ComponentProperties are now included (affected ME2 the most)
  • Core.pcc/.upk will now persist in memory when loaded, which will improve lookup performance
  • Kismet Font has been changed from display pixels (dp) to pixel units. This will cause the font to look smaller on high DPI displays, however since it was only used in graphs that support scaling, this will correct huge fonts inside of non-scaled graph objects
  • Hexbox scrollbar has been fixed to show the actual length of the data it can display. It previously would read end of scrolling 10 lines before the end
  • UDK file support has been slightly improved to allow better in-porting of UDK stuff

Deprecated features

The following tools and features have been deprecated in this release. While we have tried to maintain their usability, we did not test against them. These items are scheduled for removal in the next feature release.

  • Package Editor Classic (and all nested tools like Interpreter, Binary interpreter, Property grid, etc).
  • ModMaker
  • Texplorer
  • TPF Tools
  • UDKExplorer

Most of these tools have been unsupported for some time. Package Editor Classic will be removed as it adds a huge amount of complexity that makes it more difficult to upgrade other parts of the toolset, and it and its subtools have been superceded by their WPF equivalents.

Removed features

The following additional features were removed as part of 4.0 that were not mentioned above:

  • Soundplorer Classic
  • AFC Dumper/Audio Extractor
  • Asset Explorer
  • Property Manager
  • Property Dumper

All of these have been superceded by other tools.

Bugfixes not mentioned above

  • Memory leaks of multiple tools have been fixed, thanks to JetBrains dotMemory tools they gave us
  • Package Editor WPF: Performance has been improved significantly as we have found a way to virutualize the treeview with acceptable tradeoffs. You may occasionally have selecting issues when searching/goto, but attempt it again and it will typically work (This is pretty rare).
  • Package Editor WPF: Trashing imports as part of a tree now works
  • Package Editor WPF: Can now trash exports if Core or Package imports don't exist in the local file
  • Package Editor WPF: Changing the link of an import will now move it under the appropriate parent
  • Package Editor WPF: Name changes now propagate to more parts of the tool
  • Package Editor WPF: Treeview search doesn't occur if there are no nodes in the tree due to a load failure
  • Package Editor WPF: Merge porting will no longer include the root node like it was originally supposed to
  • Package Editor WPF: When re-sorting children, it will now account for new imports because it looks at UIndexes instead of only positive indexes
  • Package Editor WPF: Updated some of the package header information for new info we have recently learned
  • Package Editor WPF: Clicking X on the porting options window will cancel the port instead of Clone And Children option being performed
  • Package Editor WPF: Imports that are ported in will now show up in the tree immediately
  • Interpreter WPF: Adding immutable property will mark item as immutable so when property is written to export it is properly written
  • Interpreter WPF: Nested structs will now show the correct type, instead of the parent type
  • Interpreter WPF: Veritcally center text so when color picker shows up its not incorrectly aligned
  • Interpreter WPF: Drop down becomes editable for bool properties if you select a name property before selecting a bool property, fixed to prevent editing the values accepted
  • ME1 TLK Reading: Property read last huffman node so last entry does not get lost on next save
  • Binary Interpreter WPF: GUID count fixed to more properly display data
  • Package Dumper: Now dumps to the correct user specified directory (only happened in certain circumstances)
  • Dialogue Editor: BioConversations now account for the name index, which should prevent some conversations that were previously busted by the tool from being busted when the name index used was > 0. Dialogue Editor breaks the game editing in BioD_ProEar_130Trial_LOC_INT #125

@Mgamerz Mgamerz changed the title ME3Explorer ME3Tweaks Fork 3.1.12.15 ME3Explorer ME3Tweaks Fork 4.0 Apr 1, 2019
Mgamerz and others added 29 commits April 25, 2019 09:47
…n the UI still like containers retaining the original background when scrolling
… package editor wpf treeview. Added netindex display option to package editor wpf.
…nt so selector is more visible throughout the control
…ndow controls. Removed the original hosted window for Curve Editor and replaced with the generic one.
…on as i don't think i will need source access anymore
…iew only for now). Make context menu only appear if right clicking an item rather than the entire tree control.
…context menu on item right click rather than anything spot
…or (and to avoid the ugly winforms integration overlap).
…ding changes color vsibile with border. Change memory analyzer text for a few export loaders
Mgamerz and others added 29 commits May 28, 2019 19:22
…lue, since they're stored as IntProperty for some reason.
Updated descriptions of the more rare nodes.
Done
DoorMarker
  SFXDoorMarker
  SFXDynamicPathNode
  SFXNAV_JumpNode
  SFXNAV_KaiLengShield
  SFXNAV_LeapNodeHumanoid
  SFXNAV_LeapNodeLarge
  SFXNAV_SpawnEntrance
Only remaining ones are those that are superclasses or just in engine/sfxgame.
This reverts commit e7dd76f.
…n window from being brought to foreground. This is not supported for winforms. Fix Bik Extractor showing Done when clicking cancel.
@Mgamerz Mgamerz merged commit b1bd1c6 into master Jun 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants