Unreal Engine 初心者の技術メモ

趣味でUEやってる初心者が日頃学習したり試したこととかを書いてます。最近はVRのロボゲームを作ってます。

イベント未経験の個人開発者が自作VRゲームをイベント展示してみた話

0.目次

1.はじめに

ぷぷりげすという名前で活動しておりまして、日頃、兼業(本業はゲームとかITとは関係ない職種)でVRのロボットゲームを個人開発してます。

https://twitter.com/pupurigess

少し前に開発中の自作VRゲームのデモを展示する機会を頂き無事展示を終えることが出来ました。

展示の前に、他の方の事例を調べたのですが、VRゲームの展示事例を公開されている方はかなり少なく、それならせっかくなので、私の振り返りも兼ねて今回の自分の経験を公開してみます。

因みに私のこれまでイベント経験は、出展の手伝いどころか何らかのイベントに一般参加したことすら無い状態からの参加でした。まぁでも何とかなりました。

あくまで私の場合はこうでしたというだけで、こうしないといけないというものではないという事ご了承ください。

 

 2.参加したイベント

今回、こちらのふたつのイベントに出展させて頂きました。

選定した理由として、参加を迷っていたときにお声かけ頂けたといのもありますが、東京と大阪に出れば効率的に広い範囲にリーチできるかもと考えたのもあります。

ゲームパビリオンjp...2023年3月大阪(2人で展示)

gamepavilion.jp

UNREAL FEST 2023 TOKYO...2023年6月東京(1人で展示)

unrealengine.jp

 

 3.参加した目的

参加した目的は、主に以下の内容です

プレイFBの収集

開発ゲームがある程度遊べる状態になってきたので、一度、他の方に遊んでもらってどんな反応されるか、バグが無いか等を確認したかった

他の開発者さんとの関係構築

日頃、ぼっち開発かつ業界人でも無いので、他の開発者さんとのツテがほぼ無く、何かいい感じのコネが出来ないかなという浅はかな期待

開発ゲームの知名度アップ

イベントには、ゲーマー,開発者さんの他にメディアさんもいらっしゃるので、もしかしたら何らかの媒体に掲載頂けるかも

イベント出展というのをやってみたかった

何だかんだ、これが一番大きかった気がします。イベントに自分のゲームを出展するという行為に少し憧れがあったので、他の理由は割と後付けで"とりあえずやってみよー"で軽率に申し込みした感があります。

 

4.展示したもの

上記のイベントには個人開発してるこちらのタイトルのデモ版の試遊展示しました。

 

5.事前準備

まず他の方の事例を調べて必要そうなものをリストアップしました。調べた際、こちらの方がかなり詳細を記載下さっていて滅茶苦茶参考になりました。ありがとうございます。

note.com

上記、参考にしながら用意したり、用意したけど使わなかったり、用意しとけば良かったなーって思ったものが以下になります。

展示デモゲーム本体(必須度5:必須)

確か開催2ヶ月くらい前から準備を始めた記憶です。この時点ではゲームはまだベースの部分が出来ていただけなので、展示用に①チュートリアルを追加②チュートリアル後、短い戦闘パートの構成で通しでプレイ10分程度の想定で試遊版の開発を行いました。

展示用PC(必須度5:必須)

ここが一番迷ったところかもです。イベントでのゲーム展示はゲーム用のノートPCにて展示することが多いですが、VRゲームの場合、求められるPCのスペックが高くノートPCだと購入に20万前後の予算が必要になります。少ない機会の為に購入するにはかなり厳しい金額です。

レンタルも調べましたが1週間程度で2万弱程度と、1日展示の為+手配・返却の手間という部分も加味した費用対効果で断念しました。

1回目(ゲームパビリオンjp)は手伝って頂いた方が持っていたハイスペックノートPCを使用させて頂き何とかなりました。

2回目(UNREAL FEST)はメルカリで中古ゲーミングノートを購入(gtx1070搭載機:約5万)して試してみましたが、稼働FPSが想定をかなり下回った為、結局、開発機(デスクトップ)を持参することにしました。幸い開発機は小型(Mini-ITX)に組んでいたので何とか持ち運びできるサイズだったので、ちょうどいい大きさの工具用バッグを購入し、その中に100円ショップで購入したキャンプ用のウレタンマットを敷いてその中に開発機を収納して持ち運びしました。

