はくとうのゲーム開発ライフ

UE4周りの技術メモ

ソースビルドエンジンのバージョンアップ環境構築をしてみた

 
はじめに
 

今回はUE4.25からUE4.26へカスタムエンジンを更新したくなった際に,
公式ドキュメントで推奨しているエンジンバージョンを更新する環境の構築をしてみました。
まだ環境構築をしただけで,実際更新(差分がある状態で)したわけではないのでご了承ください。 
※実際更新して何かあれば,追記しようと思います。
 
 
 
 
前提条件

  • Git環境が整っている
  • EpicGamesのUnrealEngineリポにアクセスできるようになっている
 
 
 
 
参考資料

 
 
 
 
EpicGamesのリポジトリからフォークする

 
   まずは以下のEpicGamesのGithubリンクを開く
    https://github.com/EpicGames
 
 
   その後,EpicGamesのUnrealEngineのリポジトリを開き,以下の画像にあるForkを選択してフォークすることができます。
 
 
   ※UnrealEngineのリポジトリはPrivateなため,アクセスにはEpicGamesの許可が必要です!
 
 
 
 
フォークしたリポジトリをクローンする

 
git clone コマンドにて,ローカルにリポジトリをもってくる。
SSH接続で最初はやっていたので参考資料を記載していますが(記事上部),
HTTPSでやったほうが若干早かったです。 ※個人差あると思います。

Git ReadOnly?みたいなものがあるらしいが,
Pushする必要があるので,おそらく使わないほうがよい(よくわかってない。Pushできるならこちらのほうがはやいっぽい)



 
UpStreamを作成する

 
次にupstreamを製作します。
upstreamとは,Fork/cloneしたリポを本家リポに追従するためによく使われるようです。(初めて知りました...)

▼こんな感じ
   GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する
 
つまり,今回はEpicGamesのUnrealEngineリポのupstreamを作成することで,
以後自分のForkしたリポジトリも更新できるようにする! というのが目的になります。
なお,upstreamの作り方は上記サイトだったり,公式ドキュメント通りの作業になります。


さてようやく本題ですが,  
UnrealEngineのリポジトリ(EpicGames)のUpStream作成コマンドです!
 
 
これだけでupstreamは作成できます。
git remote -v
上記コマンドを使用することでupstreamができたことも確認できます。

▼コマンド結果
upstream        https://github.com/EpicGames/UnrealEngine (fetch)
upstream        https://github.com/EpicGames/UnrealEngine (push)
 
これで問題なくupstreamの製作はできました。






EpicGamesのUnrealEngineリポの変更を適用する

 
前項までは,バージョンアップするための準備になります。
ここからが実際バージョンアップの過程になります。

作業としてはfetchとmergeをする形になります。 ※基本的にドキュメント通りにやっていきます。

1.更新するブランチに切り替えます。
git checkout release
今回はreleaseブランチ(この時は4.26.2)を更新したかったので,releaseブランチにしてます。 
基本的には安定しているバージョンを使用していくので,大体の場合これでいいかなと思います。
 

2.次にfetchとmerge行い,本家リポの変更をローカルのリポジトリにマージします。
git fetch upstream
 
git merge upstream/release
今回は環境構築なので,特に更新はありませんでした。 ※クローンしてきたものが最新だったため。


3.最後にPushして,サーバー側にも変更を適用します。
git push origin release


以上の作業で本家リポからローカルのリポを更新することができます。(できるはず!)

 
 
 


まとめ

 
以上で環境構築は終わりです。
一応これで,次回からエンジン更新したくなったら,
EpicGamesのUnrealEngineリポの変更を適用する」の項だけを実行すれば簡単に最新のバージョンがとれることになります。

この後配布用ビルドしてある程度最適化を図るわけですが,それは過去に記事書いてます。
 
