World to Meters設定を変更した際にMotion Controller Componentによるトラッキングがおかしくなる問題について
ワールド設定にあるWorld to Metersはとても便利な機能で、この値を弄ることでVR実行時におけるレベルのスケール感を簡単に調整することができます。(自分を巨人、または小人にするイメージ)
しかし、Oculus TouchやViveコンを使用する場合はWorld to Metersの扱いには注意する必要があります。具体的には、Motion Controller Componentを使ったトラッキングが正常にVR空間に反映されなくなります。
例えば、手を思いっきり動かしているのにVR空間上の手が全く動かなかったり、逆に動きすぎだり…。おまけで、VR空間上の手の大きさも合わなくなります。
この問題の解決策は実は簡単で、以下のようにWorld to Metersの値に応じてMotion Controller Componentのスケール値を変更するだけです。
注意:Motion Controller Componentに手などのMeshをAttachしていない場合は、そのMeshのスケール値も変更しましょう
あまり知られていない(自分も最近まで知らなかった)ノウハウなので記事にしてみました。おわり
なんとなくノリで1日に2回も記事書いちゃったぜ!
(下書きで貯めとけばよかったフラグ)
UMG(Widget)をテクスチャ(RenderTarget)に描画する方法について (サンプル配布) (UE4.21に対応)
*はじめに
UMGの描画内容をテクスチャに焼き込みたいケースはしばしばあります。3Dモデルの表面に反映させたり、以前説明したStereoLayerに使用したり…その他色々!
SceneCapture2Dを使うことで簡単に実現はできるのですが、処理負荷の問題やレベルのどこかに配置する必要があったりと面倒です。ということで、今回はUMGの内容を直接テクスチャに描画する方法を紹介します。
説明とかいいから使いたいんだけど!?という方は、↓のサンプルプロジェクトをどうぞ。プラグイン化してます。4.15で作りました。
github.com
UE4でWebカメラの画像を取得する方法について(UE4.17以前)
追記
UE4.18にてWebカメラの取得に関して正式対応が入りました。その為、本記事は古い内容になりますので、UE4.18以降をお使いの方は以下の記事をご確認下さい。
pafuhana1213.hatenablog.com
はじめに
皆さん、カメラは好きですか!?僕は好きです!
ということで、UE4でWebカメラの画像を取得する方法について調べました(雑導入)
…Webカメラの画像を取得できると、昨今話題になっているAR, MR的なことがUE4上で可能になります。先日紹介したViveTrackerと併用すれば、こんな感じのことも簡単に?できるはず…?
www.youtube.com
Webカメラの画像を取得するには
2017/4/22現在で取れる手は以下の4つです。
OpenCVプラグインを使う
OpenCVプラグインに関しては以前の記事でご紹介しました。ただ対応しているバージョンが4.9とかなり古いため、今となってはあまりオススメできません…。
pafuhana1213.hatenablog.com
公式対応を待つ
公式対応は…今のところ4.17を予定しているようです。もうしばらくお待ち下さい…
Investigate Media Framework plug-ins for webcam support
https://issues.unrealengine.com/issue/UE-35406
がんばってコードかく
がんばって!
UE4でHTC Vive Trackerを動かしてみた
はじめに
HTC Vive Trackerが発売されました!
(なにそれ?という方は↓の記事がとても参考になります)
teruaki-tsubokura.com
ということで、早速UE4上で動かしてみました。( UE4.15.1 )
MotionControllerコンポーネントを試してみる
まずは、ViveコントローラやOculusTocuhを動かす際に使うMotionControllerコンポーネントを試してみました!
…動かない!
どうやらまだViveTrackerには対応していないようです(;_;)
現状の方法
GetTrackedDevicePositionAndOrientationを使うことで、ViveTrackerのトラッキング情報を取得可能です。指定するDeviceIdは動作環境によって変わってくると思います。
VirtualRealityテンプレートを使用する場合、↑のノード・コンポーネント階層構造のActorを作成し、MotionControllerPawnのBeginPlayでそのActorをSpawnすることで動作します。BP_MotionControllerをSpawnしている箇所の実装が参考になります。
おまけ:VR空間で酒を飲んでみた
UE4でViveトラッカーを動かしたぞ!これでVR空間でも酒が飲めるぞ! #UE4 #UE4Study pic.twitter.com/3GUzxI6dCZ
— おかず (@pafuhana1213) 2017年3月30日
深夜のテンションこわい
UE4のFullBodyIKプラグイン「IKinema RunTime Plugin」とRecording Sequence機能を使って簡単にモーションを録画・作成してみた
前回
pafuhana1213.hatenablog.com
はじめに
そういえばおかずさんのこれ。UE4にはデフォルトでレコーダーシステムがついてるので、モーションキャプチャーの代用にもなるのでは?https://t.co/risUzzUq3f
— alwei (@aizen76) 2017年1月30日
「UE4にはデフォルトでレコーダーシステムがついてるので、モーションキャプチャーの代用にもなるのでは?」
やりましょう!
ということで、IKinemaプラグインで付けたポーズ・モーションからAnimationSequenceアセットを作成してみました。録画はUE4標準機能であるRecording Sequenceを使っています。4.14で入った新機能です。
www.youtube.com
か、簡単過ぎる…!ちょっとしたポーズなら十分これで作れそうな気がします!
それでは、どういう実装・流れなのかを紹介します。
Recording Sequence
docs.unrealengine.com
www.youtube.com
この録画機能を使ってアニメーションを保存します。↑では録画ボタンを押していますが録画開始/終了用のBPノードが用意されているのでそちらを使います。
Actors to Recordには録画対象であるActorの配列を渡します。今回はVRコスプレしたキャラクタだけでいいので↑の実装になっています。
そして、シーンを実行 → 録画開始 → 録画終了すると…
"Content\Cinematics\Sequences\Animations"にアニメーションが出力されています!
おわり!
(あまりにも簡単過ぎて手抜き記事になってしまった…)
UE4のFullBodyIKプラグイン「IKinema RunTime Plugin」を使ってVRコスプレしてみた
はじめに
突然ですが、
VRコスプレデビューしましたー!
二丁拳銃で遊んで大失敗するグレイちゃん (VRコスプレ、確かに楽しい) #UE4 pic.twitter.com/Ei9A0d7mLg
— おかず (@pafuhana1213) 2017年1月29日
(いや、まあ、便乗してやってみたレベルですが…)
今回使用したのは
UE4用FullBodyIKプラグイン「IKinema RunTime Plugin」です。
www.ikinema.com
この記事を書いた時期だと↓の動画で話題になっていました
www.youtube.com
IKinemaは様々なプロジェクトで使用されているアニメーション用プラグインですが、
UE4を用いるインディーズ向けに格安なライセンスが用意されています。
なんと99ドル!…いやいや格安ですって!
- バイナリ形式での配布
- 99ドル(買い切り)
- フォーラムでのサポートのみ
- Launcherで配布されているエンジンのみに対応
- PCサポートのみ
- 14日間無料体験可能
単純なIKならUE4標準で用意されていますが、
全身を取り扱うFullBodyIKの実装はかなり難易度が高いです。
ということで、早速このプラグインを試してみましょう!
マテリアルインスタンスのMaterial Property OverrideのOverrideフラグをロックするエディタ拡張について
前回
pafuhana1213.hatenablog.com
前々回
pafuhana1213.hatenablog.com
はじめに
突然ですが、先日開かれたUE4マテリアル管理勉強会(#UE4DD)のスライドに
こんなページがありました。
ということで、今回はMaterial Property Overrideをロックするフラグを追加します。
具体的な実装手順については続きにて。エンジンのバージョンはUE4.15です。
※ エンジン拡張した場合、その後の動作は保証できない上に
バージョンアップ時のマージ対応が必要になります。ご注意下さい!