Giter VIP home page Giter VIP logo

scottkirvan / ue_quicklaunch Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 1002 KB

A right-click Unreal Engine project creator/launcher for Windows File Explorer. Right-click on or in a folder, and quickly create a minimal unreal project (`uproject`) with the same name as the folder. If the project file already exists, just open it.

Home Page: http://www.scottkirvan.com/UE_QuickLaunch/

License: MIT License

Batchfile 46.60% C 4.28% HTML 3.38% CSS 45.74%
batch-script iteration pipeline reg-file registry right-click ue4 ue5 unreal-engine windows

ue_quicklaunch's Introduction

logo

A Right-click quick-launch menu for Unreal Engine

contributors last update forks stars open issues license

UE_QuickLaunch is a right-click Unreal Engine project creator/launcher for Windows File Explorer. Right-click on or in a folder, and quickly create a minimal unreal project (uproject) with the same name as the folder. If an unreal project file already exists, QuickLaunch just opens it.

Installation and basic usage

Download and run UE_QuickLaunch_installer.msi.  The installer, by default, installs into c:\Program Files\UE_QuickLaunch. It will ask for permissions to add the registry settings.

After successfully installing, right-clicking on a folder or an empty area within File Explorer will display it's context menu. Select QuickLaunch Unreal Engine here to create a new project and launch Unreal Engine.

Note If you don't see this context menu when you right-click in the folder, it may be because you're using Windows 11. Windows 11 introduced a new right-click context menu. Click Show more options to bring up the 'Classic' right-click context menu.

Windows-11-Right-Click-Menu-Show-More-Options

If you wish, you can configure Windows 11 to use the 'Classic' or 'Legacy' version of the right-click context menu by following the instructions here.

If you have multiple versions of Unreal Engine installed, a dialog will pop up asking what version of Unreal to launch when creating the new project.

Clicking OK creates and launches an Unreal project based on a minimal unreal project (uproject) file. The new project will be identical to creating a new UE4 "Blank" template project from the Launcher. In UE5 there are some differences you may want to be aware of.

If you, like me, always enable the same bunch of plugins and project settings every time you start a new Unreal project, you can save some manual project initialization steps and use a QuickLaunch Template project instead.

Template project

UE_QuickLaunch v2.1 introduces the ability to use a template project rather than the default minimal unreal project. This gives you the ability to fully customize the type of project created by QuickLaunch.

To use the template feature, create a ue_quicklaunch_template folder in the UE_QuickLaunch installation directory (ie. C:\Program Files\UE_QuickLaunch). You can put anything you want into the template folder and its contents will be used to create your new project.

To created a template Unreal Project (uproject) file, copy an unreal uproject file to the root of the template folder and name it ue_quicklaunch_template.uproject. QuickLaunch will copy and rename the file to match your project's name.

When you launch a new project with your template, the contents of the uproject file will determine which version of Unreal Engine is launched (and which plugins are enabled). If you edit the uproject file and delete the line that specifies the Unreal version, rather than launching a specific version of Unreal, you'll be presented with the Select Unreal Engine Version dialog.

Warning Multiple Unreal Versions:

When creating or using a template project, the contents have to be compatible with the version of Unreal you're launching. For example, you may be able to create a template map/level in UE 4.27 and successfully launch it in UE 5.3, but trying to load a UE 5.3 level asset into 4.27 will probably not work.

Unlike asset files, loading config files and (uproject) files in different versions seems relatively benign. Watch out for unusual behaviors. In my experience I've not seen any problems, but be aware that what a setting does in one version of Unreal may provide a different behavior in another. To be safe, generate your template project in the oldest version of Unreal that you tend to work in.

Building from source

If you choose to build this from source, everything you need is packaged up as a Microsoft Visual Studio Solution in the src folder. You'll need the Visual Studio HeatWave extension to build the installer itself. See the additional notes in the src README.

How to use it

Normal Usage

