【UE4】MotionControllerSampleを読んでみたメモ【Vive】
はじめに
おかずさんが公開しているMotionControllerSampleを読んでみたメモを 書いておきます
プロジェクトはこれ
近いうちにドキュメントを書いていただけるそうなので、個人的なメモだと思ってください
中身を読む
最初、中身は入り組んでるっぽいと思ったのですが、よく読むとオブジェクト指向な感じで出来てて勉強になるところが色々ありました
メイン
メインになるBP_PIControllerから
BP_PIController
TunrRate/LookUpRate MoveはどうやらHMDなしの時の操作の名残りみたいです
今はViveでテストするので放置されてるといったところですかね…
大事なのはこの辺ですよね
これそれぞれProjectSettingでMappingされてます
ViveのコントローラーもmotionControllerから取れるのでMappingしてあった#UE4Study pic.twitter.com/4j5IfMvj6i
— てんちょー (@shop_0761) April 1, 2016
UE4ではMotion Controller ComponentがOculus touchでもつかえるらしいです
そしてViveコントローラーではGrab/Release (時々Graped)は横についてるボタンに、Use/UnUseはTriggerボタンに対応しててBooleanで右か左か渡しています
これらは全てBPIF_HandsというBPInterfaceで定義された関数を呼んでるのでそっちを見に行きます
するとBP_PIHandsの中にありました
BP_PIHands
他の
- Release for Hands
- Use for Hands
- Unuse for Hands
も呼んでいる関数が違うだけでやっていることは同じなので省略します
でこのHandActorが何者かというとBP_PIHandsのHand_R(Hand_L)というChildActorComponentからSetされたものでした
でこれらのHand_R(Hand_L)はBP_PISingleHand Classからなるものです
ここに色々ありました! やっとみつけた!
BP_PISingleHand
要になりそうなTickから
PsysicsHandleを使って掴んだりするところはこちらを参考にするとスムーズかと思います
UpdateDebugTextは省略して、UpdateGrabTargetにいきます
GetnearestTargetで近くのものをgetしてきてそれが今持ってるGrabTargetActorと違ったら処理をするのはいいんですがその後の処理がThen1だけでいい気がするんですが…(おかずさん教えて下さい!
2016/04/07/23:56 追記
@shop_0761 UpdateGrabTargetの所は…それまでTagetだったActorに対して、もうあなたはTargetではないですよ、と通知したいのでThen 0の処理をしてる感じです。Targetにされてる側は光らせたり、輪郭線を書いたりする予定
— おかず@UE4+Viveおじさん見習い (@pafuhana1213) April 7, 2016
GetnearestTargetはこれ
でもってそこで使ってるHoldTargetsはここでaddされてます
掴めるものリストを作ってる感じですね
でTickのところにあったCollisionとCollsionRootのSetWorldRotationするところはどちらか片方でもいいような気がします…(おかずさん教えてry
2016/04/08/0:00 追記
@shop_0761 CollisionとCollsionRootのSetWorldRotationは…え、なにこれ、こわい
— おかず@UE4+Viveおじさん見習い (@pafuhana1213) April 7, 2016
で一通り終わったのでBP_PIHandsに戻ります
BP_PIHands
ここでやっと全体図をば
init上半分から
さっきちらっとで出てきたSetChildHandActorsとInitHandsです
InitHandsはこれ
これらはどうやらBP_PISingleHandにあるのでまた行きます
BP_PISingleHand
Set Is Debug
Debug用です おわり
Set Collision Param
ここで初めて知ったのがSetBoxExtentです
これすでにあるBoxCollisionのサイズを設定できるみたいで割と便利です
で、そのCollisionのLocationをセットしていますね
Setup Grab
これは先程出てきたPhysics Handle周りの設定なのでここは省略します
BP_PIHands
戻ってきました
さっきのSequenceの続き
MotionControllerを使うかどうかの分岐でした
とりあえずメインおわりましたー
BP_GrabTargetBase
ここからは実際に掴むもののBPにはいります
BeginPlayでは僕にとって面白いことをしていました
これです
こんな風に継承元BPでbindだけしておいて継承先BPで同名Eventで上書きしてるのか プログラム感あるなー#UE4Study pic.twitter.com/icBjTL6cAG
— てんちょー (@shop_0761) April 1, 2016
このBaseBPを継承してBPを作ると、予めイベントがbindされてるので継承先で同じ名前のイベントを作るとそっちのイベントが優先されるというプログラム的でいいなと思いました(たぶんこれで解釈あってるはず
BP_GrabTargetBase_StaticMesh
さっきのをベースに作られたStaticMeshのBPです
BeginPlay
Reset Materials
BaseEvent
ResetStaticMesh
でConstruction Script
とあまり説明する感じでもないですね…
SkeltalMeshもほぼ同様の内容でした
自分のプロジェクトで使う
2016/04/08 追記
思い出したように追記します
MotionControllerSampleフォルダを自分のプロジェクトにmigrate(移行)してきます
でそのついでにInputの設定も持って行きます
ProjectSettings->Engine->InputからExportしておきます (この時、特に何も考えず.iniファイルを保存すると、 MotionControllerSample-master\Saved\Config\Windows などに保存されるので見失わないように)
で、自分のプロジェクトでImportします
それからGameModeを持ってきたBP_GameModeに変更して、マップ上にこれらを配置します
でここにチェックいれないと上手くコントローラーが動かないので要注意
2016/04/09 追記
これで終わりかとおもいきやレベルに設置したBP_PICameraのここも設定してください(これでイベント取れなくて迷ってた
まとめ
概ねこんなところかと思います
間違ってる所があれば修正するので@shop_0761までお気軽に
ついでにViveはまだないとか、Sampleの中身見たけど読むの大変そうと思った方の役に立てばいいなと思いました
【UE4】VivePreが届いたのでVR Editor使ってみた
はじめに
VivePreが無事届きました!
Viveきたーーー pic.twitter.com/JPkycV3NuC
— てんちょー (@shop_0761) 2016年3月26日
最初の返信は5分できたので発送もすぐかなと思ったらそんなに世の中甘くなかったです。約2週間かかりました。
個人的な都合でセットアップが概ね終わったのが今日でした…
2016/03/26 現在の観測範囲で道内にこれ1台しかVivePreないっぽいです!!やったぜ!! (すでに道内で持っている方がいれば教えて下さい…
セットアップとか
細かいセットアップについてはこちらを見ていただいたほうがいいかと思います。
一般的には三脚で固定するようなのですが、許可が降りたので穴を開けてみました。
— てんちょー (@shop_0761) 2016年3月28日
失敗しました
でもこれかなり安定するので穴を開けても良さそうならおすすめです(間違って開けた穴は埋めましょう
そしてなんと手元のPCではHDMIではなくDisplayPortしかないので変換プラグをかましていたのですが、映らない!!(セットアップは問題なくできます
なのでこれを買いました
とりあえずこれなら今日くるから買っておこうかな ヨドバシ.com - エレコム ELECOM CAC-DPM1210BK [miniDisplayPortケーブル Ver1.2a 1m]【無料配達】 https://t.co/WcFxZHKX1K
— てんちょー (@shop_0761) 2016年3月28日
VivePreだけの可能性はありますが、miniDisplayport用の端子があったのでそれを使ってしのいでいます
VREditor
UE4ではVREditorが使えるようになります(現在はエンジンビルドすれば使える
なので今回はこれを使うところまでさらっとメモしておきます
UE4のエンジンのソースコードは全てgithubにあるので、dev-vr-editorを使ってください
参考
注意すべきは以下2点くらいです
- パスに日本語が入らないようにする
- ビルドエラーを回避するために削除する行がある
一つ目は当たり前ですが、よくやらかすのでメモ。日本語環境でダウンロードフォルダなどに入れてしまうとパス名に"ダウンロード"が入ってしまいビルドに失敗するので注意
だいたいドライブ直下にすればいけます
二つ目はこちらを参考にしてください
(よりわかりやすい版)日本語環境で現在のUE4のビルドが失敗する理由。 2791行を削除するか、最後のダブルクオーテーションを書き換えてください。 pic.twitter.com/KeiBQc3TJL
— スミオ (@tempkinder) 2016年2月7日
これらをやってVS上でF5を押せば起動できます
あとは見慣れたプロジェクトブラウザが開くのでプロジェクトを作成してください
新規レベルからVREditor用のレベルが作成できるのでそれを使うといいと思います
であとはこのViveを繋いでVRボタンを押せば使えます
使ってみた感想
実際に目で見てVRのサイズ感で作れるのはいいと思いました。ただ多分部屋のせいなのですが、あまり操作しやすくない印象でした。思うように動かなかったり、編集に手間取ったりしました。 現状だとゼロからレベルデザインするというよりは仕上げ段階でここはもう少しずらしたほうがいいとか、見栄えを調整するといった使い方がいいのかなって感じです。 まだまだ開発段階なのでVR内で完結するのが楽しみです。
【UE4】Switchの作り方にこだわってみたくなった話【小ネタ】
今年に入ってまだ全然ブログ更新出来てないので書いてみた。
最近BPのリファクタリング?的な感じでどう組むのが一番いいのか 考える余裕が出来てきて、「あれすれば出来るけど、もっといい方法ないかな」 みたいなことがGGJ中にも思ったりしてて、今回の件に至りました。
そんな堅苦しい感じじゃなく ぼくのかんがえたさいきょうのすいっち みたいな感じです
作りたいスイッチ
押したら終わりではなくて、押して数秒後に元に戻るスイッチを前提に考えて います。UE4本でもありましたね。(P262くらいからのお話)
基本Switchに追加したBoxCollisionをTriggerにしてLerpノードで沈ませてDelayして元に戻すみたいな実装だと思います。 (他にあるなら知りたい)
で、今回やりたかったのはこれ
押したら一定時間後に戻るスイッチの実装 やっぱり一時変数的なものが必要になるんだけどいい方法ないかな#UE4
— てんちょー (@shop_0761) 2016, 2月 14
でできたのがこちらです
実際のActor
BP全体図
中身
では左側から
複数ヒットを避けるためにDoOnceしてます。一巡したらResetするようにしてます。 イベントディスパッチャで拾えるようにしたりしてます。
右側は
Switchって変数はStaticMeshで用意した実際に押したら引っ込むところです。 今回の肝はGetUpVectorとTimeLineノードのDirectionピンです。 DirectionピンはTimelineノードが順再生なのか逆再生を取れるピンです。便利。
ここで何してるかというと、GetUpVectorで取った向きにDirectionで取ったTimeLineノードの向きから 押すのか戻すのかを取った後、SwitchMoveOffsetで移動する距離を準備して元のSwitchのLocationに加算したものをLerpかけてます。(すごい呪文みたいになった
これ、さっきのTweetのように一時変数を用意すればこんなことする必要もなくTimeLineノードを逆再生すれば済む話なんです。けど用意するのはなんか嫌だし、出番がそこしか無いのに使うのは美しくない!!そう思ったわけです。
そこでDirectionピンから加算するVectorの符号を変えることで成し遂げました。
であとはDirectionピンからswitchしてSwitchTurnOffTime分だけDelayをかけて逆再生した後にイベントディスパッチャ呼んで終わりみたいな流れです。
実際に動いてるのはこんな感じ
ブログ用 pic.twitter.com/kRS3n3v4P7
— てんちょー (@shop_0761) 2016, 2月 15
足元にスイッチ、奥には同じように実装したブロックです。 よくよくみるとちゃんとスイッチが浮き沈みしてます!
おわりに
なにかとよくあるSwitchを皆さんどんな風に実装してるか興味あるので どしどし教えて下さい!(勉強したい
今回はまだ腑に落ちない点はSwitchMoveOffsetで手動でボタンの凹み具合を調整しなきゃならないところなので思いついたら更新します。 多分スケールとかから取ったりしたらよさそう。
現状 ぼくのかんがえたさいきょうのすいっち でした。
【UE4】GGJ2016 Sapporoに初参加してきた
今年最初はGGJに参加してきたのでそれについて少し
GGJとは
Global Game Jam といって世界各地で48時間以内にゲームを作るイベントです。
公式はこちら
そして札幌は2会場ありまして、定山渓会場と、札幌会場の2つです。
札幌会場はこちらで
定山渓会場は端的に言えば温泉です。
今から戦地に赴く戦士たちがこちらです#ggjsap #ggj pic.twitter.com/UIVllRWWuW
— AttaQ (@AttaQjp) 2016, 1月 29
ぼくは札幌会場のほうに参加したので終始温泉に入っているとか、ポトフ食べてるとか、二度寝してるみたいな情報ばかり入ってきてうらやましかったです。
作ったもの
こちらからダウンロードできます。DK2が必要です。
Straight Sheep | Global Game Jam®
実行には一手間必要でコマンドプロンプトから起動しなきゃいけないです コマンドは
$ Path\to\StraySheep.exe ?Listen -vr && Path\to\StraySheep.exe 127.0.0.1
でPathには自分で保存したとこのディレクトリを指定してやる必要があります。 やり方が分からなければ @shop_0761 まで聞いてください
(余裕があったら対処法考えます)
実績は5つ解除してます!!
今回はHMDをかぶってる人だけでなく、かぶってない人も楽しめるゲームを作ろうということでマルチプレイ出来るようにしました。
実際のプレイしてるやつはこれ
BPたくさん作った人です#ggjsap pic.twitter.com/5FU1xNj0Iv
— てんちょー@GGJ-UE4 (@shop_0761) 2016, 1月 31
VRの人はマップ上の通路からの視点、外の人はマップを横から見た視点になってます。
これは説明用にVR側のウィンドウとかぶってない人側のウィンドウを出してますが、VRのほうは隠すことができます。 なので実際にやってもらう時はVRの方を隠してプレイするのがいいと思います。
基本的には2人プレイです。1人はVR、もう1人はコントローラを持ってマップ上の仕掛けを操作します。 VR側の人はなされるがまま前進しかできません。なのでマップ上にある仕掛け(落とし穴とエレベータ)が どこにあるか、エレベータは上に行くのか下に行くのか(中にエレベータの移動先を示す矢印がある)、 など見えている情報をパートナーに伝える必要があります。 それを受けてコントローラで落とし穴を開けたり、エレベータの方向を変えたりして誘導していく、といったゲームです。
発表時のスライドは まえはなさん(@sandinist)に作っていただきました。
www.slideshare.net
そのうちプレイ動画を撮って公開するつもりです。
作ってたときのお話
バージョン管理
今回はbacklog + SVNで管理してました。特に大きな問題もなく作業できました。ただ回線が…ってくらいです。
最後の最後でこんなことも
ルーターの電源が抜かれるという事件が起きた。激おこ
— KOMURO@試される大地 (@com4dc) 2016, 1月 31
役割分担
ぼくはひたす色んなBPを量産してました。落とし穴とかエレベータとかPlayerとかレベルBPとかいろいろやりました。
まえはなさんはひたすらネットワーク回りを調べてその辺をBPで実装していただきました。 (なのでその辺は謎技術で動いてるように思えますw)
こむろさん(@com4dc)は最初Androidと連携する予定だったので調査してもらってたんですが、間に合わなさそうなので いろいろなActorを作ってもらったりmadness worldを作ったりしていただきました。
みくP(@0039P)さんとこだいら(@raidako3D)さんはモデリングとかレベルデザイン周りを作っていただきました。
あと今回は音周りができる方がおらず、急遽ぼくの友達(見学)がSEやらBGMを探してくれましたw
あのレベルデザインの完成度は正直びびりました… (ぼくがぷちコンで作ったやつはInfinity Bladeのアセットの暴力で解決したので)
それと途中で 俺ばっかり簡単なActorを作ったりしてていいんだろうか… 楽してる気がする… と思ってましたw
でも結果的にはいい感じで進んでたし、ある程度簡単なものなら一人でどんどん量産していったほうが形になりやすいとは思いました。 まあTimeLineノードが思うように動かなくて苦しめられてましたがw
madness worldとは
こむろさんがBPでいろいろActorを作っていた時にできた偶然の産物的なもので構成された世界です。
動画はこちら
ここがはじまりっぽい
進捗です #ggjsap https://t.co/3RrJUiZo6A
— KOMURO@試される大地 (@com4dc) 2016, 1月 30
ほんとは回転していくのをEventTickで作ろうとしたみたいなんですが、途中の計算がおかしいせいで、徐々に微振動し始めて どんどん加速していく 死んだ魚のような動きをするものが出来上がってしまいました。
そのBPはこれ
このTickからのdeltaSecを加算してるせいで振り切ってしまってるっぽいです。
その他謎のActorがたくさん爆誕したのでシュール極まりない世界です。Githubに公開したそうです。
VRを想定してないのでこんな方も
マッドネスワールド被害者(体験者)の会 #ggjsap
— YKKY (@yk_handle) 2016, 1月 31
-変態デバイスチーム-
同じ部屋で作業していた変態デバイスチーム。
変態デバイスチームの所有ガジェット、少なくともDK2×3, GearVR×2, LeapMotion×4(その内一つはred仕様), Raspberry Pi×5を観測した #ggjsap
— mao (@TEST_H_) 2016, 1月 29
発表時には筋肉を使ってスライドを動かしてました。
筋肉駆動スライド…! #ggjsap
— KOMURO@試される大地 (@com4dc) 2016, 1月 31
そんな彼ら(特にmao @TEST_H_さん)の変態ぶりを他の方のTweetから拝借して見てみましょう。(迷惑だったら言ってください 消します)
隣の変態チームから "女子高生に受ける宗教ってないかな" って聞こえる #ggjsap
— Tsuyoshi MAEHANA (@sandinist) 2016, 1月 29
変態デバイスチームだけど変態チーム扱いされる>< #ggjsap
— mao (@TEST_H_) 2016, 1月 29
いったい何台揃えれば気がすむのか #ggjsap pic.twitter.com/SpuXPSAAWW
— YKKY (@yk_handle) 2016, 1月 29
これが変態デバイスチームです。#ggjsap pic.twitter.com/xKzsqXve48
— 天狗 (@47tengu) 2016, 1月 30
などなど
他の作品
他にも個性(狂気)的な作品が多かったです。一覧はここから見れます。
札幌
Sapporo Games | Global Game Jam®
定山渓
Global Game Jam 2016 Sapporo Jozankei Games | Global Game Jam®
2/2現在で個人的に面白いなと思ったものを紹介しておきます。
Team without a programmerのリリーさんゲーム
これのコンセプトは「プレイした人をいかに不快な気持ちにさせるか」だそうです。その発想面白いなと思ったので書いておきます。
プレイヤーを出来るだけ不快な思いをさせたいゲーム #ggjsap
— てんちょー@GGJ-UE4 (@shop_0761) 2016, 1月 31
Team without a programmer | Global Game Jam®
Team without a programmerのふぇるくんげーむ
これはパズルっぽさのある横スクロールアクションです。一度時を止めて、プレイヤーが加速できるオブジェクトを配置して高い壁とかを越えていく みたいな感じです。(上手く説明できないけど仕組みは面白い)
Team without a programmer | Global Game Jam®
Kimotic Procedure
ここはデザイナーさんが作りたいものを作って、それをプログラマーさんが作りたいものを作るという新しいゲームジャムをしてました。 そのおかげでサイケデリックでクレイジーなゲームになってます。(しかもフレームワークやライブラリから自作したとかなんとか
すごいサイケデリックなゲームでクレイジー#ggjsap pic.twitter.com/eYnZ9yQIal
— てんちょー@GGJ-UE4 (@shop_0761) 2016, 1月 31
KIMOTIC procedure | Global Game Jam®
spa ; hotspring ; onsen (定山渓)
プログラマ不在のチームでHTMLで書いた昔懐かしい感じのクリックで進むゲームです。デザイナーさん二人の絵柄をなるべくなくすためにグレースケールで描いてるとか
spa ; hotspring ; onsen | Global Game Jam®
まとめ
開発環境としては回線に終始苦しめられた感はありますが楽しかったです。いやーこだいらさんのレベルデザインがすごかった…
他のチームの様子を見に行く余裕は無かったけど、うちのチームは徹夜してない健全なチームです!! 徹夜しなくてもゲームは作れます!!
温泉入っててもゲームは作れます! 興味があれば参加してみるといいと思います。
チームの皆さん、運営のみなさんありがとうございました。
【UE4】GearVRのタッチパッドの入力を取ってみた
探しても思ったより見つからないので、とりあえずメモ的に書いておきます。
今回はこちらを参考にしました。
Why does the touchpad on Gear VR fire multiple release events? - UE4 AnswerHub
UE4.11 previewです。
実装
といってもInputTouchノードで戻る以外は全て取れそうです。
で試しにこんな感じでやってみると、それなりにいい感じなのかなとは思いました。
普通にpressedはタッチ開始時に一度だけ、releasedはタッチ終了後に一度だけ実行されます。(そりゃそうだ)
Movedは座標が変わる度に取ってるような気がするので、setTimerで少し間引いてから座標を取って、指が前に行ったのか後ろに行ったのかみたいなことをしてます。
戻るボタンについてはUnityの方ではEscキーだったり、最初に貼ったリンクではAndroid backで取れそうな感じなんですが
UE4.11 previewではどちらの方法でも反応しませんでした…
ちなみに試したボタンはこちら
Androidのinput系とescとかbackspaceとかありそうなのをやってみたのですが、ダメでした。 何かご存知の方お教えいただけると幸いです。
2016/1/2 追記 なんか試してた環境が良くなかったらしく上手くいったのでメモを
普通に入力全てとれました。
- Android Back -> 戻る
- Android Menu -> 戻る長押し
- Android VolumeUp -> ボリュームボタン上
- Android VolumeDown -> ボリュームボタン下
でいけます。(たまたま別のテストをしてる時に上手く行った
上手く取れなかった原因は分かりませんがとりあえず入力取れればおっけーですよね!!
【UE4】GearVRで20fpsから60fpsを目指してやったこと
発売日にGearVRが届きました!
はこでかい pic.twitter.com/38Xh5uB2Hc
— てんちょー@GGJ-UE4 (@shop_0761) December 18, 2015
やばい…楽しい…ナニコレお手軽… と初日から楽しんでました。
で、どうせなら何か作ろう そう思って色々考えてはプロトタイプを作ってはいましたがいろいろトラブってたので一旦投げました。
そこで何ならぷちコンで作ったやつを試しに60fps目指して改良しよう!と思いついたのでやったお話です。
注)以下は個人的な意見なのであってるかどうかは分かりません。参考程度にしてください。
ゲームはこちら。マグマのところのステージを対象にやってみました。
また途中結果がtwitterにしかないので細かいところはご愛嬌ください。
結果
寝る前に思いついた方法を足すと割と安定して60付近になった pic.twitter.com/YyYnI27kiF
— てんちょー@GGJ-UE4 (@shop_0761) December 20, 2015
使っているもの
- Infinity BladeのAsset
- 中野シスターズ ver1.2
です。
何もしてない状態
とりあえず1つのステージだけ最適化中だけど最初20fpsだったのが30まできた
— てんちょー@GGJ-UE4 (@shop_0761) December 19, 2015
でした。
やったこと
まずは背景用にもりもり突っ込んだメッシュをゴリゴリ消しました。
Before
After
そりゃ軽くなるよ!!こんだけ消したんだもの!!
それからこのあたりを参考にゴリゴリ削ります。
定番のLightをstaticにしたり、色々staticにしました。Collisionなんかもstaticになるんですね(知らなかった
幸か不幸かPostprocessには手が回ってなかったのでVolume自体なかった…
またFogは残してあります。なんか雰囲気ほしかった。(もちろんstaticで
staticMeshのシャドウも消してます。 LightMapはもう思い切って削りまくりました。
けど、エディタの詳細から設定できるシャドウの方は一部有効にしてます。(でないと真っ黒になった
それとこちらのMaterialの設定はMobileでは有用そうです。
[編集中]24時間でUnreal Engine4で #GearVR コンテンツを作る方法#vrfes2015spring | Develog.VR
ここのMobile設定のことです。ついでにスペキュラ使ってるマテリアルあったので切りました。(なぜ使っていた…
そしてこの件
GearVRはASTCにした方がいいみたいのを見かけたのでそれでパッケージ化してる
— てんちょー@GGJ-UE4 (@shop_0761) December 19, 2015
一応こちらに載ってはいるのですがUE4公式ドキュメントではETC2になってます。(どっちがいいかは分かりません
今回はなんとなくASTCでやってます。
これの存在も頭にいれつついきます。(いつも勝手にお世話になってます
ProfileGPU中のSlateUIという謎項目(5~10ms食ってる)に悩まされているそこのあなた、fps表示を一度切ってみましょう。または、他のプロファイル用の表示を切ってみましょう。ほらね、簡単でしょ
(←さっき気づいた馬鹿) #UE4Study
— おかず@Rift CV1 3月発送勢 (@pafuhana1213) February 1, 2015
このくらいやった時に問題になったのがこれ
半透明なものがないはずなのにこれがめっちゃ食ってるのなんでだ pic.twitter.com/GL2Pu5zCGo
— てんちょー@GGJ-UE4 (@shop_0761) December 19, 2015
このprofileGPUって項目名でそのまま調べてもいまいち出てこないんですよね…
なのでそのままの意味で解釈するしかないと 思い至ったわけです。
半透明なフィルタのVolume… これBlockingVolumeでは!? と思って削ったら
とりあえずここまで減った pic.twitter.com/lFxGh3kzo2
— てんちょー@GGJ-UE4 (@shop_0761) December 19, 2015
この時のBlockingVolume
この棒状Volumeでもちゃんと機能します。そしてコスト削減できる! やったね!!(ジャンプさせたりするなら2本にするとか
とにかく必要ない部分もVolumeとして存在するので棒状にしてみました。
ついでにPainCousingVolumeも使ってたのですが、消し去ってkillZに乗り換えました。(この時点でBlockingVolumeの出番はなくなった
減った減ったー…と思ってもまだ残存勢力がいる模様。もうさすがに無いだろ…と思ってた矢先に
これCollisionも計算されてるかも!?
と思い、すでについていたstaticMeshのCollisionや、不要なCollisionもバリバリ消しました。 今となっては確かに計算しなきゃならないからコストかかるじゃん…ってなりました はい。
そして、Triggerとして使用していたCollisionも1cm四方の立方体に圧縮しました。
でこれ
とりあえず安定はしないけどこれくらい出るようになった pic.twitter.com/Wvg0YdpSvn
— てんちょー@GGJ-UE4 (@shop_0761) December 19, 2015
あと一歩って感じですよね。
ChalacterのCollisionも削ればひょっとして…と思いやってみた。
足元だけにしました。
他にもこんなロボットと戦う場面があります。手のところにつけてたCollisionをダメージ判定に使ってたのですが、 AnimBPのイベントディスパッチャーで発火された時にもうダメージを与えるようにしました。(確認はしてない
すると安定気味になりましたとさ。
寝る前に思いついた方法を足すと割と安定して60付近になった pic.twitter.com/YyYnI27kiF
— てんちょー@GGJ-UE4 (@shop_0761) December 20, 2015
まとめ
意外な盲点としてこのVolume周りがあるのではと思った。他の方の記事をみるとあまりこの項目が出てないのでなんでだろ…と思ってましたが、 なんとか60付近になってよかったです。
なによりInfinity BladeのAssetの出来の良さのおかげで素材そのものをゴリゴリいじらなくてもいけたのが大きいです。
ただ、まだHMDでのカメラ周りのBPとか設定がよく分かってないので思うように動かせてませんw
とりあえずこの後は歩き回れるようにしようと思います。
追記
いろいろ変更したりビルドした後に保存しないと反映されないと思うので、こまめに「すべてを保存」をしてました。
今回あまりコマンドを使ってません。 これだけ
こういう方法もあるよくらいに思ってください。(コマンドを知らなかっただけ GPUビジュアライザーで見た時にどの項目に対してどのコマンドを使ったらいいかは こりんさん(@k0rin) のサイトが参考になると思います。
【UE4】OculusAudioSDKを使う【小ネタ】
ちょいと無駄なことをしてしまったのでメモ
OculusAudioSDKとは
2015/12/10に正式版がリリースされました。 ダウンロードはこちら。
UE4で使う
UE4ならすでにプラグインが公式であります。こちらを使えばおっけーとのことです。
設定->Plugins->Audio の中にあるOculus Audio SDKです。
おかずさんに教えて頂きました。(ありがとうございます!
@pafuhana1213 あってますあってます!(ちょうどおかずさんのWwiseの記事見てた
じゃあ特に公式からSDKダウンロードする必要無かったんですね…w
— てんちょー (@shop_0761) December 15, 2015
@pafuhana1213 ありがとうございます!発見しましたー
プロいこと出来ないので標準機能でがんばります!
— てんちょー (@shop_0761) December 15, 2015
2015 12 27追記 ちなみにその設定は各Cueの詳細にありました
OculusAudioPack1とは
最近話題になったつよいサンプルデータです。(他のフリーの音源提供サイトを潰しにかかってるとか言われてたような…
UE4で使う場合はこれをダウンロードしてインポートするだけかと(まだやってない
2015 12 27追記
やりました ちょいと注意事項を
AudioPackのファイル名が丁寧なため、ファイルパスが長くなってしまいます。 なので、ファイルを置く階層に注意しないとパッケージングの時に怒られます。(怒られた人
moguraVRさんの記事も貼っておきます。
いい音はいい体験を生むのでバッシバシ使っていきましょう!!