この記事が一助になれば幸いです(*´ω`)
ご指摘等あれば,コメントいただければと思います!




 
 
 
 
 
 
 
 
 
 
 

シーケンサー入門してみた

 
 
はじめに

 
シーケンサー初心者のため、
右も左もわからないので
とりあえず公式ドキュメントのクイックスタートをやってみました。
やっていく中でつまずいた点などあったので,今後のため記録しておこうと思います。
 
 

参考資料


 
 
 
[S]キーの認識間違い

 
突然ですが,最初操作なれるまでって大変ですよね。
クイックスタートでキーフレームを設定するタイミングで「S」キー押すことがありまして,
 
「あっ。これでキーフレームは設定できるんだ!」
 
と思ったら,
「S」キーはTransformのキーフレームを設定するショートカットでした。
なので,Transformを設定できないTrackにやっても何も起きません。
 
※なおキーフレーム設定は以下の画像赤枠のところ,クリックで大体何とかなった↓
 
 
ショートカットありそうですがね。分かったら追記したいと思います。
 
 
デフォルトビューポートに戻す

 

元のビューポートどうやってもどすんだ?となったことがありましたので画像貼ります。

 
 

 
 
 

シーケンサー表示領域を増やす


 
クイックスタートで作成したShot01とShot02をMasterのレベルシーケンスに追加するんですが,
その際にShot2がシーケンサーのタイムラインから見切れていたため,
その対策方法をというか表示領域を増やす方法をメモします。
 
 
 
上記画像の右下に赤枠あるんですが,
ここの数値を大きくすることでタイムラインの表示領域を増やすことができます。
ここを大きい数設定したあと,スクロールバーを操作してもらうとわかるかと。
 

Perforceサーバー構築手順とエラー対応まとめ

はじめに

 
他人に自分のUE4プロジェクトを共有したかった事,
Perforceを使用してみたかった事,
Perforceがユーザー5人でワークスペースが20個までなら
無料で使えたこと。
 
以上のことからPerforceサーバーを立てて
UE4と連携しようと思いました。
 
サーバー構築まで色々苦労したので
しっかり記録しておこうと思います。
 
※自分が初心者ということもあり,
   超初級者にしか必要ない説明も入っていますが,ご了承ください。
 
 
参考資料

 
 
 
 
 
 
 
VPSの選定

 
■XServerの試用期間で構築できるか?
    XServerで参考資料などを参考に頑張ってみましたが,
    ダメでした。
    XServerでは管理者権限が使えないみたいなことが
    あったため断念しました。
 
■しっかりお金を払ってConoHaで
    選定にあまり時間を取られたくはなかったため,
    参考資料と同じConoHaを選択しました。
    ※XServerで疲れた(´;ω;`)
 
    個人的にはConoHaのほうが
    設定画面などの見やすさ,使いやすさもばっちりでした。
    SSH接続などの説明もわかりやすいです。
    XServerは初心者の自分には難しすぎました( ;∀;)
 
 
 
SSHクライアントソフトの準備

 
今回はSSHクライアントソフトが必要なので,
自分はTeraTermを選択しました。
 
インストール方法は,参考資料を参考にしてください
とても分かりやすいです。
 
それではいよいよ本題へ。
 
 
 
 
基本的な作業の流れ

 
@witchy_brightさんの
と同じような感じな流れで進ませていただきました。
 
Perforceサーバーの記事すごい少ないんですけど,
作業工程丸々書いてくれているのでなんとかなりました。(ありがとうございます!)
 
というわけで本記事では,
つまずいた点や参考資料になかった点と軽く説明を記載していきます。
 
 
 
 
VPSTeraTermの接続

 
VPS TeraTerm 接続でググったら
接続方法出てきました!
 
ありがとうございます(^O^)/
 
以下URL記載しておきます。
 
 
 
■未登録サーバー接続警告
    これは,TeraTermクライアント(つまリ自分)が知らない
    サーバーに接続時出てくる,
    「本当に目的のサーバー?悪意あるユーザーが立ち上げたサーバーじゃない?」
    という警告です。
    今回は目的のConoHaのVPSに接続するということで問題ないので,
   「Known hostsに追加」にチェックを入れて続行で問題ありません。
 
    ※Known hostsに追加することで登録したサーバーとして認識されるので
       以降警告が出てくることはありません。
 
 
 
 
.sshの存在確認

 
参考資料には,「mkdir .ssh
というように「.ssh]を作成するコマンドが記載されていましたが,
自分の場合は最初からありました。
 
そのフォルダがあるかどうかは,
「ls -a」で確認できます。
これで「.ssh」が存在していれば問題ありません。 
 
 
 
 
 
編集エディタについて

 
参考資料ではemacsを使用しているが,
自分はviを使用して今回は設定しました。
つまりemacsを設定するくだりはカットしました。
 
emacs ○○
 
としているところは編集しているところなので,
 
vi ○○とすれば同じような編集をすることが可能。
 
 
☆エディタ豆知識
     編集エディタでコンソールモード(「Esc」を押した状態)で
    「:/○○」と入力し,
    Enterキーを押すと同じ文字列を含むものを検索してくれる
 
 
 
.sshのConfigファイルについて

 
これはsshの接続の設定が記されたファイルです。
これを設定しておくことで
sshコマンドがサーバー名の指定で使用可能になります。
 