From within File Explorer

  1. create a New Folder ([CTRL+SHIFT+N]) -- name the folder whatever you want your unreal project to be called.
  2. double click that folder to enter the new directory.
  3. right-click anywhere within that empty directory and select QuickLaunch Unreal Engine from here. If you have more than one version of Unreal installed, you will be prompted to pick which version you wish to start, and Unreal will startup with a blank level open.

No launcher. No template browser. No waiting. Just one click to sweet, sweet engine-time!

Other Usage Scenarios

  • Click IN A FOLDER: You can use the right-click context menu by clicking within any folder, or by clicking on a folder -- this works in file explorer and on the Windows desktop. If a project already exists within the folder, that project will be opened.
  • CLICK ON A FOLDER: You can right-click and select QuickLaunch on a folder name, to create or open an unreal project without having to navigate into the folder. QuickLaunch works with the left side Navigation Pane in File Explorer, so you can click on folders that are pinned to Quick access and the recent history list without having to navigate to them.
  • LAUNCH MULTIPLE PROJECTS: You can use QuickLaunch to rapidly launch multiple projects at once without having to navigate around looking for them. For example, say you have multiple projects in their own folders within a subfolder in file explorer, and you need them all open at once to compare project settings. Just right click on each folder and launch the projects without having to navigate in and out of folders within File Explorer.
  • QUICKLY GRAB AN ASSET PACK: Say you see a cool asset on the unreal marketplace, and you just want to "quickly" check it out. The normal process is to add the asset to your library, navigate to the Library panel (wait for all the engine versions to get registered), launch Unreal (wait for the template browser to come up), navigate from the default template browser screen to a blank project template, select it, use the browse button to navigate to where you want to put it, choose a name -- that name's already used, or you've used a bad character, or etc., so you pick another. Now click launch, wait for unreal to start. Reopen Launcher and navigate back to the asset in your Library. Open the asset to install it and select your project... but, that asset pack doesn't support the engine version you just launched, so start all over..... -- With QuickLaunch, you add the asset to your library, and without navigating away from the asset, open File Explorer and launch the correct version of Unreal, import the asset, and you're good to go. :-)

Caveats

  • This is, of course, Windows only since it's a feature of File Explorer.
  • In Windows 11, the QuickLaunch menu item is found by clicking the Show more options menu. If you wish, you can manually revert your windows 11's context menu back to the Legacy Context menu
  • In Unreal 5, the default template created by QuickLaunch is configured slightly different from a Launcher based blank project. The differences are outlined below:

In the launcher based version:

  • The Modeling Tools Editor Mode plugin is enabled.

  • The following Project Settings are changed:

Setting QuickLaunch Project Launcher Blank Game
Project > Target Hardware > Optimize project settings for "Unspecified", "Unspecified" "Desktop", "Maximum"
Engine > Rendering > Global Illumination > Dynamic Global Illumination Method "None" "Lumen"*
Engine > Rendering > Shadows > Shadow Map Method "Shadow Maps" "VIrtual Shadow Maps (beta)"
Engine > Rendering > Default Settings > Extend default luminance range in Auto Exposure settings disabled enabled
Platforms > Windows > D3D12 Targeted Shader Formats > SM5 enabled disabled
Platforms > Windows > D3D12 Targeted Shader Formats > SM6 disabled enabled
Platforms > Windows Targeted RHIs > Default RHI "Default" "DirectX 12"
  • *enabling Lumen automatically enables several settings that I've omitted from the above list because they match once lumen is enabled.

The QuickLauncher project ends up being a just barely lighter starting point then a default Launcher based project, but it's pretty quick and easy to match those settings if needed.

Under the hood

At it's core, QuickLaunch works by simply adding some registry hooks that launch a batch file which stubs in your basic project (or template) and launches Unreal.

I've written up a short document outlining the registry changes here.

Contributions

I'd love it if you'd contribute - or just reach out and say, "hi"! Here's how:

Credits

