4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UEC++勉強日記番外編 UEC++勉強会メモ

Last updated at Posted at 2026-01-18

はじめに

この記事は2026/01/17に開催されたUEC++勉強会のアーカイブメモです。
筆者が録画をミスって音声を取れていなかったため、抜け、漏れ、語彙漏れによる意味違いがある可能性があります。
もしこれは間違いがやばい…!というものがあればお知らせください

本編

プロジェクトを作るならBP?C++?

最初はBPで作ってC++クラスを追加してC++対応にする方が良いらしい
なんでもキャラクターとか一部のクラスがC++として作成されてしまうからとか

追記(26/01/21)
テンプレート(サードパーソンなど)をC++で作成するとデフォルトで準備されていたThirdPersonCharactorなどがC++で作られるって話っぽいです
image.png

C++のプロジェクトはIDE(例:Visual Studio など)から起動しましょう

え?仕事で一回も使ったことなかったが?という顔をしながら聞いてた。
IDEからUEを起動するかどうかで挙動が違うらしい。そんなの知らんて(※みんなやっていました)

Rider
image.png

VS
image.png

(画像をお借りしました。チャット欄で張ってくださった方ありがとうございます)

IDEとかいうの

IDE:
Visual Studio
Rider

広義のIDE(エディタ):
Visual Studio Code
とかのこと。
参加者はRiderとVSの採用率は半々~ややRiderの方が高め?
UE的にはIDEは何でもいいらしい。

セットアップ
Visual Studio をセットアップする
Rider Setup Guide

UEのエディタの環境設定のソースコードからどのIDEを使用するか指定できる
image.png

Riderは商用利用が有料なのと、資料自体が少ない印象があるので初心者的には環境整備のハードルが高い気がしました。(Riderの方が補助機能は手厚いらしいけど)

モジュールについて

モジュール=Source/MyGameのフォルダのことではない(重要)
正確な語彙起こしが難しいが、プロジェクト(※)の中に作られる拡張機能キットのようなもの?

※プロジェクト=UEを起動したときに作れるプロジェクト/プラグイン/UEEdior のような。VSのプロジェクトは関係ない

例えば、UEEditor自体にもたくさんのモジュールが準備されている(通常BPでは触れないものもある)

image.png
↑ココの中のBuild.csがあるやつはモジュール?

モジュールをまたぐと.hのパブリック公開やらBuild.csへの追記やらいろいろ必要になる。
モジュールがどう振る舞うか(エディタとかランタイムとかどこのなんのモジュールを使えるようにするかとか)はBuild.csが管理してるっぽい(そしてビルドするときに使う)

プラグインとモジュールは拡張的な意味では似てるけど異なるもの。

onionmarktwoさんによるメモ

Module について補足を書いてみました
 
Module については、視点を分けて考えると理解しやすいと思います
Engine 作者 or Plugin 作者視点
Engine ユーザー視点
 
Engine 作者 or Plugin 作者視点:
Engine 作者 or Plugin 作者は、色々な理由で Module を分けている。理由は Plugin を作りたくなるまで気にしなくて(多分)大丈夫
 
Engine ユーザー視点:
Module とは、「Engine 作者 or Plugin 作者が提供してくれる、機能の単位」です
Module を使いたい場合、 {MyProject}.Build.cs の PublicDependencyModuleNames に指定します
例えば、 UMG を使いたいときは PublicDependencyModuleNames.AddRange(new string[] { ..., "UMG" }); と UMG を追加します
 
unresolved external symbol というエラーは、だいたいこれで解決できることが多いです
{MyProject} の部分は、実際の自分のプロジェクト名が入ります
高度な開発をしない限り、自分で(Plugin以外で) Module を作ることは無い (たぶん。 誤ってたらごめんなさい)
例えば Lyra でさえも、 LyraGame と LyraEditor の2つの module しか作っていません
Lyra は Plugin という形では、多数の module があります
 
気にしなくて良いこと:
{MyProject} も PrimaryModule という形で Module を作ります。(その意味で 「自分で Module を作ることはない」は誤り。)が、これは最初は意識しなくて良いことだと思います
「Module とは機能の単位」 と書いたのは、厳密には誤りです。厳密に書けば "set of functionality, with public interface and compile environment" (https://dev.epicgames.com/documentation/en-us/unreal-engine/module-properties-in-unreal-engine) のような概念らしいです

コンテンツフォルダに作られたBPとsource/Mygame下のC++は同じモジュール?

A.同じモジュール(BPが特別扱いっぽいが)

つまりsource/Mygameの.hをパブリックにする必要って

A.ほぼない

パブリックとかプライベート

↑のモジュールが外部(自分ではない)モジュールから.hを#Includeできるかどうかって話。

.h(ヘッダ)とか.cpp(ソース)とか

.h(ヘッダ)は.cpp(ソース)になにが書いてるかどうかの索引
.cpp(ソース)は実装(イベントグラフに近い)

#Includeについて

#Includeした先の.hの中身が直接そこに展開されるイメージ

#pragma onceって

↑のように.hは.hの内容が展開されるので2重に出てくることもある。それを何回も実行することを防ぐ

.generated.hって

UHT(Unreal Header Tool)が自動で作る.h。Intermediateにいる。詳しくはビルドのあたりで。
絶対に最後にIncludeされないといけない。

ビルドについて

ビルドの工程について

ビルドと一言で言っても内部ではいろいろ動いている

ビルドを押す

UBT(Unreal Build Tool)が命令を出す

UHT(Unreal Header Tool)がgenerated.h/UCLASS/GENERATED_BODY/UPROPERTYなどUE独自のコードを普通のC++に変換する

コンパイル(.hなどが存在しているかなどチェックする)オブジェが作られる?

リンク(オブジェを実際に動ける状態にくっつける)

バイナリができる(UEなどで動く状態になる)

なのでビルドするときのエラーは主に
・コンパイルエラー(そもそも.hがないとか引っ張ってこれないとか)
・リンクエラー(コンパイルは通ったけど実際には問題があった?状態など)
の2つがある

↓おすすめの資料(p17~p26)

ビルドの種類

ビルド→差分の成果物を出す
リビルド→いままでのもの全部消して再度成果物を全部計算する
クリーン→成果物の削除

ソリューション→そもそもソリューションがVS限定の考えっぽい

UEのライブコーディングのビルド→成果物は出るけど成果物を焼き付けない?保存しない?仮で使える?状態なので終了すると消える。なのでIDEでビルドしろと言われる

Generate Visual Studio project Files
まずVS限定の話(ほかのIDEを使ってると名前が変わる)
UBTとかのUE系のものとIDEの結び付けを作り直すらしい(ので普通はやらない)

他独特のUE専用C++用語

####(プロジェクト名)_API
プロジェクト名の目印みたいなやつ

AMyActorのA

UEの特殊ルールの接頭辞

A U F T I E S W/U Fslate
Actor UObject Struct Template Interface Enum Slate Widget Slate Struct
Actor GC管理されるオブジェクト 軽量データ構造 テンプレート型 c++インターフェース 列挙子 SlateUIウィジェット UMGWidget Slate用構造体
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?