現地に発送すればそれで済むんですが、スケジュールが結構ギリギリだったので開発日数を稼ぐ為に当日持ち込みでの対応を選択しました(実際、出発当日まで開発してました。。。)

VRHMD+α(必須度5:必須)

展示には、所有していたMetaQuest2を使用しました。

また展示の為、以下アクセサリも購入しました。無くても展示は可能ですが、個人的には買っといて良かったです。

メガネスペーサー(必須度4:必要)

プレイヤーさんはメガネの方も結構多いです。純正もスペーサーあるんですが、奥さんがメガネかけてるので試してもらったところ、「ガツガツ当たってきつい。。。」とのことでした。(口コミでもそんな評が多かった気がします)

その為、メガネでも全然大丈夫だった!という口コミが多かったものを購入しました。

結構、プレイの快適性にも影響しますし、こちらだけでも用意しといた方が良いかもです。後、購入したものは鼻の部分にカバーがあり、純正にありがちな鼻部分からの光の入り込みがかなり少なくなり、体験品質の向上にも繋がった気がします。

実際の展示でも、メガネユーザーさんもスムーズに試遊頂けていた印象です。

https://www.amazon.co.jp/gp/product/B08ZMYF69S/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&th=1

エリートストラップ(必須度3:あった方が良い)

定番品でフィット感が良く、またピントを試遊者さんご自身で簡単に調節頂ける様にできたのでHMD装着時のオペレーションもスムーズでした

Amazon.co.jp: KIWI design ヘッドストラップアクセサリーは、Meta/Oculus Quest 2に対応し、より快適なVR体験を提供するエリートストラップの代替品となります : 家電&カメラ

液晶モニタ、タブレット端末(必須度5:必須)

プレイ中の様子を投影するorデモ映像を流す為に、液晶モニタ(22インチのテレビ)とタブレット端末(13インチ)を持参しました。22インチ程度なら、大き目のキャリーバッグにギリギリ収まるサイズでした。

液晶モニタはタブレット端末などで代替できるかもですが、見栄えはでかい液晶モニタの方が良いと思います。実際、液晶モニタの方が通る人の目を引いていた印象です。

後、モニタ裏面に後付けのスタンドを取り付けて使用しました。モニターの設置・撤収がすごく楽だったので、個人的には結構お勧めです。

ポスター(A4)+スタンド(必須度4:必要)

サークル表示用の小さめのポスタースタンドを用意しました。掲示物はチラシがあればそれで良かったんですが、チラシまで手が回らなかったので、適当なスクショ画像にタイトルを載せた画像を当日、コンビニ印刷して持ち込みしました。

後、買ったやつはネジで組み立てるタイプだったので組み立てが若干面倒だったので、ちょっと値段が上がるけどワンタッチで立てれるものが良かったかも

https://www.amazon.co.jp/gp/product/B08JSQHB11/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1

大きいポスターもやりたかったんですが、予算の都合で見送りました。

名刺(必須度4:必要)

単純に値段安い(普通紙で良ければ100枚500円くらい)って理由で「ラクスル」さんにお願いしました。

頼めば無料で紙質サンプルもらえるので時間に余裕があるなら頼んでみると仕上がりがイメージがしやすいかもです。サンプル配布は他の会社さんでも同じ様にやってると思います。

後、紙質が結構選べるんですが「高級紙」選んでも100枚2000円弱くらいだったので、「高級紙」でお願いしました。結構それっぽいのが来てテンションがちょっと上がりました。

配布用ポストカード(必須度3:あった方が良い)

ブースに足を運んで頂いた方向けに名刺と合わせて作成しました。100部2000円弱くらい

チラシにしなかったのは、単純にチラシをデザインする余力が無かったのもありますが、自分の勝手なイメージとして、チラシは帰ったら捨ててしまうけどポストカードなら手元に残しておくかもというイメージがあったというのもあります(検証できない話ですが。。。)

後、自分がもらう立場で想像した時に、コンセプトイメージが印刷されたポストカードの方がもらって嬉しい気がするので、今後もポストカード配布は続ける気がします。

ポストカード裏面にロボットモデルが表示されるのARマーカーを付けたかったんですが間に合わなかったです。

ホワイトボード+イーゼル(必須度2:無くても何とかなる)

何か臨時で表示(休憩とか展示)するとき用とかに、100円ショップで買いました。無くてもなんとかなったけど、アンケートフォームのQRコード掲示などでまぁまぁ使いました。

テーブルクロス+クロス止め(必須度4:必要)

