---
title: やさしいプラグインを作るための C++ Tips
tags:  #ue5 #unreal engine #uetokyo  
author: [Metaseven](https://www.docswell.com/user/suramaru517)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V7PXQLNDE8.jpg?width=480
description: やさしいプラグインを作るための C++ Tips by Metaseven
published: November 17, 23
canonical: https://www.docswell.com/s/suramaru517/K1JER8-ue-plugin-tips
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/V7PXQLNDE8.jpg)

やさしいプラグインを作るための
C++ Tips
UE Tokyo .dev #2
Metaseven


# Page. 2

![Page Image](https://bcdn.docswell.com/page/2JVL5QKG7Q.jpg)

自己紹介
Metaseven（めたせぶん）
𝕏: @suramaru517
ゲームプログラマー1年目
今年の My GOTY は Spider-Man2
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/5EGX6W9DJL.jpg)

本日の内容
1. 出品したプラグインの紹介
2. やさしい関数
3. やさしい変数
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JQ843WX7P.jpg)

1. 出品したプラグインの紹介
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/K742Q1K2J1.jpg)

Auto Footstep Tool
Auto Footstep Tool：コードプラグイン - UE マーケットプレイス
キャラクターの足音まわりを
簡単にセットアップできるプラグイン
無料！
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LJ1MPGXKEG.jpg)

やさしいところ
●
足が地面に着くフレームを検出して
ワンクリックで通知を追加できる
●
四足歩行などの人型以外にも対応
●
地面の種類による足音の鳴らし分けが
データの設定のみで可能
●
非同期ライントレース・ロードを
使用しているので低負荷
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJW32KNPJ2.jpg)

2. やさしい関数
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4EZVDZ36J3.jpg)

非同期ライントレース
●
UWorld::AsyncLineTraceByChannel
足の接地判定に使用
同期的に結果を得る必要性が低いものは、非同期にした方が低負荷でやさしい
参考：GitHub - seiko-dev/AsyncLineTraceSample
Blueprint で使いたい場合は、C++ でノードを作る必要アリ
（UBlueprintAsyncActionBase を使うのがオススメ）
コード例：AutoFootstepAnimNotify.cpp #L49
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/Y7651ZXLEV.jpg)

非同期ロード
●
FStreamableManager::RequestAsyncLoad
ソフト参照な足音エフェクトをロードするために使用
ロード時にヒッチが発生しなくてやさしい
Blueprint では AsyncLoadAsset ノードでおなじみ
コード例：AutoFootstepEﬀectContext.cpp #L32
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G75Y4WXM74.jpg)

3. やさしい変数
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/9J2GVQXRJR.jpg)

ボーンの検索候補が出てくる FName
●
UPROPERTY(meta = (AnimNotifyBoneName = true))
AnimNotify の FName の変数限定だが
上記を追加すると値を入力した時に
ボーンの検索候補が出てくるようになる
やさしい
FName ではなく
FBoneSocketTarget を使う方法もある
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/DEYV3W85EM.jpg)

値のみ編集可能な TMap
●
UPROPERTY(EditFixedSize, meta = (ReadOnlyKeys))
TMap の変数に上記を追加すると、値しか変更できなくなる
キーと要素数を固定したい場合に誤操作による変更が防げてやさしい
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJNMV9Q478.jpg)

条件によって編集不可・非表示になる変数
変数に以下を追加すると、EditCondition の値が false の時に編集不可になる
●
UPROPERTY(meta = (EditCondition = &quot;bAddNotify&quot;))
さらに以下も追加すると、編集不可ではなく非表示になる
●
UPROPERTY(meta = (EditConditionHides))
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YE9N62D4E3.jpg)

よりやさしい変数
UObject::PostEditChangeProperty
をオーバーライドすることで
いずれかの変数の値が変更された時の
処理を記述できる
例えば右図のように
TSet の変数の要素がキーとなるような
やさしい TMap の変数を自動的に作れる
コード例：AutoFootstepAnimationModiﬁer.cpp #L207
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GE8KZ53V7D.jpg)

まとめ
プログラマー以外にも易しくて優しいプラグイン制作を心掛けよう！
15