ちなみに,自分はこれで「Permission Denied」というエラーがでていました。
 
chmod 700  ./.ssh/config
 
これでアクセス権限与えてやったら治りました。
 
 
 
 
typemap開くとき Password invalidといわれる

 
P4PASSWDが未設定または無効だとそうなるらしい。
 
以下のようにして対処▼
p4 set P4PASSWD=ユーザーのパスワード
 
これをやったあと再度typemapを開くコマンドをたたくと
typemapを開くことができた。
 
 
 
 
typemapの日本語エラー

 
言語の設定をShift-jisにしていないため,
ドキュメントを翻訳したtypemapをコピペすると
エラーになるため,日本語が入らないように注意する必要があります。
 
 
 
 
サーバーの言語設定を日本語にする
 

 
HelixCoreのサーバー管理者ガイドとHelixCoreのユーザーガイドを参考に進めていく。
 
 
■ざっくりとした手順
  1. サーバーをUnicodeモードにする
  2. クライアント側でP4CHARSETを「shiftjis」に変更する
 
 
以下のAnswerhubも参考になるかもしれません。
 
 
 
 
 
最後に

 
自分もいろいろ苦労しながら進めてました。
何か間違っているところがあるかもしれませんが,参考になれば幸いです。
 
 
 
 

Perfoceお役立ち情報まとめ 操作編

はじめに

 
Perfoceを運用するにあたり,
一度使用した操作系を忘れないようにメモしておこうと思います。
※ほとんど文章になります。すみません。
 
 
■免責事項
    例によってまだまだ知識不足なところもありまして,情報の正確性は保証できませんのでご了承ください。
    さらに現在Perfoceは個人で使用しているだけなので,複数人開発となるとまた違ってくるかもしれませんが,
    そこはご容赦ください。
 
 
 
 
参考資料

 
▼Deleting Depots  (公式)
 
 
 
 
 

 
■注意
    ワークスペースで使用しているファイルを閉じておかないとエラーがでます。(強制実行以外)
 
 
■P4Vから削除する
  1. View > Workspacesを選択。
  2. Workspacesビューから削除したいWorkspaceを選択 > 右クリック > Delete
 
 
■コマンドで削除する方法
    ・p4 client -d ワークスペース名    
    ・p4 client -d -f ワークスペース名    <- 強制削除
 
 
 
 
 
ストリームの削除

 
 
■注意
    ストリームを参照しているクライアント(ワークスペース)は,
    先に削除しておかないとエラーがでます。
 
 
■P4Vから削除
    1.P4Vを起動して,View>Streams を選択する
    2.Streamsビューから消したいStreamを選択・右クリック
 
 
■コマンドで削除
     試してません。P4Vで削除するとコマンドを確認できます。
 
 
 
 
 
ファイルの削除方法

 
■注意
    このファイル削除はデポを削除するときなど,管理者としての削除作業時限定で使用してください。
    通常のバージョン管理でのファイル削除は,別なやり方がしっかりあります。
    
 
■概要
    デポジットを削除するときなどは,すべてのファイルを削除しておかなくてはいけない。
    さらに,チェックリストやほかのデポジットからのコピー参照なども切断しなくてはならない。
        ※この辺あまり理解できていないので,間違っていたら教えていただけると助かります。
    以上のような場面で使用するのが今回の削除方法になります。
 
 
■ p4vでファイルの削除
  1. Tools > Administrationを選択する
  2. Healix Admin画面が起動するのでDepotsタブを選択する
  3. 削除したいファイル又はフォルダを選択
  4. 右クリックからobliterateを選択する
 
 
■ ファイルの削除 コマンド
    p4    obliterate    削除したいファイルまでのパス(ファイル名は含まない)
 
    ※obliterate コマンドは,サーバーのメタデータとファイルをディスクから削除しますが,
       クライアントワークスペースには影響を及ぼしません
 
 
 
 
 

 
■事前準備
    デポジット(以下デポ)を削除する際には,
    しっかりとファイルを削除したり,チェックリストで保留(pending)になっているやつを元に戻す必要があります。
    公式ドキュメントがわかりやすいので参照してください。[参考資料:Deleting Depots]
 
 
■ p4vでデポの削除 
  1. Tools > Administrationを選択する
  2. Healix Admin画面が起動するのでDepotsタブを選択する
  3. 削除したいデポを選択
  4. 右クリックから「Delete Depot ~」を選択する
 
 
■ デポの削除 コマンド
    p4 depot -d [-f] 削除したいデポ名
        
    ※-f は強制実行時
    
 
 
 
 