あるかないかでかなり見栄えが変わるので、通販で無地の安いやつを買いました。ほんとはイベントブースぽく印刷したクロスを使ってみたかったんですが、予算の都合で見送りました。

https://www.amazon.co.jp/gp/product/B09896XKMX/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&th=1

アンケートフォーム(必須度3:あった方が良い)

プレイしてくれた方向けにアンケートフォーム(グーグルフォーム)を用意しました。プレイ全体の満足度・グラフィック、BGMの印象・VR酔いの有無・操作性・その他要望などの設問を設けました。

ポストカード裏面にフォームのurlのQRコードを印刷して体験者に配布するつもりでいましたが、ポストカード手配に間に合わず、ホワイトボードにQRコード掲示or知ってる人には個別に依頼するなどになっちゃいました。(単純に準備不足...)

ノイズキャンセリングヘッドホン(必須度1:いらなかった)

安めのノイキャンヘッドホン(5000円くらい?)も買ったんですが、メタクエストのスピーカーが思いのほか優秀(HMDスピーカーの音量大きめにしとけば普通に聞こえるし音の定位感も良い)だったのと、ヘッドホンにすると展示のオペレーションが増えてしまうこともあり、結局使いませんでした。

3Dプリンタ出力フィギュア

ゲームパビリオンjpの時にお手伝い頂いた方が3Dプリンタを所有していて、ご厚意で私のゲームに登場するロボットやグレイマンを立体出力頂きました。滅茶苦茶嬉しかったです。

(あった方が良かった)手押しのカウンタ

体験者の数を数えるつもりで正の字書いていたんですが、話しかけられたりしてると、途中で訳わかんなくなって数えれませんでした。次行くときがあれば手押しのカウンタを100円ショップとかで買うつもりです。

6.展示当日

展示当日、上記の準備物を当日朝に持ち込んで、大体1時間程度での設営でした。いずれのイベントも設営スペースが広く快適に設営できました(ありがとうございました)。因みにゲームパビリオンjpでは開場約2時間前に到着できましたが、UNREAL FESTは台風の荒天により、まさかの交通機関が一時ストップしてしまい、昼過ぎになって何とかたどり着くアクシデントが生じたりしましたが、何とか展示は出来ました。。。

ありがたいことに稼働開始してからは、ほぼ途切れずに試遊頂いていました。大体1人10分程度を想定したデモでしたが、実際、展示してみると着席から離席まで平均で15分~20分程度だった気がします。スムーズにいけばという想定だと思ったより時間が伸びてしまうかもです。ゲームパビリオンjpでは約30人、UNREAL FESTでは約20人に試遊頂けた感じです。

その他、展示に際し感じたこと以下に記載します。

展示スペース

展示スペースはいずれも一般的な会議机(W1,800×D450×H700)を一つ割り当ててもらいました。稼働1台に対し幅180cmだと結構広い感じもしますが、私の場合、試遊者の側に立って操作をアシストする場面が度々あったので、結構丁度良かったです。

イベントによってはこの机の半分が1申し込み単位(ゲームパビリオンjpはその形式だったので2口申し込んでました)だったりしますが、幅90cmでのVR展示はギリギリすぎて結構厳しいなと感じました。

ゲームの内容によると思いますが、私のタイトルについては今後も幅180cmは確保する必要があるなーと思ってます。

展示時のオペレーション

試遊希望者には、特に詳細の説明せずにHMDを被って頂き、試遊者ご自身でピント調整⇒ゲーム開始。ゲーム開始後は必要に応じてこちらが補助するというスタイルで展示しました。

詳細、後述しますが、1回目(ゲームパビリオンjp)では結構、補助が必要な場面が生じたものの、2回目は対策したこともあり割とスムーズにプレイ頂きました。

リセット機能をつけ忘れていて、いちいちタイトルを起動しなおしてました。めんどくさかったです。単純な再ロードで良いのでキーボードでのリセット機能はあった方が良いです。

後、上の写真見切れてしまっていますが、試遊者のイスはブース側でなく通路側に向けてました。試遊者はモニタを見る必要が無い為、試遊者を通路側に向けた方が、近くを通る方にもプレイの様子がよく見えるのと、展示はHMDをPCに有線接続していましたが、配線もこの方が楽でした。

展示人数

