first
This commit is contained in:
60
book/default/00_asset.md
Normal file
60
book/default/00_asset.md
Normal file
@ -0,0 +1,60 @@
|
||||
# asset
|
||||
|
||||
現在使用しているplugin(プラグイン)やasset(アセット)の`version(バージョン)`を記述します。
|
||||
|
||||
ゲームは無料のassetだけでも作れます。しかし、時間やクオリティを向上させたい場合は有料のassetを使いましょう。
|
||||
|
||||
本書の一部では有料assetの使い方を解説します。[sale](https://www.fab.com/ja/channels/unreal-engine?ui_filter_price=1&ui_filter_is_discounted=1&is_discounted=1)中のものを探しましょう。
|
||||
|
||||
## asset
|
||||
|
||||
|name|latest|body|
|
||||
|---|---|---|
|
||||
|[game animation sample](https://dev.epicgames.com/documentation/en-us/unreal-engine/game-animation-sample-project-in-unreal-engine)|5.5|キャラクターをパルクールアクション|
|
||||
|[city sample](https://www.unrealengine.com/marketplace/ja/product/city-sample)|5.5|大規模な都市を構築|
|
||||
|[control rig sample](https://www.fab.com/ja/listings/2ce3fe44-9ee6-4fa7-99fc-b9424a402386)|5.5|人間以外のキャラクター|
|
||||
|[content examples](https://www.fab.com/ja/listings/4d251261-d98c-48e2-baee-8f4e47c67091)|5.5|機能別サンプル|
|
||||
[[cesium](https://www.fab.com/ja/listings/76c295fe-0dc6-4fd6-8319-e9833be427cd)|5.5|惑星形式の地上を作る|
|
||||
|
||||
## plugin
|
||||
|
||||
|name|latest|body|
|
||||
|---|---|---|
|
||||
|[pixel streaming](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/Docs/pixel-streaming-2-migration-guide.md)|2|ゲームをserverにdeployしてwebからプレイ|
|
||||
|[twinmotion](https://www.twinmotion.com/ja)|20250101p|建造物をインポート|
|
||||
|[vrm4u](https://github.com/ruyo/VRM4U/releases/tag/20250206)|20250206|vrmモデルを動かす|
|
||||
|[kawaiiphysics](https://github.com/pafuhana1213/KawaiiPhysics)|20241201|揺れものを設定|
|
||||
|[varest](https://github.com/ufna/VaRest)|20240828|curlのようなもの。supportが終了しているのでbuildが必要|
|
||||
|[tatools](https://www.fab.com/ja/listings/a5d3b60d-b886-4564-bf6d-15d46a8d27fe)|20241206|animを作る|
|
||||
|[ui navigation 3.0](https://www.fab.com/ja/listings/a91f6e67-5c2d-46ef-926d-00a35525579c)|20250126|スタート画面を作る|
|
||||
|[dlss](https://developer.nvidia.com/rtx/dlss/get-started#ue-version)|20250301|nvidiaの描写速度|
|
||||
|
||||
## その他のasset
|
||||
|
||||
ここからは無料のassetでおすすめのものを紹介します。使っていないものもあります。
|
||||
|
||||
|name|body|
|
||||
|---|---|
|
||||
|[twinmotion-high-tech-pack-1](https://www.unrealengine.com/marketplace/ja/product/twinmotion-high-tech-pack-1)|家電製品|
|
||||
|[automotive bridge scene](https://www.fab.com/ja/listings/a472df9d-9179-4743-8d41-335f9ef55546)|道路や橋|
|
||||
|[animal variety pack](https://www.fab.com/ja/listings/2dd7964c-a601-4264-a53d-465dcae1644c)|有名な動物モデル|
|
||||
|[quadruped fantasy creatures](https://www.fab.com/ja/listings/52d686b6-1180-4f26-901f-ce3c69a14767)|有名な幻獣モデル|
|
||||
|[ueplugin-accessvariablebyname](https://github.com/colory-games/UEPlugin-AccessVariableByName)|名前を取得するplugin|
|
||||
|[gasp-als](https://github.com/polygonhive/gasp-als)|gaspの改造版|
|
||||
|[dlgsystem](https://github.com/notyetgames/dlgsystem)|会話システム|
|
||||
|
||||
## font
|
||||
|
||||
https://fonts.google.com/specimen/Orbitron
|
||||
|
||||
## 有料のasset
|
||||
|
||||
[こちら](/plan/README.md)
|
||||
|
||||
## link
|
||||
|
||||
こちらで最新情報を取り扱っています。
|
||||
|
||||
- https://git.syui.ai/ai/ue/
|
||||
- https://blueprintue.com/profile/ai/
|
||||
- https://dev.epicgames.com/community/profile/organization/gdkg/ai/
|
103
book/default/01_start.md
Normal file
103
book/default/01_start.md
Normal file
@ -0,0 +1,103 @@
|
||||
# start
|
||||
|
||||
## ueとは
|
||||
|
||||
`Unreal Engine`は`epic games`という会社が作っているゲームエンジンです。よく`ue`と略されます。
|
||||
|
||||
最新バージョン(latest version)は`5`なので、`ue5`となります。
|
||||
|
||||
`ue`の他には`unity`, `godto`が有名です。`DirectX`というものがあり、例えば、`DX12`からGPUに命令を送ることができます。ゲームエンジンの多くは`DX11`, `DX12`を使用します。
|
||||
|
||||
|name|url|
|
||||
|---|---|
|
||||
|unreal engine|https://unrealengine.com/|
|
||||
|unity|https://unity.com/|
|
||||
|godto|https://godotengine.org/|
|
||||
|
||||
ソース(source)からビルド(build)して使うこともできます。一部でbuildしないと使えない機能があります。private repoなので[こちら](https://www.unrealengine.com/ja/ue-on-github)からアクセス権をもらいます。
|
||||
|
||||
- https://github.com/EpicGames/UnrealEngine
|
||||
|
||||
## ueの特徴と注意
|
||||
|
||||
`c++`か`blueprint`で書きます。
|
||||
|
||||
ueの特徴はグラフィックが綺麗なことです。と言ってもきれいなグラフィックはunityなどでも実現可能です。しかし、ueは初期設定でもそれが実現できるので、主にグラフィック用途で使用されています。
|
||||
|
||||
ueはバグ(bug)が多く基本的に動きません。これはアップデート(update)が速く、3Dを扱うソフトウェア(software)なので仕方ありません。複雑なのです。
|
||||
|
||||
ueを長く使っているとわかることですが、ゲーム制作にはあまり向きません。unityのほうがおすすめです。ueはきれいな画像やシーンを作る用途におすすめです。
|
||||
|
||||
「ueはバグが多く基本的に壊れている」このことを最初に理解しておかないと「おかしいなあ」と時間を無駄にしてしまいます。また、保存せず長時間コードを書き続けるのは危険です。クラッシュ(crash)すると消えてしまいます。プロジェクト(project)そのものが壊れることもよくあります。注意しましょう。
|
||||
|
||||
そして、バグにぶつかっても情報がほとんどなく、自己解決するしかありません。情報量は非常に少ないと言えます。
|
||||
|
||||
- グラフィックがきれい
|
||||
- バグが多い
|
||||
- 情報が少ない
|
||||
|
||||
## unityやblenderも使っている
|
||||
|
||||
私はキャラクター(character)を[vroid](https://vroid.com/studio)で作っています。
|
||||
|
||||
そして、`.vrm`の開発は主に[unity](/unity/)が中心です。なぜなら`.vrm`の仕様を作っているpixivがunityで読み込むための[plugin](https://github.com/vrm-c/UniVRM)を開発しているからです。そのためかvrmに対応する多くのツールはunity専用です。
|
||||
|
||||
もし`.vrm`を扱う場合は、どちらにせよ`unity`を使うことになると思います。私もモデルのカスタマイズなどでunityを使っています。
|
||||
|
||||
また、モデリングには[blender](/blender)を使用しています。
|
||||
|
||||
つまり、本当にueでゲームを制作すべきかはよく考えなければいけません。ゲーム開発は使用するツールが少ないほど安定します。
|
||||
|
||||
結局、unityやblenderを使うことになるなら、unityで開発するのがオススメです。情報量、安定性、ツールの豊富さなどからそう判断します。
|
||||
|
||||
```diff
|
||||
+ [vroid] --> [vrm] --> [blender] --> [unity]
|
||||
- [vroid] --> [vrm] --> [blender] --> [unity] --> [ue]
|
||||
```
|
||||
|
||||
## ueを使う理由
|
||||
|
||||
私がueを使う理由は、最初にゲーム開発を始めたとき使ったものがueだったからです。その時の感動は忘れません。
|
||||
|
||||
その後、色々な情報を見聞きし、ueは初心者に向かないことを知りました。また、vrmを使う場合はunityのほうが圧倒的に有利で、情報も多く、ツールも豊富です。
|
||||
|
||||
では、なぜueを使い続けているのでしょう。
|
||||
|
||||
それはueの将来に期待しているからです。
|
||||
|
||||
確かに、現時点でueはおすすめできない。でも将来は...?
|
||||
|
||||
未来のことはわかりません。バグが多いueですが、アップデートも速いので、それは変化も進化も速いということ。
|
||||
|
||||
失敗を恐れず最新の技術を試していきましょう。
|
||||
|
||||
## 用語の解説
|
||||
|
||||
|title|short|body|
|
||||
|---|---|---|
|
||||
|unrealengine|ue|アンリアルエンジン|
|
||||
|version|ver|バージョン|
|
||||
|code||コード、プログラミング言語で書かれた文章|
|
||||
|build||ビルド、osで実行できる形式にすること。windowsなら`.exe`|
|
||||
|compile||コンパイル、コンピュータで実行できる形式にすること。buildと同じ意味で使われる|
|
||||
|source|src|ソース、主にソースコードの略|
|
||||
|server||サーバー、リクエストに応じるコンピュータ|
|
||||
|deploy||serverに実行ファイルを置くこと|
|
||||
|example|ex|例、uriではexample.comが有名|
|
||||
|install||インストール、アプリをインストールすること|
|
||||
|application|app|アプリ、ソフトウェア(software)のこと|
|
||||
|library|lib|ライブラリ、softwareを構築するための部品|
|
||||
|package|pkg|パッケージ、appだったり、libだったり色々。基本的にpkg managerでinstallできるものを指す|
|
||||
|update|up|アップデート、5.5.3の`x.x.3`の部分を言う ex: 5.5.2 -> 5.5.3|
|
||||
|upgrade||アップグレード、5.5の`x.5`の部分を言う ex: 5.4 -> 5.5|
|
||||
|asset||アセット、ueでは購入できるlibやexampleを指す|
|
||||
|plugin|plug|プラグイン、エンジンに直接入れる追加機能。新たなblueprintなどを使えるようになる|
|
||||
|crash||クラッシュ、アプリやosが落ちること|
|
||||
|cache||キャッシュ、一時ファイルのこと。tmpなども使われる|
|
||||
|repository|repo|リポジトリ、主にsrc codeの一式が置いてある場所|
|
||||
|project||プロジェクト、ueでは主に新しいゲームを作った時のフォルダ一式|
|
||||
|blueprint|bp|ブループリント、ueのノードベースで書く形式。anim blueprintはabp、character blueprintはcbpと略される事が多く、ファイル名は`BP_XXX`, `ABP_XXX`, `CBP_XXX`となる。基本大文字が使われる|
|
||||
|variable|var|変数、一時的な値の保存場所|
|
||||
|support||サポート|
|
||||
|
||||
基本的に英語で書けるものは英語で書きます。ueのmenuは英語にするのがおすすめです。様々な単語に慣れておきましょう。
|
44
book/default/02_install.md
Normal file
44
book/default/02_install.md
Normal file
@ -0,0 +1,44 @@
|
||||
# install
|
||||
|
||||
srcからbuildしない場合は`epicgames launcher`からinstallします。
|
||||
|
||||
https://www.unrealengine.com/download
|
||||
|
||||
また、[vsinstaller](https://visualstudio.microsoft.com/ja/downloads/)を使用して必要なpackageを入れてください。
|
||||
|
||||

|
||||
|
||||
[vscode](https://github.com/microsoft/vscode)でbuildするには`.uproject`を右クリックして`.sln`を作ります。
|
||||
|
||||
## package build
|
||||
|
||||
まずは新しいprojectを作り、package buildできるかを試してみましょう。
|
||||
|
||||
ueではbuildが通らないことがよくあります。長い時間をかけて作り上げたもののbuildが通らない事態は避けましょう。
|
||||
|
||||
なお、`mac`, `linux`は、ほとんどうまくいきません。package化に成功してもappが正常に起動しないことがあります。使用するpluginやassetなども影響します。
|
||||
|
||||
```sh
|
||||
# corss compile tool : https://dev.epicgames.com/documentation/ja-jp/unreal-engine/linux-development-requirements-for-unreal-engine
|
||||
# ubuntu(xorg + nvidia)
|
||||
|
||||
$ sudo apt-get install xorg xvfb
|
||||
Xvfb :99 &
|
||||
export DISPLAY=:99
|
||||
|
||||
$ sudo apt-get install vulkan-tools
|
||||
$ sudo apt-get install mesa-vulkan-drivers
|
||||
```
|
||||
|
||||
## engineとproject
|
||||
|
||||
installする場所は自分で決められます。参考の場所を紹介します。
|
||||
|
||||
```sh
|
||||
# engine
|
||||
C:\Program Files\Epic\UE_5.5\Engine\Binaries\Win64\UnrealEditor.exe
|
||||
|
||||
# project
|
||||
C:\Users\$USER\Documents\Unreal Projects\MyProject\MyProject.uproject
|
||||
```
|
||||
|
91
book/default/03_tips.md
Normal file
91
book/default/03_tips.md
Normal file
@ -0,0 +1,91 @@
|
||||
# tips
|
||||
|
||||
この章は読み飛ばしてください。まとめやすいように重要項目を上にしています。
|
||||
|
||||
最初はわからないかもしれませんが、最後まで読んでまた来ると、わかるようになっているかもしれません。
|
||||
|
||||
## variable(var)
|
||||
|
||||
まずは変数の紹介です。変数はローカル変数(local)、グローバル変数(global)があります。最初はprojectで読み込むところに作ります。
|
||||
|
||||
1. フォルダの`/Content/Blueprints/`で右クリックして、ブループリントクラス、`GameInstance`を作ります。例えば、`GM_xxx`にします。(名前はなんでもいいです)
|
||||
2. `設定 -> プロジェクト設定 -> マップ&モード`の`Game Instance:GameInstance Class`に`GM_xxx`を読み込みます。
|
||||
|
||||
なお、名前に`Default`, `Test`, `Config`などを使う場合は予約されていることがあります。注意してください。
|
||||
|
||||
これを開いて、変数のところで`UserTest`という名前で`string`型の変数を作ります。コンパイル(compile)してください。デフォルト値は`World`とでも入れておきましょう。
|
||||
|
||||
次に、`/Content/Blueprints/CBP_SandboxCharacter`を開いて、EventGraphで右クリックし、`Cast To GM_xxx`を選択します。
|
||||
|
||||
インプット(input)のpin(ピン)にあるObjectには`Get Game Instance`をつなぎます。そして、アウトプット(output)の青線は`Get UserTest`と検索し、それを`Print String`につなぎます。
|
||||
|
||||
さて、ここにkeyを設定して再生すると`World`と表示されるはずです。
|
||||
|
||||
特に重要なのが`変数の型`です。種類もそうですが、変数の型の右側にある色アイコンをクリックしてみると、たくさんの形式があることがわかります。
|
||||
|
||||
- 単一
|
||||
- 配列
|
||||
- 設定
|
||||
- マップ
|
||||
|
||||
配列を使ってみましょう。`UserTestList`という名前で`string`の配列を作成します。
|
||||
|
||||
ここで、デフォルト値に追加できることに気づくはずです。
|
||||
|
||||
例えば、単語を3つ追加してみます。
|
||||
|
||||
- [0]ai
|
||||
- [1]burst
|
||||
- [2]can
|
||||
|
||||
`Cast To GM_xxx`から`Get UserTestList`を引っ張り出し、`Length`につなげます。それをprintしてみると、`2`と表示されるはずです。
|
||||
|
||||
`length(len)`はその配列に追加された数を知ることができます。
|
||||
|
||||
では、全部の値を取り出すため`for`を書きましょう。`UserTestList`から`For Each Loop`を伸ばして`Loop Body`からprintにつなぎます。値は`Array Element`から取ります。
|
||||
|
||||
もし文字列をつなぎたいなら`Append`が使えます。
|
||||
|
||||
変数にはObjectをいれることもできます。たくさんのObjectを入れておき、`Find`で検索して取り出すこともできます。
|
||||
|
||||
では、characterを全部まとめて検索できる変数を作ってみます。
|
||||
|
||||
名前は`UserCharacterObj`でstringを選択し、マップを選択します。右側のマップは`オブジェクト(object)`と検索し、object参照を選択します。
|
||||
|
||||
```sh
|
||||
str obj
|
||||
--- ---
|
||||
```
|
||||
|
||||
`cbp character`と検索し、characterのcbpを入れていきます。名前はわかりやすいものにしてください。例えば、`manny`, `quinn`など。
|
||||
|
||||
では繋いでいきます。
|
||||
|
||||
```sh
|
||||
[Get Game Instance] --> [Cast To GM_Defaultconfig] --> [UserCharacterObj]
|
||||
|
||||
--> [Find(manny)] --> [Get Object Name] --> [Print String]
|
||||
```
|
||||
|
||||
<iframe src="https://blueprintue.com/render/_q-q_ffz/" scrolling="no" allowfullscreen style="width:100%;height:400px"></iframe>
|
||||
|
||||
基本的にこれを利用して、他のBPと値をやり取りすることになります。例えば、`ABP_SandboxCharacter`で条件を満たしたとき実行してほしいアニメーション(anim)があったとします。
|
||||
|
||||
この場合、まず`GM_xxx`の変数で`UserCharacterAnim`をboolean型で作り、実行してほしいタイミングで`CBP_SandboxCharacter`に書いた`Cast To GM_Defaultconfig`から`UserCharacterAnim`を`true`に変更します。`Set UserCharacterAnim`で検索してください。そして、ABPには`UserCharacterAnim`がtrueならanimを再生する処理を書きます。
|
||||
|
||||
## function(func)
|
||||
|
||||
次は関数です。関数は簡単で、何度も繰り返す部分を再利用可能な形で残します。それが関数です。
|
||||
|
||||
新しい関数を作ってみましょう。左バーの関数(+)を押せば作成されます。名前は`FuncTest`にします。
|
||||
|
||||
関数を表す紫色のボックス(box)を選択した状態でinputとoutputの見てもらって、inputにboolという名前でboolean型を作ります。outputにはstrという名前でstring型を作ります。
|
||||
|
||||
処理の内容はboolがtrueなら`[yes]`というstringを出力し、falseなら`[no]`にします。
|
||||
|
||||
<iframe src="https://blueprintue.com/render/pvn4lao9/2" scrolling="no" allowfullscreen style="width:100%;height:400px"></iframe>
|
||||
|
||||
確認してみましょう。`[9]`を押すと`[yes][no]`が表示されます。
|
||||
|
||||
<iframe src="https://blueprintue.com/render/pvn4lao9/1" scrolling="no" allowfullscreen style="width:100%;height:400px"></iframe>
|
||||
|
54
book/default/README.md
Normal file
54
book/default/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
# default
|
||||
|
||||
## 本書の目的
|
||||
|
||||
ue5でゲームを作成するまでの過程をまとめます。
|
||||
|
||||
主に`example`形式で記述し、実行するとその通りの結果になることを目指します。
|
||||
|
||||
|name|latest|body|
|
||||
|---|---|---|
|
||||
|[Unreal Engine](https://dev.epicgames.com/documentation/ja-jp/unreal-engine/unreal-engine-5.5-release-notes)|5.5.4|公式サイト|
|
||||
|[EpicGames/UnrealEngine](https://github.com/EpicGames/UnrealEngine)|src|github|
|
||||
|
||||
```sh
|
||||
# https://github.com/microsoft/winget-pkgs/tree/master/manifests/e/EpicGames/EpicGamesLauncher
|
||||
$ winget install epicgames.epicgameslauncher
|
||||
```
|
||||
|
||||
## パソコンのスペック
|
||||
|
||||
開発するゲームによりますが、GPUはnvidiaの`RTX 4060Ti`を使っています。特に不満はありません。
|
||||
|
||||
作りたいゲームによってはGPUは不要です。オープンワールドを作るならGPUはあったほうがいいと思います。
|
||||
|
||||
多くの場合、ue5のバグのほうが問題で、GPUの性能をほとんど引き出せていないことのほうが問題です。スペックはあまり関係なかったりします。
|
||||
|
||||
ただし、ストレージの読み書き速度は重要です。ueやprojectを入れるストレージには注意してください。
|
||||
|
||||
## 便利なサイト
|
||||
|
||||
|name|body|
|
||||
|---|---|
|
||||
|[dev.epicgames.com](https://dev.epicgames.com/community/)|開発者コミュニティ|
|
||||
|[perplexity.ai](https://www.perplexity.ai/)|検索エンジン|
|
||||
|[suno.com](https://suno.com/)|作曲|
|
||||
|[vroid.com](https://vroid.com/studio/)|3Dモデル|
|
||||
|
||||
## 使用するタグ
|
||||
|
||||
### youtube
|
||||
|
||||
`https://www.youtube.com/embed/${id}?start=0&end=10&mute=1&rel=0&showinfo=0&controls=0`
|
||||
|
||||
```html
|
||||
<iframe width="100%" height="415" src="https://www.youtube.com/embed/?start=0&end=10&mute=1&rel=0&showinfo=0&controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
|
||||
```
|
||||
|
||||
### blueprint
|
||||
|
||||
`https://blueprintue.com/render/${id}/${n}`
|
||||
|
||||
```html
|
||||
<iframe src="https://blueprintue.com/render/" scrolling="no" allowfullscreen style="width:100%;height:400px"></iframe>
|
||||
```
|
Reference in New Issue
Block a user