ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

C#信者がOvrvisionSDK(C#)+OpenCVSharpを触ってみた結果www Oculus Rift 2 Advent Calendar 2014


Oculus Rift 2 Advent Calendar 2014 - Qiitaの6日目です。

↑のカレンダーが途切れそうだったので、急いでネタを作りました。
今回はゲームエンジン使いません。題名の通り、
C# + OvrvisionSDK(C#) + OpenCVSharp + WPFでゴリゴリコード書く感じです。
VisualStudioCommunity2013を使います。
いつも以上に説明雑いです。仕様です。

続きを読む

UE4のポストプロセスマテリアルで色々してみた 基本編 - Unreal Engine 4 (UE4) Advent Calendar 2014


Unreal Engine 4 (UE4) Advent Calendar 2014 - Qiita
の二日目です。

記事名の通り、UE4のポストプロセスマテリアルについて雑多に色々書きます
今回は基本編です。この記事の内容をベースに色々してみたことを
来週に書きます。(記事が長くなり過ぎたので分割しました)

参考サイト

あなた「この記事を見なくても、この参考サイトを巡回すればいいんじゃね?」
わたし「…君のような勘のいいガキは嫌いだよ」



「そもそもポストプロセスマテリアルってなんやねん?」という方には、
@aizen76さんのこの記事がオススメです
UE4 ポストプロセスエフェクトについて - Let's Enjoy Unreal Engine

続きを読む

UE4の物理アセット ツール (PhAT)を使って、ユニティちゃんを揺らしてみた

題名の通り、ユニティちゃんを揺らしました
まずは結果の動画から

UE4 + Unity-Chan Live! Test2 - YouTube
フヒヒ…色んな所が揺れてますなぁ…!

f:id:pafuhana1213:20141018200536p:plain
このコンテンツは、『ユニティちゃんライセンス』で提供されています

以下、物理アセットツール (PhAT)による揺れ実装の手順・パラメータなどの紹介

続きを読む

【UE4+OculusRift】HMDカメラの座標を取得する方法

たまには、小ネタでサクッと更新
BPだけ見たい人は、「BPでCollision位置を補正」の項に飛んで下さい

はじめに

下のようにコンポーネントを組んで、
カメラに紐付けたCollisionBoxに当たるとダメージ、というゲームを作るとします。
f:id:pafuhana1213:20141111223628j:plain

通常ですと、単にCollisionBoxのHit・Overlapイベントを見るだけです。
しかし、OculusRiftを用いた場合はBPで一工夫する必要があります

理想と現実

OculusRift画面に切り替えた後のカメラを「HMDカメラ」とします。

OculusRiftのトラッキングHMDカメラが移動・回転するのですが、
切り替え前のカメラ(FirstPersonCamera)にはトラッキング結果が
反映されていません!

つまり、こんな事が起こってしまします(赤い□はCollision Boxです)https://dl.dropboxusercontent.com/u/30427841/130624matrix04topnew01.jpg

OculusRiftを被って盛大に避けても、実際の当たり判定位置が
変わりません。これではゲームになりません…

BPでCollision位置を補正

なので、以下のようなBPを組む必要があります
https://dl.dropboxusercontent.com/u/30427841/HMD%E3%82%AB%E3%83%A1%E3%83%A9.png


  1. まずは、OculusRift画面に切り替え中か?の判定を「Is Head Mounted Display Enabled」で行ってます。
  2. 次に、「Get Orientation and Position」でHMDカメラの位置・姿勢を取得します。この位置・姿勢は切り替え前カメラ(FirstPersonCamera)からの相対的な情報です。
  3. あとは、自身の位置 → 切り替え前カメラ → HMDカメラ → HMDカメラの前方20、という流れで座標を導き出して、CollisionBoxの座標を更新しています


参考:
Unreal Engine | 仮想現実 (VR) のベスト プラクティス

【日記】第2回 関西 Unreal Engine4 勉強会で発表してきました

題名の通り、11/1に行われた
第2回 関西 Unreal Engine4 勉強会で発表してきました。
【関西】【11/1】第2回 Unreal Engine4 勉強会 : ATND

pptxファイル+動画ファイル

まとめ・感想記事

@kurisaka_konabeさんのtogetterまとめ
【関西】【11/1】第2回 Unreal Engine4 勉強会 #UE4Study - Togetterまとめ

@aizen76さん(各発表のスライドあり)
UE4 第2回関西Unreal Engine4勉強会を開催しました - Let's Enjoy Unreal Engine

@PaperSlothさん
UE4勉強会に行ってきました(累計3回目) - PaperSloth’s diary


以降は、題名通りの単なる日記です

続きを読む

UE4でMMDのモーションを使ってみる

UE4 4.5から、スケルトンが異なっていてもアニメーションを流用できる
機能が追加されました。
Unreal Engine | アニメーション リターゲット(異なるスケルトン)

今回は、この機能を使ってMMDのモーションをUE4のSkeltonMeshに
適用してみました。(これまではスケルトンの違いから無理でした)

f:id:pafuhana1213:20141018213803j:plain

f:id:pafuhana1213:20141018200536p:plain
このコンテンツは、『ユニティちゃんライセンス』で提供されています

続きを読む

UE4 BluePrintメモ その2

何かを忘れる度に増える、そんなBluePrintメモ

その1:
UE4 BluePrintメモ その1 - ぼっちプログラマのメモ

  • ボタン押しっぱなし
  • 物体の姿勢制御に関して

Hit・Overlap相手の情報取得

クラスで判定

f:id:pafuhana1213:20140913235007j:plain
指定のクラス(※1)へのキャスト(※2)結果で判定。
キャスト失敗時に例外処理(重めの処理)が走ってそうで少し怖い。

プログラマ向け
※1:BluePrintに付けた名前
※2:あるクラスを指定したクラスに上書きすること。
   対象のクラスが指定クラスと関係あれば成功、なければ失敗。

タグで判定

f:id:pafuhana1213:20140922112006j:plain
相手のタグ情報である程度判定し、その後にキャストするパターン。


目標に対して向きを"ゆっくり"変える

f:id:pafuhana1213:20140922215648j:plain

「RInterp To」ノードの、Currentに現在のRotatorを、
Targetに「Find Look at Rotation」ノードで求めた、目標への向きを入れることで、
目標方向に対してのゆるやかな回転を実現できます。
(○nityのQuaternion.Slerp, Mathf.SmoothDampAngleのようなもの)

InterpSpeedの値で回転速度を調整できます。