展示したときの人数ですが、ゲームパビリオンjpでは私とお手伝いしてくれた方の2人、UNREAL FESTでは1人で展示しました。両イベントとも稼働1台での展示です。特に1回目の展示のときは1台に対し2人いるにも関わらず、慣れてないのもあって結構小忙しかったです。プレイ中は結構補助が必要だったり、ちょっと話しかけて頂いたりなどなど。お手伝いの方が的確に動いてくださって滅茶苦茶区助けられました。

2回目のUNREAL FESTでは、手伝ってくれる友達がいなかったのもありますが、1人で展示できるかの試行も兼ねて、1人展示を行いました。1回目の展示である程度要領が分かっていたのと、プレイ中の補助が少なくて済むよう、ゲームに改良を加えたおかげで1人でも結構スムーズに展示できました。ただどうしても感想をお伺いする時間があまりとれず、感想を聞いている途中で、次の方に話しかけられ無理やり会話を区切らせて頂く場面が度々生じてしまうのが、申し訳なかったです。(話しかけて頂いた方すいません。。。)1人でもなんとかなるっちゃなるけど、やっぱり出来たら2人欲しいなーとは思いました。展示を手伝ってくれる友達を作ろうと思います。

ゲーム内の誘導

一般的なコントローラを使うゲームなら、最悪、操作説明を紙面で掲示するという手段がありますが、VRゲームだと視界がHMDで塞がれるので、そういった説明がかなりやりづらいです。ゲーム内にチュートリアルは設けていたんですが、誘導が不足していた為、特に1回目(ゲームパビリオンjp)の展示では、試遊者がプレイ中に戸惑ってしまい、私が横からコントローラーに手を添えて補足説明をする場面が度々生じました。その為、2回目での展示の際には、多く発生した事象に対し以下対策を行いました。

2回目展示時の改善点
  • 自動操作中の表示

冒頭はロボットが自動で動き、その間は操作を受け付けないが、試遊者が操作しようと何回も操作を試行してしまう

⇒自動操作中は「AUTO PILOT」とプレイヤーの前に表示。また操作受付開始した時にゲーム内レバーが白く点滅する様に修正

  • ロボットの操作説明

ロボットの操作はゲーム内のレバー2つで行うが、チュートリアル時の操作説明が声のみで分かりづらい

⇒ゲーム内レバーについて、何となくどんな風に動きそうか分かるようにデザインを修正。またレバーに視線を向けた際に操作説明の補助UIが浮き出る様に修正

  • ロボット旋回時の操作性

ロボット旋回はゲーム内レバーを傾けることで行うが、レバー感度がピーキー過ぎる、また自分がどちらに旋回してるかわからなくなる時がある。

⇒レバーの傾き入力に±10°程度の遊びを設定。またプレイヤー正面のコンパスUIが旋回方向に応じて表示変わる様、修正

後、今回はそこまで手が回らなかったですが、VRのハンドコントローラのモデルをゲーム内に映し出し見本で動かしてみるなどやってみると効果的かなと思います。

 

上記修正のおかげか、2回目展示の際には私が操作補助する場面はかなり減りました。イベントの性質上、UNREAL FESTはゲーム慣れしてる方が多く見えた印象ですが、それを差し引いても有意な差があったと思います。

これで思ったのは、VRタイトルの操作関係はかなり丁寧につくる必要があるなーということでした。よくわからないことをやるのって結構なストレスがかかりますし、ストレスが大きくなってしまうと最悪プレイ離脱にもつながりかねないです。

何の説明もなしにゲームを始め、見ただけで何となく理解してもらうくらいを目指すくらいがちょうどいいかもなーと感じました。

実際、上記以外は細かい部分を除くとほぼ修正してませんでしたが、2回目の展示の方が、試遊者の満足度が良かった印象です。

試遊者について

ゲームパビリオンjpで展示する際、展示初心者向けの講座を聞かせて頂いたのですが、その中で印象に残った言葉として「試遊される方々は我々が思っている以上にVRに慣れてないです」というお話でした。

実際、試遊にはこれまでVRをやったことがないという方も結構いらっしゃってくれました。初めてVR体験は人によってはかなりインパクトがあります。場合によってはプレイ中に驚いて転倒してしまうこともあり得るかもです。幸い私の展示ではそういった事はありませんでしたが、そういったことが起こりうるということは頭に留めておく必要があるかもなーと思いました。

(特にホラータイトルだとそういった可能性が出てくるので、椅子を養生テープで固定しておくぐらいしてもいいかもです)

