ueのprojectをlinuxでpackage buildする #66

Closed
opened 2025-01-20 00:31:41 +00:00 by syui · 6 comments
Owner

必要なもの

sudo apt-get install xorg

sudo apt-get install xvfb
Xvfb :99 &
export DISPLAY=:99

sudo apt-get install vulkan-tools

sudo apt-get install mesa-vulkan-drivers

ref : https://zenn.dev/hige/articles/427a10a2580996

必要なもの - corss compile tool : https://dev.epicgames.com/documentation/ja-jp/unreal-engine/linux-development-requirements-for-unreal-engine - ubuntu(xorg + nvidia) ```sh sudo apt-get install xorg sudo apt-get install xvfb Xvfb :99 & export DISPLAY=:99 sudo apt-get install vulkan-tools sudo apt-get install mesa-vulkan-drivers ``` ref : https://zenn.dev/hige/articles/427a10a2580996
Author
Owner

package化は成功したりしなかったりする。なにもない空のprojectでは成功するが、game animation sampleでは成功しない。

linux sdkの更新が必要と出るけどよくわからない。clang-16.0.6-basedを入れており環境変数は設定されていて、package化も成功している。

package化は成功したりしなかったりする。なにもない空のprojectでは成功するが、game animation sampleでは成功しない。 linux sdkの更新が必要と出るけどよくわからない。`clang-16.0.6-based`を入れており環境変数は設定されていて、package化も成功している。
Author
Owner

buildしたpackageが動作しなかった。opensslの不具合が出るようで解決が面倒そうだったので、windowsでやることにした。

buildしたpackageが動作しなかった。opensslの不具合が出るようで解決が面倒そうだったので、windowsでやることにした。
Author
Owner

windows serverの扱いに慣れていないので、コマンドをメモする。pixelstreamingは私が触っていた頃とは変わってしまっていて、これはstart.shが用意された環境を言う。動くけど動かない。ゲーム画面との接続がうまくいってないように見える。

# git
# https://dev.epicgames.com/documentation/ja-jp/unreal-engine/getting-started-with-pixel-streaming-in-unreal-engine
git clone --branch UE5.5 https://github.com/EpicGamesExt/PixelStreamingInfrastructure.git
cd PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd
.\setup.bat

.\GameAnimationSample.exe -AudioMixer -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen
-PixelStreamingSignallingURL=ws://localhost:8888

# option
.\PixelStreamingInfrastructure\SignallingWebServer\config.json

# new
.\PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd\start.bat
C:\PixelStreamingInfrastructure\SignallingWebServer> npm start -- --publicip localhost

# old
.\PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd\Start_SignallingServer_nopublic.ps1
.\Start_SignallingServer_nopublic.ps1 --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp localhost --HttpPort 4480
---
.\PixelStreamingInfrastructure\Matchmaker\platform_scripts\cmd\run.bat

# command
Get-Process|gerp Game
Stop-Process -Name GameAnimationSample
Remove-Item $dir -Recurse -Force
-AudioMixer -RenderOffScreen -PixelStreamingSignallingURL="ws://127.0.0.1:8888"

http://localhost:4480/?AutoConnect=true&StreamerId=DefaultStreamer&hoveringMouse=true

windows serverの扱いに慣れていないので、コマンドをメモする。pixelstreamingは私が触っていた頃とは変わってしまっていて、これは`start.sh`が用意された環境を言う。動くけど動かない。ゲーム画面との接続がうまくいってないように見える。 ```sh # git # https://dev.epicgames.com/documentation/ja-jp/unreal-engine/getting-started-with-pixel-streaming-in-unreal-engine git clone --branch UE5.5 https://github.com/EpicGamesExt/PixelStreamingInfrastructure.git cd PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd .\setup.bat .\GameAnimationSample.exe -AudioMixer -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen -PixelStreamingSignallingURL=ws://localhost:8888 # option .\PixelStreamingInfrastructure\SignallingWebServer\config.json # new .\PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd\start.bat C:\PixelStreamingInfrastructure\SignallingWebServer> npm start -- --publicip localhost # old .\PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd\Start_SignallingServer_nopublic.ps1 .\Start_SignallingServer_nopublic.ps1 --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp localhost --HttpPort 4480 --- .\PixelStreamingInfrastructure\Matchmaker\platform_scripts\cmd\run.bat # command Get-Process|gerp Game Stop-Process -Name GameAnimationSample Remove-Item $dir -Recurse -Force ``` ```sh -AudioMixer -RenderOffScreen -PixelStreamingSignallingURL="ws://127.0.0.1:8888" ``` `http://localhost:4480/?AutoConnect=true&StreamerId=DefaultStreamer&hoveringMouse=true`
Author
Owner

pixel streaming2ではWebRTC, Matchmakerが削除されます。app.exe -PixelStreamingSignallingURL="ws://127.0.0.1:8888"が必要になります。

localhostではダメなのかもしれない。あとfirewallの許可が必要だったかも。sshでやると許可が出ない。これはappをguiで起動してください。

.\Windows\GameAnimationSample.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888
↓
.\Windows\GameAnimationSample.exe -PixelStreamingSignallingURL="ws://127.0.0.1:8888"

