ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE5】ABP_Mannyを使ったAIがアニメーションしなかったので解決法を書いてみる

目次

 

はじめに

UE5のTPSサンプルからAIを作ろうとしたときになぜかAIは移動するもののアニメーションしない問題が発生。解決方法がわかったので記事にしました。



▼現象。AIがアニメーションしない!!

 

解説

問題はABP_Mannyさんにありました。

 

イベントグラフのこちら、、ShouldMoveのフラグにプレイヤーの入力を使用している箇所があります。



これを

 

こうして

 

こうじゃ

 

 

ウーゴ君になったので完成です。

 

AIのゼロから解説は需要があったら書きます。

需要があったらここのコメントやらツイッターでお願いします!!

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【UE4・UE5】〈Tips〉自身がプレイヤーキャラかどうかで情報を分離する方法

目次

 

はじめに

通常同じ親を持つキャラクターを作成した場合、親のアニメーションブループリントなどにデバッグ用のログを仕込むと制御元に限らず、すべてのログが出てしまいます。

今回は自身がプレイヤーキャラかどうか判定することで、AIのみのログorプレイヤーのみのログを取得してみたいと思います。

 

<例>

▼ アニメーションブループリントで速度を表示

▼ AIとキャラクターの情報が同時に出力されている

▼AIとプレイヤーそれぞれに情報を分離する

 

解説

今回はTPSサンプルのアニメーションブループリントを参考にします。

このアニメーションブループリントを所有する親がプレイヤーかどうかでチェックを行うことで、AIキャラに所有されている場合のみのログを出力します。

 

AI制御キャラのみの情報を表示できた

 

※GetPlayerPawnを使用するとプレイヤーとの間でハード参照ができるので、極力デバッグ以外での利用は控えましょう。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【UE5】〈Tips〉IKリグとIKリターゲッターの使い方。~UnityちゃんをUE5のキャラアニメーションで動かす~

目次

 

はじめに

注意

UE5.0.2の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

 

UE5から導入されたIKリターゲット(異なるスケルトンでアニメーションアセットを使用できるようにする)についての解説です。

 

公式サイトを参考に手順をより詳しく説明いたします。

誤った認識がある場合もございますので、その場合はコメントで指摘をお願いいたします。

docs.unrealengine.com

解説

⓪事前準備

1.プロジェクトの作成(今回はTPSテンプレート)

2.ユニティーちゃんをゲット

公式ホームページからダウンロード

https://unity-chan.com/download/index.php


Unityプロジェクトを作成してパッケージをインポート

3.ユニティーちゃんをUE5にインポート

UE5で作成したプロジェクトのContentファイルに

Unityちゃんのボイス、モデル、アニメーションをインポートします。

やはりUEはPBRシェーダーなのでお人形さんみたいな見た目になりますね

Unlitでエミッシブにするとセルルック風になってアニメ調になりますね。

今回はこれで行きましょう。

 

4.BPとABPの作成

いつものTPSロジックを書きます。

準備完了です!!

①IKリグの作成

コンテンツブラウザで右クリックし、IKリグをそれぞれ作成します。

 

リタゲ先のUnityChanを選択します。

名前はUnityChanIKRigとしましょう。

 

②リターゲティングルートの指定

開くとこのようになっております。

まずリターゲティングのルートを指定します。

Pelvis(骨盤)を指定するのが一般的なのでUnityちゃんではHipsに相当します。

 

階層からHipsを右クリックしてリターゲティングルートの設定を押します。

設定されるとリターゲットルートという文字が表示されます。

 

誤って別の骨に設定してしまっても再度リターゲティングルートの設定を行うと再設定されます。

 

③チェーンの作成

右下のIKリターゲティングに部位ごとのチェーンを作成します。

このチェーンの内容を一致させることで別々のスケルトン同士の骨の関係性が定義されリタゲを行うことができます。

 

チェーンの項目は画像の通りです。