Copyright (c) (2023): Scott Kirvan - All rights reserved
UE_QuickLaunch is licensed under the MIT License.

Project Link: UE_QuickLaunch
CHANGELOG
TODO

ue_quicklaunch's People

Contributors

scottkirvan avatar skvfx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ue_quicklaunch's Issues

quick launch project when user right-clicks on an existing uproject file

To round out the feature set, and because I know my muscle memory will make me do this, also launch the project when you right click directly on a uproject file.

This is a change to the installer (adding the registry hook for the right-click-on-file), and to the quicklaunch batch file (code below)

Note
I had implemented this, but it conflicted with Unreal's own registry entries, so do lots of testing if you add this one.

if %mode%==ON_UPROJECT (
    echo.Launching: "%projectName%"
start "" "%projectName%"
REM )

Toss together a demo video

outline:

  1. what it does
  2. how to install
  3. using it different ways
  4. setting up template folder
    • create template project, delete unnecessary folders, edit uproject and config files

No menu item showing up in Windows 11

Screenshot 2023-08-26 153753

Windows 11 changes what you see in the right click context menu, so you have to click the Show more options item to get to the menu options that include this shortcut.

Epic has successfully added an item to the windows 11 context menu, so there may be a way to make this work.

As an alternative, the installer could be changed to give the option to revert windows 11's context menu back to the old version (which is how I work)

make the location of the ue_quicklaunch_template folder configurable

This would be nice for anyone that wants to keep the template files out on a shared drive - maybe for like a studio environment or something.

Implementation would need some kind of config manager (or at least he ability to parse some config file), so personally, this is getting a little beyond the scope of what I need or want to get into. Anyone else is welcome to have at it. Could be handled with a small config app or maybe even with some modifiable options in the installer.

Installer ignoring folders now

everything installs into the default Program Files folder. Ignores custom setup options. Loses UE_QuickLaunch folder so installs directly into SKVFX.

Everything works ok, just the installer misbehaving.

the big fat initial todo whiteboard

Whiteboard

I'll clean these up and organize them into seperate issues later.

  • uequicklaunch (ueql) check filename for spaces
  • Ueql - implement error handling
  • ueql - switch Statement using 'call' - for handling of type of context click and for errors
  • ueql - simplify code by setting up var strings before doing the actual work
  • Ueql - something to ponder: doing this in scooterutils will let is know where the engine is located at install-time
  • Ueql - get this in github
  • ueql - document unc path issue
  • ueql - windows only
  • Ueql - add icon
  • Ueql - add a link to reg file docs from microsoft
  • use at your own risk

These reg files set up (or remove) registry entries for launching a batch file from the
right-click context menu in Windows File Explorer.

The launched batch file creates an Unreal uproject file either in the current directory, or
within the selected directory, and immediately launches unreal (if multiple versions are installed,
the user is prompted for which build to open)

If a uproject file already exists, it will not be overwritten, but will be opened directly.

  • TODO - add a list of all the registry keys that are created/touched, so that they can be found manually if needed
  • include a description of the difference between what this launches and what's enabled/setup in a default blank game template (lumen, modeling tools, etc.)

Add Template project

I'd like to see a template folder that I could populate with my preferred default content, configs, plugins, maps, etc.

This would introduce a possible compatibility problem, so Caveat Emptor. It could be as easy as having a Template folder that includes files and folders that get copies over at project creation. There would need to be a check to ensure any existing files didn't get overwritten in the process.

When opening existing project and template folder exists, the template uproject gets copied

This is potentially confusing to the user. Nothing serious, just a bit sloppy.

This happens when you're using quicklaunch to open an existing project. If the ue_quicklaunch_template folder exists, the template uproject file gets copied over and then the correct project gets launched, leaving an extra uproject file, called ue_quicklaunch_template.uproject in the project directory.

The code to do the xcopy could probably trigger on the existence of a uproject file (this would be faster with large template projects anyway).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.