新規ストリームの追加

  1. Tools > Administrationを選択し,管理者画面を開く
     
  2. File > New > Depotを選択し,名前を指定しディポタイプをストリームに。OKを押します。
     
  3. Depotsビューから新規ストリームディポが作成されているのを確認します。
     
  4. p4vの標準画面に戻り,
    そっちのほうのFile > New > Streamsが選択できるようになっているはずなので選択します。
     
  5. デフォルトでストリームのタイプがmainlineになっているのを確認してください。
     
  6. OKを押すと作成したmainlineストリームが空なので
    ファイルと追加する画面に遷移するはずです。
    そこでUE4プロジェクトを追加し確定してください。
 
サーバーへのアップロードが終了した後,
ストリームが無事追加されていると思います。
 
 
 
 
 
 
最後に

 
まだまだ操作はたくさんありますので,
実際使っていく中でまた更新していきたいと思います。
 
 
 

Perfoce導入してみた

はじめに
 

 
Perfoceを導入する際に,情報が少なくて困ったので一番自分がやりやすいと思った内容を紹介したいと思います。
なお今回は個人だけの使用なので,複数人での使用では参考にならないかもしれません。
 
紹介といっても,数サイトPerfoceについての記事がありましたが,
一番公式動画がわかりやすかったで,それの紹介になります。
 
 
 
 
参考資料

 
▼Window10で環境を整える際はこのサイト
 
 
 
 
最後に

 
Githubを使ってましたが,個人的にはPerfoceのほうがいいですね!
Blueprintの差分はみれるし,サーバーにアップするのも楽ですし。
動画見ればそんなに時間かからないので,ぜひ試してみてください。
 
 

RootMotionを適用したAnimationを使用してみる

はじめに
 

 
キャラクターの走り終わりにスライドするアニメーションを実装した際に
RootMotionの勉強と設定をしたのでメモ。
 
 
■免責事項
    あくまで自分が調べてみての答えであり,
    必ずしも正当性を保証するものではございませんので,ご了承ください。
 
    また以下の項目についてある程度知識がある前提でお話をさせていただきます。
 
     ・AnimationBlueprint
     ・AnimationSequence
 
 
開発環境
 

 
 
 
 
 
参考資料
 

 
▼公式のドキュメント
 
▼ルートモーションについて  miyahuji111 
 
 
 
 
ルートモーションについて
 

 
本題に入る前に今回はルートモーションを使用しますので,少しだけお話しさせていただきます。
 
■ルートモーションとは?
    アニメーションに含まれている移動値を抽出してActorに適用することです。
 
    ▼詳しく!
        UE4でいうとAnimationSequenceに対応するSkeletonにRootボーンが存在します。
        そのRootにある移動値や回転情報などを抽出し,Actorのカプセル(Control)に適用することです。
         
参考資料が非常に参考になりますので,ご一読ください。
    
 
 
 
RootMotionの適用方法

 
 
 
 
 
 
1.実行するAnimationSequenceのRootMotion設定を以下のように行います。
   ※各プロパティの詳細は参考資料の公式ドキュメントをご覧ください
   
 
 
 
2.AnimationBlueprintのAnimationPreviwEditorでRootMotionModeを以下のように設定します。
  ※モードの詳細は参考資料の公式ドキュメントをご覧ください。
 
 
 
 
 
 
 
 
最後に
 

 
 
今回はRootMotionについて説明しました。
RootMotionが使えると,
楽に表現できることが増えるので習得しておきたいところ!
というのが実感できました。
 
 
 

【UE4】PlaySlotAnimationAsDynamicMontageが気になったので少し調べてみた





はじめに


抜刀・納刀状態を自作ゲームに入れる際に, 微妙にAnimationがピクッとなっていたのが気になった。 どうにかならんかとBlendOut引数の時間をいじったら治りましたが, 意味が分からなかったので, BlendIn・BlendOutのパラメータについて調べてみました。

免責事項

あくまで自分なりの答えであり,正当性は保証できませんのでご了承ください。





調査結果


BlendIn

現在再生中のAnimationにPlaySlotAnimationAsDynamicMontageによって,
再生使用しているAnimationをブレンドする時間。

BlendOut

自分自身,つまりPlaySlotAnimationAsDynamicMontageによって再生したAnimation自身を
BlendOutする時間。

※他のAnimation(Montage)によって,上書きされたらそっちのBlendInが適用される。





最後に


ソースコードのコメントを見て, 答えがわかりました。 Blueprintの入力ピンかざした時のTips?にも同じことが書いてあったら 便利だなと思いました。