vault backup: 2023-09-15 22:51:52
This commit is contained in:
parent
9ccf79f01a
commit
60d938bbfa
96
.obsidian/plugins/various-complements/data.json
vendored
96
.obsidian/plugins/various-complements/data.json
vendored
@ -47,94 +47,6 @@
|
||||
},
|
||||
"showLogAboutPerformanceInConsole": false,
|
||||
"selectionHistoryTree": {
|
||||
"406387721": {
|
||||
"406387721": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1690193982464
|
||||
}
|
||||
}
|
||||
},
|
||||
"使用其他框架?https": {
|
||||
"使用其他框架?https": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1690635291419
|
||||
}
|
||||
}
|
||||
},
|
||||
"UsingReactUMG": {
|
||||
"UsingReactUMG": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1690971735176
|
||||
}
|
||||
}
|
||||
},
|
||||
"编译插件后进入工程,点击工具栏的": {
|
||||
"编译插件后进入工程,点击工具栏的": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1690972218475
|
||||
}
|
||||
}
|
||||
},
|
||||
"json,": {
|
||||
"json,": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1690972883636
|
||||
}
|
||||
}
|
||||
},
|
||||
"JavaScript": {
|
||||
"JavaScript": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1691039171629
|
||||
}
|
||||
}
|
||||
},
|
||||
"html#msg40636": {
|
||||
"html#msg40636": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1691299621696
|
||||
}
|
||||
}
|
||||
},
|
||||
"Protocol,一种基于OSC的虚拟偶像动作输出传输协议。": {
|
||||
"Protocol,一种基于OSC的虚拟偶像动作输出传输协议。": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1691462131984
|
||||
}
|
||||
}
|
||||
},
|
||||
"c++17带来的代码变化": {
|
||||
"c++17带来的代码变化": {
|
||||
"internalLink": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1691473679060
|
||||
}
|
||||
}
|
||||
},
|
||||
"js-examples": {
|
||||
"js-examples": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1691644835357
|
||||
}
|
||||
}
|
||||
},
|
||||
"输入输出什么,怎么对接,原理简述": {
|
||||
"输入输出什么,怎么对接,原理简述": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1692104361523
|
||||
}
|
||||
}
|
||||
},
|
||||
"FBXSdk": {
|
||||
"FBXSdk": {
|
||||
"currentFile": {
|
||||
@ -142,6 +54,14 @@
|
||||
"lastUpdated": 1692677847729
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabled": {
|
||||
"enabled": {
|
||||
"currentFile": {
|
||||
"count": 1,
|
||||
"lastUpdated": 1694787633996
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,18 +1,36 @@
|
||||
---
|
||||
title: Untitled
|
||||
title: UE5 Ubantu & Docker 部署
|
||||
date: 2023-09-12 18:20:39
|
||||
excerpt:
|
||||
tags:
|
||||
rating: ⭐
|
||||
rating: ⭐⭐
|
||||
---
|
||||
# 前言
|
||||
本文假设系统已经安装完Docker,并且读者已经将镜像拉取完毕。并且假设此电脑装有显卡,且显存在3G以上(切记:AI专业显卡无法启动UE)。
|
||||
- 文档地址:https://docs.unrealengine.com/5.3/en-US/quick-start-guide-for-using-container-images-in-unreal-engine/
|
||||
- 镜像地址:https://github.com/orgs/epicgames/packages/container/package/unreal-engine
|
||||
|
||||
## 桌面版问题解决
|
||||
>docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]问题解决
|
||||
```
|
||||
# UE镜像选择
|
||||
- [runtime](https://github.com/orgs/epicgames/packages/container/unreal-engine/111082761?tag=runtime)
|
||||
- [dev-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977937?tag=dev-5.3)
|
||||
- [dev-slim-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977946?tag=dev-slim-5.3)
|
||||
|
||||
镜像主要分为runtime以及dev两种类型(slim为瘦身版)。主要的区别在于runtime是为了运行UE打包过的项目,带有图形显示环境。dev则带有一个对应版本的虚幻引擎,此引擎为源码编译版,官方也提供执行编译&构建镜像资料,有需求可以自行编译,一般这种镜像是为了编译、打包、测试项目或者执行CPU操作所用。
|
||||
|
||||
官方的runtime容器用的是第三方制作的镜像(也可以算是官方的,github的ReadME说是参与了官方容器的开发):
|
||||
- https://github.com/adamrehn/ue4-runtime
|
||||
- https://hub.docker.com/r/adamrehn/ue4-runtime/tags
|
||||
更多信息可以参考这位大佬的网站:https://unrealcontainers.com/docs/obtaining-images/write-your-own
|
||||
|
||||
本人因为项目需求使用`ue4-runtime:22.04-vulkan-x11`镜像。该镜像会将镜像内的UE窗口直接映射到系统桌面上,可以方便得查看错误。
|
||||
|
||||
PS.dev镜像因为带有引擎,需要下载20~30G,只建议肉身翻墙或者高级科学上网工具者使用。但即使肉身翻墙,10GB的那个包下载速度依然特别慢。最终解压完的镜像大约有60多G,小空间的VPS也不好整。
|
||||
## 问题解决
|
||||
### Docker提示没有可选设备驱动
|
||||
>docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
|
||||
|
||||
解决方法,安装nvidia-container-toolkit。
|
||||
```bash
|
||||
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
|
||||
sudo apt-key add -
|
||||
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
|
||||
@ -21,133 +39,32 @@ sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
||||
sudo apt-get update
|
||||
|
||||
sudo apt-get install -y nvidia-container-toolkit
|
||||
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
# UE镜像选择
|
||||
- [runtime](https://github.com/orgs/epicgames/packages/container/unreal-engine/111082761?tag=runtime)
|
||||
- [dev-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977937?tag=dev-5.3)
|
||||
- [dev-slim-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977946?tag=dev-slim-5.3)
|
||||
|
||||
镜像主要分为runtime以及dev两种类型(slim为瘦身版)。主要的区别在于runtime是为了运行UE打包过的项目,带有图形显示环境。dev则带有一个对应版本的虚幻引擎,此引擎为源码编译版,官方也提供执行编译&构建镜像资料,有需求可以自行编译,一遍这种镜像是为了编译、打包项目所用。
|
||||
|
||||
https://github.com/adamrehn/ue4-runtime
|
||||
可以参考这位大佬的网站:https://unrealcontainers.com/docs/obtaining-images/write-your-own
|
||||
# 编译命令
|
||||
## 生成Project
|
||||
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /home/user/Projects/AIMotionRender/AIMotionRender.uproject -game -engine -rocket -progress -VSCode
|
||||
|
||||
## Start Project
|
||||
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Binaries/Linux/UnrealEditor -logs "/home/user/Projects/AIMotionRender/AIMotionRender.uproject"
|
||||
|
||||
## Build
|
||||
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/home/user/Projects/AIMotionRender/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
||||
|
||||
## UE Docker
|
||||
### UE-dev 5.1
|
||||
sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1
|
||||
|
||||
### UE-Runtime
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
|
||||
#### 编译Puert
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
|
||||
sudo apt-get install clang
|
||||
sudo apt-get install libc++-dev
|
||||
sudo apt-get install libc++abi-dev
|
||||
sudo apt-get install make
|
||||
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
||||
sudo apt-get install -y nodejs
|
||||
cd /home/user/Projects/backend-nodejs/node-script
|
||||
npm install -s commander
|
||||
sudo apt-get install git
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
|
||||
|
||||
root 用户
|
||||
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
#### 编译v8
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
|
||||
|
||||
### Startup
|
||||
cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \
|
||||
./UnrealEditor -log "/project/AIMotionRender.uproject"
|
||||
|
||||
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
|
||||
|
||||
### Compiler
|
||||
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
||||
|
||||
|
||||
|
||||
## UE Docker
|
||||
|
||||
|
||||
|
||||
|
||||
# 需求
|
||||
1. 参考 adamrehn/ue4-runtime:22.04-vulkan-x11,重新构建容器
|
||||
2. 安装下列环境以进行Puerts的V8环境编译
|
||||
### 构建带有UE的图形环境
|
||||
简单的做法就是下载一份Linux版本的UE之后将目录映射进容器,比如:
|
||||
```bash
|
||||
sudo apt-get install clang
|
||||
sudo apt-get install libc++-dev
|
||||
sudo apt-get install libc++abi-dev
|
||||
sudo apt-get install make
|
||||
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
||||
sudo apt-get install -y nodejs
|
||||
sudo apt-get install git
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Project/:/project \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
```
|
||||
|
||||
后台运行:
|
||||
```bash
|
||||
# 下载编译脚本,脚本需要手动修改一下
|
||||
cd /home/user/Projects/
|
||||
git clone https://github.com/puerts/backend-nodejs.git
|
||||
cd /home/user/Projects/backend-nodejs/node-script
|
||||
npm install -s commander
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
sudo docker run --gpus=all -d --restart=always --privileged=true -e DISPLAY -ti \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Project/:/project \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
```
|
||||
之后可以使用docker exec让项目启动。
|
||||
# 进入容器
|
||||
![[UEDocker_进入UE容器.png]]
|
||||
使用第一个命令构建容器后,会进入容器,并且可以通过输入命令行进行操作,主要的命令有:
|
||||
- 生成解决方案://home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /project/XXXX.uproject -game -engine -rocket -progress -VSCode
|
||||
- 编译项目:/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/XXXX.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
||||
- 启动项目:/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -logs "/project/XXXX.uproject"
|
||||
|
||||
## 原容器存在问题
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11存在的问题:
|
||||
1. 缺少相关编译环境。
|
||||
2. 没有设置环境变量不知道root、ue4账号密码。
|
||||
3. 参与编译的libatomic.so.1库是32位的。
|
||||
|
||||
经过测试使用官方镜像安装的Ubantu可以正常进行编译(UE项目以及Puerts v8环境),并且可以正常打开项目;原容器可以编译UE项目,但因为编译的Puerts v8环境有一些问题导致无法运行Puerts。
|
||||
|
||||
## 启动命令参考
|
||||
```bash
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
|
||||
编译v8环境用:
|
||||
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
```
|
||||
PS.实际是因为Ubantu系统版本与容器系统并不相同,所以需要重新编译一下,才能运行项目。
|
@ -5,3 +5,62 @@ excerpt:
|
||||
tags:
|
||||
rating: ⭐
|
||||
---
|
||||
# 前言
|
||||
本人使用的版本是[Unreal_v1.0.4](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.4)的Nodejs版本
|
||||
|
||||
# Linux上的编译问题解决
|
||||
1. FileSystemOperation.cpp
|
||||
1. `#include "HAL/PlatformFilemanager.h" => #include "HAL/PlatformFileManager.h"`
|
||||
2. Compile PesapiFrameworkLoader.mm error: Objective-C was disabled in PCH file but is currently enabled
|
||||
1. 将PesapiFrameworkLoader.mm的后缀名改成PesapiFrameworkLoader.cpp
|
||||
|
||||
### UE-dev 5.1
|
||||
sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1
|
||||
|
||||
|
||||
|
||||
#### 编译Puert
|
||||
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
|
||||
sudo apt-get install clang
|
||||
sudo apt-get install libc++-dev
|
||||
sudo apt-get install libc++abi-dev
|
||||
sudo apt-get install make
|
||||
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
||||
sudo apt-get install -y nodejs
|
||||
cd /home/user/Projects/backend-nodejs/node-script
|
||||
npm install -s commander
|
||||
sudo apt-get install git
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
|
||||
|
||||
root 用户
|
||||
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
||||
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
||||
-v /home/user/Projects/AIMotionRender:/project \
|
||||
-v /home/user/node:/home/user/node \
|
||||
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
||||
adamrehn/ue4-runtime:22.04-vulkan-x11
|
||||
#### 编译v8
|
||||
/home/user/Projects/backend-nodejs/linux.sh
|
||||
|
||||
|
||||
### Startup
|
||||
cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \
|
||||
./UnrealEditor -log "/project/AIMotionRender.uproject"
|
||||
|
||||
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
|
||||
|
||||
### Compiler
|
||||
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
||||
|
||||
|
||||
|
||||
## UE Docker
|
||||
|
BIN
08-Assets/Images/ImageBag/Images/UEDocker_进入UE容器.png
Normal file
BIN
08-Assets/Images/ImageBag/Images/UEDocker_进入UE容器.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 165 KiB |
Loading…
x
Reference in New Issue
Block a user