後、慣れてる方なら説明無しでもなんとなくでできる事が、不慣れな方だと当たり前ですが説明があってもパッと出来ないです(展示初期のころ、「左に見えてるレバーを握って下さい」と説明して、「え…握るって...どうやって…?」と困惑されてしまい、ハッとしました)

その為、上記と重複しますが、不慣れな方でも把握しやすい様、丁寧な表示・説明を意識しないとだなと思いました。ここはどんなゲームでもある話ですが、特にVRはみんな模索しながらやってる印象で、私もこれから悩み続けることになると思います...。

7.展示を終えての振り返り

展示を終えて当初の目的について振り返りです。

プレイFBの収集:達成度◎

他人が遊んでる姿を直に見れたのはかなり良かったです。自分が慣れ切ってしまっているけど、試遊者さんはかなり戸惑ってるポイントがいくつも見つかり、課題がかなり明確になりました。

こういった部分は、多分、アンケートでも洗い出せなかったと思いますし、直接プレイしてるところを見て初めて気づける部分だと思います。

後、展示をとおしてゲームのバグが10以上見つかりました...展示中に修正してビルドしなおすのもよくある光景だそうです。

個人的には、将来、販売も見据えてるタイトルであれば、せめて1回でも良いからこういう試遊頂く場に出てみた方がいいなーと思いました。これだけでも参加した意義がありました。

他の開発者さんとの関係構築:達成度〇

どちらのイベントでも終了後に懇親会があり、それぞれ参加しました。ちゃんと数えてないですが、2つのイベントで名刺を4,50枚くらい配ることができました。

後、ありがたいことにTwitterもくもく会で絡んだことある方がご挨拶に来ていただいたり、食事をご一緒させてもらうこともでき、今後、何かあれば相談も出来そうな繋がりができました。

ただ、若干ビビッてしまい自分からガンガンいく感じでは無かったので、後になってから、Twitterで一方的にフォローしてるだけのあの人に話に行ってみたら良かったなーって方が数人いました。次回は事前に「見つけ出して挨拶しに行くリスト」を作っておこうと思います。

参加している事さえ知ってれば運営側の誰かを捕まえて「この方に会いたいです!」ってやれば何とかなる気がします。話に行って邪険にされることはまずないので次はもう少しガンガン行こうと思います。

後、別にこういう場でなくとも定期的にオンラインで集まってるコミュニティなんかもあります。私は月1回こちらのもくもく会に参加させて頂いてまして、今回、こちらの会のつながりでご挨拶させて頂いた方もかなり多かったです。初心者でも全然ウェルカムな会なので、相談相手が欲しいならこういった場を活用されるのも良いと思います。

ue-toyama.connpass.com

開発ゲームの知名度アップ:達成度△

これは単純に準備不足でした。

弊ゲーム、まだsteamのストア出店もしくは紹介する為のwebページを作ってないです。メディアさんもこういったものが無いと紹介しづらいと思うので、こういう効果を狙うならやることはやっておく(ストア出店もしくは紹介ページ作成、チラシ配布、プレスキット作成など)必要があるなと思いました。

後、UNREAL FESTの時は交通機関の乱れで大遅刻かましたのでそれも残念でした。

次回、参加する機会があれば、こういったところも対応していきます。

イベント出展というのをやってみたかった:達成度◎

やってみたかったことができたの大満足です。

8.最後に

一言でいうなら「出て良かった!」です。

色々書きましたが自分の作ったゲームが目の前で人にやってもらえるというのは、理屈抜きで単純にそれだけで嬉しかったですし、他の開発者さんとのお話も楽しかったです。今回のことを糧にこれからも開発を頑張ります。

後、ゲームがある程度遊べる状態なら、結構どうにでもなるなとも思いました。実際、私はイベント完全未経験で、割と思い付きで応募してみましたが何とかなりました。...まあまあ大変でしたが。近場でこういうイベントがあるならあまり深く考えずえいやで申し込んで、あまりお金かけずにやってみるのも全然ありだと思います。

ただそうは言いつつも、"出ることが目的化"しないように注意は必要かなとも思います。FBの収集、コミュニティの拡大なりの目的を持たず、ただ出てみただけーになってしまうと意味が薄れちゃうかもです。極端な話、そのお金でアセット買った方がゲームの為になるということもあり得ます。自分なりに出展の目的を後付けでもごく簡単にでも良いので、整理して意識しながら準備していくと良いかもです。

