六一的部落格


关关难过关关过,前路漫漫亦灿灿。




说明

虚幻编辑器

ShooterGame 作为内容包,基于此开发 ShootThemUp

好比室内设计师提供游戏资料,我们在此之上开发游戏


创建ShootThemUp项目

Blank

Blueprint


配置ShootThemUp


添加版权信息

项目设置 > Project > Description > Legal > Copyright Notice

Shoot Them Up Game, All Rights Reserved.

关卡设置

  1. 添加关卡文件夹 Content/Levels
  2. 创建关卡
    • 新建关卡


    • 选择 Basic


    • 保存到 Content/Levels/ ,命名为 DefaultMap

  3. 设置 EditorStartupMapGameDefaultMap 使用 DefaultMap

    项目设置 > Project > Maps & Modes

从ShooterGame导入资产


ShooterGame导出

  1. 打开ShooterGame项目, 在内容浏览器选中 Content/Animations/TTP_Animations , 右键, 选择 Migrate


  2. 取消Sounds勾选


    默认勾选的文件夹里的内容都与 TTP_Animations 相关

  3. 保存到 ShootThemUp/Content 目录下

    不能直接迁移到 5.1.1/ShootThemUp/Content/ExternalContent ,虚幻引擎会检查目录,要求这些资产的上级目录是 Content ,即使根目录是 Content 也无法通过检查


ShootThemUp导入

  1. 添加外部资产文件夹和本章资产文件夹

    Content/ExternalContent

    Content/ExternalContent/Animation

  2. 通过虚幻编辑器,将 Content 目录下的 Animations Characters Environment 移动到 ExternalContent/Animation 目录下

    不能在外部直接将三个文件夹移动到目的文件夹中,会导致资产之间的相互引用路径出错

  3. ExternalContent 设置文件夹颜色

    选中 Content/ExternalContent, 右键, 选择 Set Color


  4. ExternalContent/Animation 设置文件夹颜色

  5. 效果图



基于蓝图创建C++项目

添加C++类即可

创建蓝图项目的时间开销明显小于创建C++项目


创建GameModeBase类

  1. Tools > New C++ Class..


  2. STUGameModeBase

    未设置类属性

    建议为STUGameModeBase设置类属性Public


  3. Content同级目录出现C++ Classes文件夹



设置关卡使用STUGameModeBase



查看项目源码中的版权信息



不使用预编译头文件

ShootThemUp: ShootThemUp.Build.cs

1// PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
2PCHUsage = PCHUsageMode.NoPCHs;

脚本


编译项目

Build.sh

1#!/bin/bash
2
3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
4BuildScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/Build.sh"
5Target="ShootThemUpEditor"
6
7$BuildScript $Target Mac Development $Project -waitmutex -NoHotReload

打开虚幻编辑器

Editor.sh

1#!/bin/bash
2
3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
4UnrealEditor="EpicGames/UE_5.1/Engine/Binaries/Mac/UnrealEditor.app"
5
6open -a $UnrealEditor $Project

生成项目文件

ProjectFiles.sh

 1#!/bin/bash
 2
 3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
 4GenerateProjectFilesScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh"
 5
 6EngineCCDst="EpicGames/UE_5.1/compile_commands.json"
 7EngineCCSrc="EpicGames/UE_5.1/.vscode/compileCommands_Default.json"
 8ProjectCCDst="Projects/5.1.1/ShootThemUp/compile_commands.json"
 9ProjectCCSrc="Projects/5.1.1/ShootThemUp/.vscode/compileCommands_ShootThemUp.json"
10
11GenerateXCode()
12{
13    $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -XCodeProjectFiles
14}
15
16GenerateVSCode()
17{
18    $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -VSCode
19    cp $EngineCCSrc $EngineCCDst
20    cp $ProjectCCSrc $ProjectCCDst
21}
22
23# GenerateXCode
24GenerateVSCode

初始化ShootThemUp项目



说明

虚幻编辑器