公式サイト(https://docs.unrealengine.com/5.0/ja/ik-rig-animation-retargeting-in-unreal-engine/)より引用

 

これと同じ内容をUnityちゃんで行います。

階層からSpineを選んで選択ボーンからリターゲ~ を押します。

チェーン名を変更してOKを押しましょう。

このように項目が追加されました。

 

これを背骨・右腕・左腕・首・頭・右足・左足 と作成します。

作成できたら保存しましょう。

 

※UE5デフォルトのキャラクターにはすでにIKリグが用意されています。

デフォルトのキャラ以外のスケルトンとリタゲを行う場合はそのキャラクターのIKリグを作成してください。

 

④IKリターゲッターの作成

いよいよリタゲの時間です。

コンテンツからIKリターゲッタを選択します。

 

コピー元(アニメーションベースキャラ)にはすでに作成されているIK_Mannequinを選択します。

マネキンとUnityちゃんのリタゲを行うので名前をMannequin_UnityChan_IKRetargeterなどの分かりやすい名前にしておきます。

 

⑤IKリターゲッターの割り当て

開いたらTargetIKRigAssetにリタゲ先であるUnityちゃんIKリグを選択します。

するとキャラの隣にUnityちゃんが現れます。

 

ソースチェーンを一致させます。

もし対応する項目がなければIKリグを編集しましょう。

 

⑥ポーズの修正

マネキンがAポーズなのに対して、UnityちゃんはTポーズをしています。この分のズレはアニメーションに影響を及ぼすのでAポーズに変更します。

 

ポーズの新規作成をおして名前をA_Poseにします。

リターゲティングポーズがA_Poseになっているのを確認して、ポーズの編集を押します。

するとチェーンで設定した骨情報が表示されて操作できるようになります。

骨を操作してマネキンと同じポーズに編集しましょう。

TargetActorPreviewからunityちゃんのスケールや位置を調整できます。

編集しやすい位置に変更してポーズを一致させましょう。

だいたい同じようになったらポーズの編集を再度押して保存しましょう。

 

⑦アニメーションの適応と書き出し

アセットブラウザからオリジナルのアニメーションを再生できます。

選択して再生してみましょう。

もしズレがある場合は再度ポーズを編集しましょう。

納得できるアニメーションができたら書き出しを行います。

選択したアニメーションをエクスポートからUnityちゃんのアニメーションを出力します。

 

最後に適応して
完成



この記事はユニティちゃんライセンス条項の元に提供されています

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【UE4・UE5】〈Tips〉開いているレベル(マップ)がコンテンツフォルダのどこにあるかの見つけ方

目次

 

はじめに

 

現在開いているレベルがコンテンツフォルダのどこにあるのか探すのが大変だったので見つけ方を記事にします。

 

解説

①レベルタブを出す

↓これのことです。



画面にない場合はウィンドウからレベルタブを有効化します。

 

②レベルの検索

パーシスタントレベルを右クリックしてコンテンツブラウザを検索という項目を選択します。

 

するとコンテンツブラウザから検索したレベルが選択されます。

 

 

やったね!

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【UE4・UE5】〈Tips〉5分でできる! 移動中の視点の揺れを実装して、ゲームをリッチに見せよう。

目次

 

はじめに

 

FPSテンプレートを使って移動中の視点の揺れを実装してみます。

簡単にクオリティーを上げることができるのでぜひ試してみてください。

※やりすぎると気持ち悪くなるので注意しましょう。



 

解説

①BP_FirstPersonCharacterの編集

BP_FirstPersonCharacterを開いてAddMoveInputの先に画像のように接続します。

 

②MatineeCameraShakeの作成と編集

コンテンツ右クリックからブループリントクラス、MatineeCameraShakeを選択し名前をBP_HeadBobにします。

 

作成したものを開き、カメラの設定を編集します。


設定したらキャラクターブループリントに戻り、

Shakeに作成したものを適応します。

 

完成です!!

歩いてみて視点が揺れるのを確認してください。

 

Scaleの値で揺れ幅を簡単に調整できます。

移動速度や状態異常に応じて変更してみるのも面白いかもしれませんね!

 

追記

ご指摘があり前後左右に対応したものを用意しました。ありがとうございます。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【UE4・UE5】〈Tips〉シーケンサーやカーブのキーに一律で値を変更する方法

目次

 

はじめに

シーケンサーで作成した移動キーアニメーションに一律で値を編集するやり方が分からなかったのでまとめていおきます。

 

解説

①操作したいカーブエディタを開く

シーケンサーの場合はアイコンからカーブエディタに移動

 

②変更対象のキーを選択する。

今回は位置のXをドラッグして選択しました。

 

③編集ツールを切り替える

通常の選択ツールでも問題ありませんが選択範囲を可視化したいので、

上のメニューの選択したキーのトランスレーション~を選びます。

すると選択範囲が囲まれ、ツールオプションが表示されます。

 

④軸をロックする

今回は全体的に上にずらしたいのでトランスフォームツールの軸をYのみにします。

⑤値を追加する

水平グリッドの間隔からカスタムに移動量を入力して、

値スナップを有効にします。

 

⑥移動する

カーブ上でドラッグすると指定した移動量にスナップします。

 

変更前

変更後

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

【作業効率化】Chrome使い必見!個人的おすすめ拡張機能まとめ

目次

 

はじめに

皆さんはどんなブラウザを利用していますか?

SafariやEdgeなど多くのブラウザが存在しますが、今回はChrome使いになりたくなる拡張機能(アドオン)の紹介をします。

chrome.google.com

注意

拡張機能の中には過去にユーザーデータを収集する悪質なものもあります。

あくまで導入は自己責任でお願いいたします。

紹介

Google翻訳

みんな大好きgoogle翻訳です。

chrome.google.com

範囲指定してクリックするだけで翻訳してくれます。

 

また、ページ翻訳は特に使いやすく右上のアイコンからこのページを翻訳を押すと、精度はまあまあですがページ丸ごと翻訳できます。

 

フォーラムやYoutubeのコメント欄を読むときに非常に便利です。

 

②SearchPreview

検索時にページの画像が表示される拡張機能です。

画像まみれのアフィリエイト記事を避けたり、悪質なサイトに誘導されるリスクが減ります。

chrome.google.com

 

③Keepa

アマゾンの価格トラッカーです。

導入するだけでアマゾンの商品を閲覧すると、過去の値段を表示できセール前に悪質な値上げを行っていないか確認できます。

chrome.google.com

Youtube Auto HD +FPS

Youtubeの画質を固定できます。

毎回1080Pに設定するのが億劫な人には最適です。

chrome.google.com