何も考えず書いたら滅茶苦茶冗長な記事になりました...すいません。何か一つでも参考になる箇所があれば幸いです。最後まで読んで下さりありがとうございました!

どこかのイベントでご一緒する機会があればお気軽にお声かけ下さい!

タイムラインの便利な使い方

 

自分用のメモ

 

チックであまり処理したくないので簡単な処理ならタイムライン使うと良いかもって話


1.タイムライン用のイベントグラフを作っといて

そこにタイムラインに連動させたい処理を作る。

今回はゲーム内HUDを入力の状況に合わせて単純に拡縮する処理

 

2.BPのコンポーネント内にタイムライン出来てるので、イベントグラフにおいてイベントとかで再生(Play)したらオッケー。Reverseで逆再生もできる。

 

Aviutlの使い方備忘

記事の概要>

自分用の備忘記事です。

ゲームで使用するUIを作成するツールの使い方とか、参考事例を簡単にまとめました。

 <目次>

<使用ツール>

AviUtl version1.10

<導入>

ソフト本体

-まずはソフト本体

aviutl.info

プラグイン

-図形を並べて水平配置とか、できることが増える

aviutl.info

-選択フレームをPNG画像で出力できるようにする

aviutl.info

<使い方>

基本操作

aviutl.info

カメラ制御

-疑似的な3D表現のやり方

aviutl.info

<参考事例>

ネックOPN様解説動画

-1分で見れる。これ見てまねしてやればすぐにそれっぽいものができる。

www.youtube.com

その他

もう少し踏み込んでやるなら以下が参考になりそう

zuariya.com

zuariya.com

【UE4】既存アニメーションを修正する為のコントロールリグを組んでみた話

f:id:pupurigesu:20210524015341p:plain


記事の概要>

 既存のアニメーションを修正して使い回したいのでコントロールリグサンプルを色々触って勉強していたけど、思うように修正できないので、自分なりに既存アニメーション修正に最適化したコントロールリグを組んでみた。

 <目次>

<作業した環境>

 Unreal Engine4.26.1

<やったこととか>

やり始めた理由

ゲーム用にモーションをいくつか欲しいけど、一から作る技術もないので、既存のアニメーションを簡単に修正できないか調べていたら、4.26から既存のアニメーションをコントロールリグで修正できる機能が実装されたらしい。早速、おかず様のブログを参考に既存アニメーションをリグにベークしてみると。。。

f:id:pupurigesu:20210524035542p:plain

おうふ。。。

大量に生成されたキーを見て、瞬時に諦める。これを修正するくらいなら、もう自分で一から作った方が早いすらあるかもしれない。

もうちょっと調べてみると同じようなことをされている方がいてそちらも見た感じやっぱり非常に手間がかかりそう。

<2021.5.26追記>

キーが大量に打たれる問題について、当記事投稿後におかず様から対処策を教えて頂きました!もとのブログ記事にもこのへんのことをわざわざ追記頂けたようです。ありがとうございました!

 

別のアプローチ方法が無いかいろいろ調べてみると、リグの組み方次第で意図することが出来そうだったので今回試してみた。

やりたいこと

今回は大きく以下3点を実現する

(1)コントロールリグを使って既存のアニメーションシーケンスを容易に修正できるようにする

(2)修正はFK、IKを使い分けできるようにし、適用ウェイトも調節できるようにする

(3)IKは「固定位置への追従」と「元アニメーション+オフセット補正位置への追従」と二通りの追従方法を選択できるようにする


できたもの

で、だいたい2週間くらい、時間あるときにPCに張り付いてなんとか出来上がったのがこちら。

時間かかるかもだけど、同じ様に組めば再現可能だと思います。

 <スケルトンメッシュ>

f:id:pupurigesu:20210524123950p:plain

<リグ階層>

f:id:pupurigesu:20210524124309p:plain

<ノード> Graph.png - Google ドライブ

※画像が大きすぎたのでグーグルドライブに入れてます。いつか消すかも

できること

・具体的には以下のことが可能。IKの適用ウェイト等のコントロール設定項目は全て周りにエフェクタとして配置してビューポート内で調整できるようにした。

・後、標準的なヒューマノイドケルトンを使ってるので恐らく使い回しも可。(多分、多少ボーン構造が違っても同じボーン名を使っていれば適用できる?)

<頭、上半身>

→頭FK補正、視線追従(適用ウェイト調整可)

f:id:pupurigesu:20210524133919g:plain

<腕>