ShooterGame 作为内容包,基于此开发 ShootThemUp

好比室内设计师提供游戏资料,我们在此之上开发游戏


创建ShootThemUp项目

Blank

Blueprint


配置ShootThemUp


添加版权信息

项目设置 > Project > Description > Legal > Copyright Notice

Shoot Them Up Game, All Rights Reserved.

关卡设置

  1. 添加关卡文件夹 Content/Levels
  2. 创建关卡
    • 新建关卡


    • 选择 Basic


    • 保存到 Content/Levels/ ,命名为 DefaultMap

  3. 设置 EditorStartupMapGameDefaultMap 使用 DefaultMap

    项目设置 > Project > Maps & Modes

从ShooterGame导入资产


ShooterGame导出

  1. 打开ShooterGame项目, 在内容浏览器选中 Content/Animations/TTP_Animations , 右键, 选择 Migrate


  2. 取消Sounds勾选


    默认勾选的文件夹里的内容都与 TTP_Animations 相关

  3. 保存到 ShootThemUp/Content 目录下

    不能直接迁移到 5.1.1/ShootThemUp/Content/ExternalContent ,虚幻引擎会检查目录,要求这些资产的上级目录是 Content ,即使根目录是 Content 也无法通过检查


ShootThemUp导入

  1. 添加外部资产文件夹和本章资产文件夹

    Content/ExternalContent

    Content/ExternalContent/Animation

  2. 通过虚幻编辑器,将 Content 目录下的 Animations Characters Environment 移动到 ExternalContent/Animation 目录下

    不能在外部直接将三个文件夹移动到目的文件夹中,会导致资产之间的相互引用路径出错

  3. ExternalContent 设置文件夹颜色

    选中 Content/ExternalContent, 右键, 选择 Set Color


  4. ExternalContent/Animation 设置文件夹颜色

  5. 效果图



基于蓝图创建C++项目

添加C++类即可

创建蓝图项目的时间开销明显小于创建C++项目


创建GameModeBase类

  1. Tools > New C++ Class..


  2. STUGameModeBase

    未设置类属性

    建议为STUGameModeBase设置类属性Public


  3. Content同级目录出现C++ Classes文件夹



设置关卡使用STUGameModeBase



查看项目源码中的版权信息



不使用预编译头文件

ShootThemUp: ShootThemUp.Build.cs

1// PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
2PCHUsage = PCHUsageMode.NoPCHs;

脚本


编译项目

Build.sh

1#!/bin/bash
2
3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
4BuildScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/Build.sh"
5Target="ShootThemUpEditor"
6
7$BuildScript $Target Mac Development $Project -waitmutex -NoHotReload

打开虚幻编辑器

Editor.sh

1#!/bin/bash
2
3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
4UnrealEditor="EpicGames/UE_5.1/Engine/Binaries/Mac/UnrealEditor.app"
5
6open -a $UnrealEditor $Project

生成项目文件

ProjectFiles.sh

 1#!/bin/bash
 2
 3Project="Projects/5.1.1/ShootThemUp/ShootThemUp.uproject"
 4GenerateProjectFilesScript="EpicGames/UE_5.1/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh"
 5
 6EngineCCDst="EpicGames/UE_5.1/compile_commands.json"
 7EngineCCSrc="EpicGames/UE_5.1/.vscode/compileCommands_Default.json"
 8ProjectCCDst="Projects/5.1.1/ShootThemUp/compile_commands.json"
 9ProjectCCSrc="Projects/5.1.1/ShootThemUp/.vscode/compileCommands_ShootThemUp.json"
10
11GenerateXCode()
12{
13    $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -XCodeProjectFiles
14}
15
16GenerateVSCode()
17{
18    $GenerateProjectFilesScript -projectfiles -project=$Project -game -rocket -progress -VSCode
19    cp $EngineCCSrc $EngineCCDst
20    cp $ProjectCCSrc $ProjectCCDst
21}
22
23# GenerateXCode
24GenerateVSCode