HammUEr, a Hammer/Worldcraft map importer for Unreal Engine

One last test is being done before it goes up. Posting this largely for suspense.

Check.
Check.
Check.
Boom.

As promised, both in a 4.9 and 4.10 version.

Yay! :smiley: checks account balance gosh flippin’ dammit
Guess I have to wait a week or two. :confused:

I can do 42.00 easy

Just need to wait till Christmas day :smiley:

Need moneys lol. Awesome you got it out though man. Look amazing to say the least.

Got it.

First run trying to import a MAP file:




Access violation - code c0000005 (first/second chance not available)

""

VCRUNTIME140
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:440]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:236]
UE4Editor_Slate!<lambda_4ba5b0c116ad939f50a9b616659f063a>::operator()() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4276]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_4ba5b0c116ad939f50a9b616659f063a> >() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:214]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4266]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4663]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4641]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:1416]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:1721]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:719]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:641]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:884]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launchengineloop.cpp:2391]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Second run, trying to import ‘district’ from insurgency:



Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:E:\Program Files\Epic Games\4.10\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 678] 
Array index out

UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\misc\outputdevice.cpp:374]
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_HammUEr
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:440]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:236]
UE4Editor_Slate!<lambda_4ba5b0c116ad939f50a9b616659f063a>::operator()() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4276]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_4ba5b0c116ad939f50a9b616659f063a> >() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:214]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4266]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4663]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4641]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:1416]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:1721]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:719]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsapplication.cpp:641]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:884]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launchengineloop.cpp:2391]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll


I did get it to load a map that comes with the source sdk for cs:go… no materials, but not worried about that. Will play more later and over the weekend.

**** it, sorry about that.
Of course people would get totally new errors I’ve never encountered myself (and the UE logging is spectacularly un-useful this time apart from the first line, because the rest basically says “someone pushed a button”).
What flavour MAP file was it? Was the insurgency vmf decompiled? Can you send me those files? I’ll take a look at them later, hopefully.

No worries. There are a lot of different map formats. Will send when I get home for the day.

The only MAP formats currently supported are idTech 1(Quake 1) and probably 2 (Quake 2), but I haven’t checked that yet due to a lack of testing material (so if anyone has any, feel free to toss them my way).
idTech 3 MAP files (Quake III and games based on it, like COD4 and Elite Force II) currently aren’t - again, due to a lack of testing material and some radical extra additions to the format.

(I mean, I just put together a quick and dirty “just skip over the stuff you don’t understand” bit of code so they at least load without crashing, but that’s not really support, as such.)

I can feed you cod maps… :wink:

Oh, I see that image above is the one I sent you… lol

Isn’t COD4+ on some distant, proprietary, largely forgotten branch of Quake 3?

Quake 3 isn’t supported anyhow, but (not speaking for ) seems like it could be at some point - I never really worked with it but it seems like patches are kinda just displacements? I dunno yo

This is awesome! It would be nice to support Doom 3 .map format, since DarkRadiant is such an awesome level editor! And I can supply test maps :slight_smile:

It’s nice and all, but doesn’t UE4 have issues with own brushes (slower rendering, issues with lighting, etc. which inherently will lead to same issue with imported brush-based maps ) ?

That is why it hammUEr imports the brushes from Hamemer, Trenchbroom, etc. as Meshes.

Atleast that is what I understand :slight_smile:

That’s correct. UE4’s BSP system being, as it is, trash, it’s better for a lot of reasons to just import as meshes. Which is what happens! Hooray!

just wanted to say- awesome work! I’m tempted to port in some TFC/CS maps to bunnyhop around on :slight_smile:

I didn’t look yet, but this makes me wonder if there is an option to import all as one mesh… that would be handy for bringing in little pieces of a map made in the other programs, sort of like prefabs. Though I guess that could cause problems with materials/texturing… IDK.

There is, basically! I think this might actually be something Turfs forgot in the documentation.

HammUEr imports brushes by group. So if you group every brush in the map, then import, it’ll import as all one mesh. Or, say in the case of a neighbourhood, you could group all the brushes in each house, and each house would be its own mesh. Or if you group all the brushes in a handrail, that handrail is now one mesh. Etc etc.

Done and ordered :slight_smile:

Happy Holidays :slight_smile:

Haven’t seen much info about the power of BSP in this thread, as someone who has investigated things like sketchup to save time modeling, would you say Hammer is a pretty good tool to get comfortable with for prototyping and even finalized environments? Or would quake be better? Or the source 2 version of hammer?

I mean this importer was made to be used more than to just re-play old maps right? I currently use maya 2016 & zbrush/3dcoat but it seems like bsp is easier for some things?

The Source 2 version of Hammer exports to a new, mesh-based format, so you can’t use that, but Hammer or a Quake-variant like Trenchbroom are a lot quicker and easier to prototype stuff (and eventually finish off I guess) in, especially for someone like me who’s not a level builder or an artist. And no, it’s not just meant to replay old maps, that’s just what seems to grab people’s attention more.
JoeWintergreen is building his maps for his project in Hammer, then importing them to UE, for example.
He’ll be doing some tutorials in the near future, he said.