npm start -- --public_ip 127.0.0.1

https://dev.epicgames.com/community/learning/tutorials/5VBd/unreal-engine-pixel-streaming-2-update-guide

pixel streaming2では`WebRTC`, `Matchmaker`が削除されます。`app.exe`は` -PixelStreamingSignallingURL="ws://127.0.0.1:8888"`が必要になります。 - https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/Docs/pixel-streaming-2-migration-guide.md - https://forums.unrealengine.com/t/pixel-streaming-2-migrating-and-key-notes/2175491 localhostではダメなのかもしれない。あとfirewallの許可が必要だったかも。sshでやると許可が出ない。これはappをguiで起動してください。 ```sh .\Windows\GameAnimationSample.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 ↓ .\Windows\GameAnimationSample.exe -PixelStreamingSignallingURL="ws://127.0.0.1:8888" npm start -- --public_ip 127.0.0.1 ``` https://dev.epicgames.com/community/learning/tutorials/5VBd/unreal-engine-pixel-streaming-2-update-guide
Author
Owner

backgroundで起動するには

Invoke-Wmimethod -Class Win32_Process -Name Create -ArgumentList "Start-Job { & cd C:\Users\$USER\PixelStreamingInfrastructure\SignallingWebServer;npm start -- --public_ip localhost }"

Start-Job { & cd C:\Users\$USER\PixelStreamingInfrastructure\SignallingWebServer;npm start -- --public_ip localhost }

なんかwindowsは色々と面倒みたい。startupに.batを置いて、そこから.ps1を参照する。

backgroundで起動するには ```sh Invoke-Wmimethod -Class Win32_Process -Name Create -ArgumentList "Start-Job { & cd C:\Users\$USER\PixelStreamingInfrastructure\SignallingWebServer;npm start -- --public_ip localhost }" Start-Job { & cd C:\Users\$USER\PixelStreamingInfrastructure\SignallingWebServer;npm start -- --public_ip localhost } ``` なんかwindowsは色々と面倒みたい。startupに`.bat`を置いて、そこから`.ps1`を参照する。
Author
Owner

iframeではなかなか苦労する

<iframe src="https://ue.syui.ai/?AutoConnect=true&hoveringMouse=true&MatchViewportRes=true&AutoPlayVideo=true&FakeMouseWithTouches=true" scrolling="no" frameborder="0" loading="lazy" width="768" height="1024" style="width:160px;height:210px;padding-bottom:14px;"></iframe>

// player.html
<style> button#fullscreen-btn { display: none; } button#settingsBtn { display: none; } button#statsBtn { display: none; } svg#connectionStrength { display: none; } </style>
// ここから適当にパラメータのあたりを付ける
AutoConnect
AutoPlayVideo
BrowserSendOffer
UseMic
StartVideoMuted
SuppressBrowserKeys
IsQualityController
ForceMonoAudio
ForceTURN
AFKDetection
MatchViewportResolution
HoveringMouseMode
FakeMouseWithTouches
KeyboardInput
MouseInput
TouchInput
GamepadInput
XRControllerInput
WaitForStreamer
AFKTimeoutSecs
MaxReconnectAttempts
MinQP
MaxQP
WebRTCFPS
WebRTCMinBitrate
WebRTCMaxBitrate
StreamerAutoJoinInterval
// これらのメッセージを削除
    onWebRtcAutoConnect() {
        this.showTextOverlay('Auto Connecting Now');
    }
    onWebRtcSdp() {
        this.showTextOverlay('WebRTC Connection Negotiated');
    }
iframeではなかなか苦労する ```html <iframe src="https://ue.syui.ai/?AutoConnect=true&hoveringMouse=true&MatchViewportRes=true&AutoPlayVideo=true&FakeMouseWithTouches=true" scrolling="no" frameborder="0" loading="lazy" width="768" height="1024" style="width:160px;height:210px;padding-bottom:14px;"></iframe> // player.html <style> button#fullscreen-btn { display: none; } button#settingsBtn { display: none; } button#statsBtn { display: none; } svg#connectionStrength { display: none; } </style> ``` ```js // ここから適当にパラメータのあたりを付ける AutoConnect AutoPlayVideo BrowserSendOffer UseMic StartVideoMuted SuppressBrowserKeys IsQualityController ForceMonoAudio ForceTURN AFKDetection MatchViewportResolution HoveringMouseMode FakeMouseWithTouches KeyboardInput MouseInput TouchInput GamepadInput XRControllerInput WaitForStreamer AFKTimeoutSecs MaxReconnectAttempts MinQP MaxQP WebRTCFPS WebRTCMinBitrate WebRTCMaxBitrate StreamerAutoJoinInterval ``` ```js // これらのメッセージを削除 onWebRtcAutoConnect() { this.showTextOverlay('Auto Connecting Now'); } onWebRtcSdp() { this.showTextOverlay('WebRTC Connection Negotiated'); } ```
syui closed this issue 2025-01-23 08:01:50 +00:00
Sign in to join this conversation.
No Label
No Milestone
1 Participants
Notifications
Due Date
No due date set.
Reference: ai/ue#66
No description provided.