{"id":15035067,"url":"https://github.com/gildor2/ueviewer","last_synced_at":"2025-05-15T04:02:40.647Z","repository":{"id":20948591,"uuid":"24237071","full_name":"gildor2/UEViewer","owner":"gildor2","description":"Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer).","archived":false,"fork":false,"pushed_at":"2024-03-16T17:58:33.000Z","size":143077,"stargazers_count":2615,"open_issues_count":25,"forks_count":509,"subscribers_count":134,"default_branch":"master","last_synced_at":"2025-04-14T01:58:48.189Z","etag":null,"topics":["3d","actorx","cross-platform","exporter","fortnite","gltf","gltf2","model-viewer","opengl","skeletal-animation","ue-viewer","ue4","umodel","unreal","unreal-engine","unreal-engine-4","viewer"],"latest_commit_sha":null,"homepage":"https://www.gildor.org/en/projects/umodel","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gildor2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"UGildor","custom":"https://www.gildor.org/en/donate"}},"created_at":"2014-09-19T16:30:41.000Z","updated_at":"2025-04-13T19:35:04.000Z","dependencies_parsed_at":"2024-01-15T15:13:39.577Z","dependency_job_id":"a4aa6234-a740-49a5-91a5-8644f8eac1a4","html_url":"https://github.com/gildor2/UEViewer","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildor2%2FUEViewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildor2%2FUEViewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildor2%2FUEViewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildor2%2FUEViewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gildor2","download_url":"https://codeload.github.com/gildor2/UEViewer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248809032,"owners_count":21164895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","actorx","cross-platform","exporter","fortnite","gltf","gltf2","model-viewer","opengl","skeletal-animation","ue-viewer","ue4","umodel","unreal","unreal-engine","unreal-engine-4","viewer"],"created_at":"2024-09-24T20:27:24.132Z","updated_at":"2025-04-14T01:58:53.045Z","avatar_url":"https://github.com/gildor2.png","language":"C++","funding_links":["https://patreon.com/UGildor","https://www.gildor.org/en/donate"],"categories":[],"sub_categories":[],"readme":"UE Viewer\n=========\n\nUE Viewer is a viewer for visual resources of games made with [Unreal engine](https://www.unrealengine.com/).\nCurrently all engine versions (from 1 to 4) are supported.\n\nThe project was originally named the \"Unreal model viewer\", however the name\n[was changed](https://www.gildor.org/smf/index.php/topic,731.0.html) in 2011 to meet the request from Epic Games.\nPlease note that \"official\" project's name is \"UE Viewer\", and a short unofficial name of the project is \"umodel\"\n(it was left from the older name \"**U**nreal **MODEL** viewer\").\n\nThere's a place where you may discuss the source code:\n[gildor.org forums](https://www.gildor.org/smf/index.php?board=37.0).\n\n\nGetting the source code\n-----------------------\nThe source code is [available at GitHub](https://github.com/gildor2/UEViewer). You may either checkout it\nwith use of any Git client, or download it as a [Zip file](https://github.com/gildor2/UEViewer/archive/master.zip).\n\n\nBuilding the source code\n------------------------\nWe are using own build system to compile UE Viewer. You may find a Perl script in *Tools/genmake*. This script\ngenerates makefiles from some human-friendly project format. After that you may build generated makefile\nusing 'nmake' for Visual Studio or 'make' for gcc. Build process is controlled with *build.sh* script.\n\n### build.sh options\nTo list all options, run `build.sh --help`. Current options are:\n- `--64` compile for Windows 64bit\n- `--debug` make a debug version of executable\n- `--profile` make a special build which is intended to use with external profiler\n- `--vc \u003cversion\u003e` specify which Visual Studio version should be used for compilation, default is latest compiler\n  installed on your system\n\nPlease note that `build.sh` is not just a shortcut for calling `make -f \u003cmakefile\u003e`, it performs more actions.\nIt does:\n- Generating a makefile for current platform.\n- Making `UModelTool/Version.h` file which contains current build number based on number of Git commits.\n- Preprocessing shaders (with executing `Unreal/Shaders/make.pl`).\n- It has the possibility to compile just a single cpp file from the project (used with Visual Studio Code Ctrl+F7 key).\n\n### Windows 32-bit\n\nUE Viewer is compiled using Visual Studio. Required VisualStudio 2013 or newer. Older Visual Studio compilers are\nnot suitable because viewer's code using some C++11 stuff.\n\nCurrently build is performed with Visual C++ 2019.\n\nBuild system utilizes GNU Tools for building, in particular - Bash and Perl. I've packaged Windows versions\nof these tools which was a part of [MinGW/MSYS project](http://www.mingw.org/). You can get everything what you need\nfor a build [here](https://github.com/gildor2/BuildTools). You should download it and extract into some directory (press\nthe green button \"Clone or download\", then \"Download ZIP\"). Let's say you\nextracted everything to *C:\\BuildTools*. After that, add *C:\\BuildTools\\bin* to the system's *PATH* environment variable. As an\nalternative it is possible to create a batch file which will temporarily modify *PATH* and then execute build script.\nHere's an example of such file:\n\n    @echo off\n    set PATH=C:\\BuildTools\\bin;%PATH%\n    bash build.sh\n\nTo launch a build process without a batch, simply execute\n\n    bash build.sh\n\n### Windows 64-bit\nDespite only 32-bit builds of UE Viewer being provided, it is possible to compile it for 64-bit platform. To do that, you\nshould change a variable in *build.sh*: *PLATFORM* should be changed from `vc-win32` to `vc-win64`. Also 64-bit build could\nbe initiated with launching\n\n\tbuild.sh --64\n\n### Linux\nLinux system has the most of dependencies by default. You'll need to install the following development packages if they're\nnot available on your system: SDL2, zlib, libpng. Of course, you'll also need gcc for compiling the project.\nTo build UE Viewer, simply execute the following command from terminal\n\n    ./build.sh\n\nWhen compiling for Linux, project will use system's zlib and libpng libraries. If you want to bundle (statically link) them\ninto umodel executable, you may find and comment the following line in *common.project*\n\n\tUSE_SYSTEM_LIBS = 1\n\nIn this case, Linux build will be performed in the same way as Windows build, with compiling and bundling mentioned libraries.\n\n### macOS\nUE Viewer is provided with initial support for macOS platform. I'm using VMWare macOS image to build it, so I can't do the\nfull testing. Therefore, some features are disabled:\n- no OpenGL support (no visualization) - it is explicitly disabled in *UmodelTool/Build.h*\n- no multithreading support - it's disabled in the same place\n\nIn other words, UE Viewer on macOS works just like a simple command-line exporter utility.\n\n\nUsing IDE\n---------\n\n### Visual Studio\nAs UE Viewer is using custom cross-platform build system, there's no MSBuild support. However we have a simple Visual Studio\nproject which allows to use this IDE to edit, compile, run and debug the project. Project files are located in `.vs` directory.\nIn order to open the project, you should start Visual Studio, use \"Open a local folder\" command, and then choose root project's\ndirectory. Please note: there's .sln file somewhere in *Tools* folder, don't use it - it is intended for UI framework testing.\n\nPlease note that you should use Visual Studio 2019 or newer, otherwise [some features will not work](https://www.gildor.org/smf/index.php/topic,7419.0.html).\n\n### Visual Studio Code\nUE Viewer contains project files needed for opening and running it from [Visual Studio Code](https://code.visualstudio.com/).\nJust open viewer's folder in VSCode, and you'll get everything. Project already has a build task and launch actions set up.\nOf course you'll need a [C/C++ extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) installed.\nYou may build, launch and debug UE Viewer using this IDE.\n\nVSCode project comes with additional build command which could be bound to a key. Just use\n```\n\t{\n\t\t\"key\": \"ctrl+f7\",\n\t\t\"command\": \"workbench.action.tasks.runTask\",\n\t\t\"args\": \"Compile\"\n\t}\n```\nand then Ctrl+F7 key will compile a file currently opened in editor. Of course, it won't work for headers and other non-cpp\nfiles.\n\nBy default, Visual Studio Code project performs Debug build. If you want something else, change `.vscode/tasks.json` file,\nand remove `--debug` option from `build.sh` command.\n\nThere are 2 configurations For debugging: \"No arguments\" runs UE Viewer with default startup UI, and for use of command line\nyou may launch 2nd \"Volatile\" configuration, which reads command line arguments from file *docs/cmdline.cfg* - please refer to\n[Response files documentation](https://github.com/gildor2/UModel/wiki/Response-file) for details on its format. You may also\nedit *.vscode/tasks.json* file to add your own debug configurations.\n\n\nAdvanced debugging using Visual Studio\n--------------------------------------\nInitially UE Viewer was released without a Visual Studio solution. However it was possible to debug it within an IDE. The information\nbelow describes how to build and debug UE Viewer for debugging without use of VS project (e.g. when you're using older IDE version).\n\nYou can build a Debug version of viewer by uncommenting ```#define MAX_DEBUG 1``` in *UmodelTool/Build.h* and rebuilding the\nproject. After that you'll get executable with optimizations disabled, and with some extra features. For example,\nif umodel.exe crashes, and it is started with *-debug* option, standard Windows window appears with prompt to close\nprogram or debug it. You may choose \"Debug with Visual Studio\" there.\n\nAlso you may use `--debug` parameter for build.sh script. This will generate separate set of object files and link into\ndebug version of the executable (with the same executable file's name). You may quickly switch between \"debug\" and \"release\"\nbuilds without having to fully recompile the program.\n\nIf you want to debug umodel.exe in Visual Studio without having a crash, you may load it either from IDE (```File |\nOpen | Project/Solution```, then select *umodel.exe*), or you may type in console\n\n    devenv umodel.exe\n\nIt is recommended to use **Visual Studio 2013** IDE or newer because it has more advanced debugging features than previous studio\nversions. You may copy **Tools/umodel.natvis** file to *C:\\Users\\Your_user_folder\\My Documents\\Visual Studio 20NN\\Visualizers*,\nand after that you'll be able to view *TArray* and *FString* structures during debug session.\n\n\nC runtime library for MSVC\n--------------------------\nUE Viewer is dynamically linked with CRT library, so it requires CRT DLL files to be installed onto your system. It is possible\nto *statically* link with you compiler's CRT by changing a line in *common.project* (with cost of growing executable file size):\n\n    LIBC = shared\n\nto\n\n    LIBC = static\n\nUE Viewer uses custom CRT library for being able to link against MSVCRT.DLL. MSVCRT.DLL is chosen because it allows to\nreduce size of UE Viewer distribution without needs to install compiler runtime libraries onto a Windows system - MSVCRT.DLL present on\n_any_ Windows installation. You may disable MSVCRT.DLL linking by commenting out the line\n\n    OLDCRT = 1\n\nPreviously there were some problems with using msvcrt.dll with Visual Studio compiler 2015 and newer. However all issues has been\nsolved. For those who interested in details, I've [prepared an article](https://github.com/gildor2/UModel/wiki/Using-MSVCRT.DLL-with-Visual-Studio-compiler).\n\nIf you want to use MSVCRT.DLL, you should extract **MSVCRT.zip** archive available\n[here](https://github.com/gildor2/UModel/releases) to the directory LIBS one level above of UModel directory.\nSo, the directory structure should look like this\n```\n├── Libs\n│   └── MSVCRT\n│       ├── include\n│       ├── lib\n│       └── msvcrt.project\n├── UModel\n│   ├── Core\n│   ├── Unreal\n│   ...\n│   ├── build.sh\n│   ...\n```\nAlso you may change MSVCRT library path by changing **WDKCRT** variable in *common.project*.\n\n\nDirectory structure\n-------------------\nBelow is the list of major folders which exists in this repository or which are generated during build process.\n```\n├── .vs                   # Visual Studio 2019 project files\n├── .vscode               # Visual Studio Code project files\n├── Core                  # corelibraries not related to Unreal engine\n│   └── GL                # OpenGL wrapper builder\n├── Docs                  # miscellaneous text files\n├── Exporters             # exporters for different object types\n├── Libs                  # third-party libraries used for building\n├── MeshInstance          # mesh renderers\n├── obj                   # all compiled object files goes there\n├── Tools\n│   ├── CompatTable       # source of compatibility table\n│   ├── MaxActorXImport   # ActorX Importer script for 3ds Max\n│   ├── PackageExtract    # Unreal package extractor source\n│   └── PackageUnpack     # unreal package decompressor source\n├── UI                    # library used to show UI on Windows\n├── UmodelTool            # source code of umodel itself\n├── Unreal                # source code of Unreal Engine framework\n│   └── Shaders           # shaders used in UModel's renderer\n├── Viewers               # viewers for different object types\n├── build.sh              # main build script\n├── common.project        # main project file, reused between different sub-projects\n├── t.bat                 # Windows CMD caller for test.sh\n└── test.sh               # internal script used for testing\n```\n\nLicense\n-------\nUE Viewer is licensed under the MIT License, see [LICENSE.txt](https://github.com/gildor2/UEViewer/blob/master/LICENSE.txt) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgildor2%2Fueviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgildor2%2Fueviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgildor2%2Fueviewer/lists"}