→FK補正、IKによる補正・追従(適用ウェイト調整可)

 ※IKのターゲットは「固定位置追従(赤箱エフェクタ)」と「元アニメーション位置追従(青箱エフェクタ)」を切替可

 ※「固定位置追従」は完全に位置固定か体の揺れを同期させるかを調節可能

f:id:pupurigesu:20210524153808g:plain

<手>

→手指開閉・指の横の開き(適用ウェイト調整可)

f:id:pupurigesu:20210524154324g:plain

<足>

→IKによる補正・追従(適用ウェイト調整可)

  ※IKのターゲットは「固定位置追従」と「元アニメーション位置追従」を切替可

f:id:pupurigesu:20210524155011g:plain

アニメーション修正方法

(1)レベルシーケンスを新規作成

f:id:pupurigesu:20210524173814p:plain

(2)作成したシーケンスに使用するスケルタルメッシュを投入

 ※今回はサードパーソンテンプレの標準的なマネキンを使用

f:id:pupurigesu:20210524174554p:plain

(3)続いてシーケンスに使用するアニメーションを投入

f:id:pupurigesu:20210524174956p:plain

(4)スケルタルメッシュにコントロールリグを適用する

f:id:pupurigesu:20210524180010p:plain

(5)リグを使ってアニメーションを修正・キー打ちをする

f:id:pupurigesu:20210524222947p:plain

(6)修正結果をアニメーションシーケンスとして出力

f:id:pupurigesu:20210524223449p:plain

(7)できた

(修正前)

f:id:pupurigesu:20210524224010g:plain

(修正後)

f:id:pupurigesu:20210524223828g:plain

 

このくらいの簡単な修正がUE内で5分程度でできるように!

 

感想

もっといい方法があるかもしれないけど、とりあえず自分の意図することができたので満足。

公式の無料アセットとかmixamoのアニメーションをブレンドしながら今回のリグで修正すればかなりの範囲をカバー出来そう。今後結構使いそうなので、使っていきながらまた改良(地形対応等)していくつもり。

やってて思ったのは同じモデルのリグでも用途に合わせてリグの組み方を変えていく必要があるっぽい。(今回みたいなアニメーション修正用とか、変数を入れてアニメーションブループリント連携用 とか)まぁもともとそういう運用を前提に作られた機能だとは思いますが。

後、やり残したこととしてフルボディIKを使って体の重心を補正(走っている方向に対して体をs自然な感じで傾けるとか)できる様にしたくて結構な時間を使ったけど、結局うまく実装できず今回断念したので、またいつか挑戦したい。

<参考にさせて頂いたサイト・動画> 

Using Control Rig in Unreal Engine - YouTube

→公式のチュートリアル動画(字幕あり)。いくつか見た中ではこれが程よい長さ(37分)でコントロールリグの複数の実例(標準的な足IKセットアップ、多脚IKセットアップ、尻尾IKセットアップ 等)をわかりやすく解説されていた。

 

UE4.26 Control Rig における IK ノードまとめ - ほげたつブログ

→各IKノードの説明を参考にさせてもらいました。

 

UE4.26 Control Rigのおすすめチュートリアル&情報まとめ | TECH ART ONLINEy

→わかりやすいチュートリアル情報とかTwitterの解説投稿とか

 

UE4.26で追加されたControlRigのループ(Looping)を使って、手の開閉を簡単に実装してみる - ぼっちプログラマのメモ

→手の開閉はこちらを参考に実装

 

 

【UE4】物理アニメーションを使ったヒットリアクション実装

f:id:pupurigesu:20210304235001p:plain

記事の概要>

 弾が当たった時にいい感じにのけぞらせるのに物理アニメーションなる機能が使えそうだったので調べて実装してみました。実装する際、結構詰まったのと今後もいろいろ使いそうなので、備忘も兼ねてやったことを残します。

 <実現すること>

 弾が当たった時にいい感じに体をのけぞらせたい

↓こんな感じ

f:id:pupurigesu:20210209000203g:plain

<目次>

<作業した環境>

  UE4.26.1

 サードパーソンテンプレ

 

<想定作業時間>

 たぶん約30分くらい

<作業詳細>

1.物理アニメーション適用したいアクタに物理アニメーションコンポーネントを追加

f:id:pupurigesu:20210301230254p:plain

2.アクタ内のメッシュのコリジョンの設定を変更

設定内容は以下を参考

f:id:pupurigesu:20210301231346p:plain

3.コリジョンのサイズを小さくする

コリジョンを小さくしておかないと体にあたる前にコリジョン当たってしまうので

f:id:pupurigesu:20210301231906p:plain


4.ブループリントでノードを組んで物理アニメーションを適用させる

ノードは以下参考

f:id:pupurigesu:20210304231603p:plain

5.完成

とりあえずぶつけてみるとこんな感じ

※発射する弾のコリジョン設定は「BlockALL」に変更ししたものを当ててます。

f:id:pupurigesu:20210304232211g:plain

これはメッシュの真ん中にコリジョンが残っているので体・頭に当てても反応しない。体や頭も同じ様にのけぞらせたい場合はコリジョンのサイズ変更かコリジョン設定の変更で調整する。

ヒット時のアニメーションとかIKアニメーションの補正と組み合わせると幸せになれるかも

<参考にしたサイト・動画> 

こちらの動画を参考にしました。

※英語ですけど、動画見て作業を完コピしたら問題なくできました。

www.youtube.com

 

 

【UE4】射撃時に発射する銃弾を光って飛んでいく曳光弾(トレーサー)にする

f:id:pupurigesu:20210221225755p:plain

記事の概要>

 他の方のシューターゲームの事例解説を見ていると、だいたいが射撃はレイ判定で弾丸は描画しないケースが多いけど、どうしても光ってとんでいく曳光弾が見たかったので調べて実装しました。

ただこれだとだと発射する弾を描画する分、レイ判定でやるより少し処理が重くなるかも。でもかっこいい。

 <目次>

 

<作業した環境>

使用バージョン:UE4.26.1

使用テンプレ:ファーストパーソンテンプレート

<想定作業時間>

多分30分くらい

<作業詳細>

1.弾丸のマテリアルを新規作成する

(ノード参考)

f:id:pupurigesu:20210221002353p:plain

2.弾丸の曳光部分のパーティクルを作成する

(1)ナイアガラパーティクルを新規作成
f:id:pupurigesu:20210221004701g:plain

(2)開いてパラメータを良い感じに設定

f:id:pupurigesu:20210221024209p:plain

(2)'シーンに配置して動かしてみると、ある程度どんな感じか確認できる

f:id:pupurigesu:20210221025155g:plain

3.発射する弾丸のBPを修正してパーティクルを適用。

(1)弾丸のBPを開く

f:id:pupurigesu:20210221102108p:plain

(2)いろいろいじる

f:id:pupurigesu:20210221104140p:plain

(2)'こんな感じになる

f:id:pupurigesu:20210221104550p:plain

4.完成

んでもってこんな感じになる

f:id:pupurigesu:20210221110020g:plain

 気に入らなければこれまで設定したパラメータを調整してみていろいろ試す

(修正箇所参考)

・発光色・発行強度を変えたい→マテリアルを修正(上記1項参考)

・曳光部分の長さ・太さを変えたい→ナイアガラのパラメータを修正(上記2項(2)参考)

・銃弾の速度を変えたい→銃弾BP内コンポーネントのパラメータを修正(上記3項(2)参考)

 

<参考にしたサイト・動画> 

※参考にした動画。英語だけど丁寧に作業をみせてくれる。

www.youtube.com

【UE4】VRテンプレート内で自由に動きまわれるようにする

f:id:pupurigesu:20210213224120p:plain

記事の概要>

 UE4VRサンプルは移動がテレポーション式だけどもっと自由に歩き回りたかったので、ブループリントをいじって動けるようにしました。

 ただVRゲームでこういう動かし方をするとVR酔いを誘発しやすいので本来は非推奨。実際のゲームで使う場合は別途何らかの対策がいるので注意が必要。

 <目次>

 

<実現すること>

 UE4VRサンプル内でスティック操作で自由に移動できる様にする。

 

<作業した環境>

 Unreal Engine4.26.1

使用テンプレ:VRテンプレート(MotionControllerMap)

使用機材:Oculus Quest2

 

<作業詳細>

 1.コントローラの入力を受け付けるように設定する。

今回は右コンスティックで移動、左コンスティックで旋回する感じで割り当て追加

f:id:pupurigesu:20210213200533p:plain

 2.サンプル内のBPを開いて移動する為のノードを追加

いじるBPはこれ

f:id:pupurigesu:20210213181125p:plain

移動処理のノードを追加

f:id:pupurigesu:20210213195849p:plain

 

 3.完成

出来た

f:id:pupurigesu:20210213222320g:plain