【VR】【Oculus Rift】【Unreal Engine 4】【C#】開発環境構築2016/01版

今年からVR入門しました。
とゆーわけで開発環境構築でも書きましょうかね。

Windows10 + Oculus Rift + Unreal Engine 4 + Visual Studio Community 2015です。開発はC++ですね。はい。

こいつらはインストール済ませておいてくださいねー。

Unreal Engine 4.10.2
Visual Studio Community 2015

なお、Oculus Rift持ってないので実機の動作は未確認でございます。

ではスタート。



1.Oculus Runtimeインストール

https://developer.oculus.com/downloads/

Oculus Runtime for Windows V0.8.0.0-beta
をダウンロードして
oculus_runtime_sdk_0.8.0.0_win.exeを実行してちょ。



2.Pluginチェック

Epic Games Launcherを起動します。
んで、左上にあるUnreal Engineの起動ボタンポチッと。
f:id:devdevdev:20160117033353p:plain

新規プロジェクト→C++→基本コードを選択。
設定はそのままフォルダと名前を指定して、「プロジェクトを作成」をポチッと。
f:id:devdevdev:20160117033549p:plain

しばらく待つとUNREAL EDITORとVisual Studioが起動します。
Visual Studioはまぁ置いときましょう。

メニューバーからEdit→Pluginsを選択
f:id:devdevdev:20160118231026p:plain

Virtual RealityOculus RiftのEnabledにチェックついてるのを確認しましょう。
ちなみにデフォルトでついてました。
f:id:devdevdev:20160118231255p:plain



3.実行
PlayからVR Previewを選択しましょう。
Oculus Runtimeのバージョンがあってなかったり、デバイスが接続されてないと押せないみたいです。

以上。





取りたい資格メモ

2年近く前のエントリーをTwitterでシェアしてくださってる方がいてびっくりしました
古すぎてもうあのソース使えない気がしますよ。

んで、本題。
受験日とか何も考慮してないので取れないのもありそう。
iOSの資格は変なのしかないから除外。
そしてオラクルはいらないかな。



MCSD: Windows Store Apps Using C#
MCSD: Web Applications
Androidアプリケーション技術者認定試験ベーシック
ORACLE MASTER Bronze Oracle Database 11g
・PHP5技術者認定上級試験
Javaプログラミング能力認定試験
AWS 認定デベロッパー – アソシエイト
技術士 情報工学部門



難しそうなのは技術士くらいですかね。
名称独占資格or業務独占資格のどっちか1つくらいは持っておきたいというだけの理由でノミネート。
せっかくJABEE認定の学科卒業したことだしね。なぜ卒業させてもらえたか謎なんだけどね。しかも応用理学部門らしいけどね。
なお、技術士情報工学部門の昨年度合格率19.2%。JABEE修了者は42.9%だそうで。
情報処理技術者試験でその年のプロマネ断トツ最年少合格者だった僕からしたら、合格率15%超える試験なんてザルですわwと自分にプレッシャーを与える。


二か月半ぶり

もうね。書くネタないっす。
春過ぎには色々書けること増えるかな。

気づけば法人化して半年過ぎてます。

とりあえず1年ぶりにキーボードを新調しました。
試し打ちで文章書きたくなっただけですw



1年くらい愛用したMajestouch BLACK茶軸さん
f:id:devdevdev:20141117223303j:plain

そして今回新調したのはこちら
f:id:devdevdev:20151126205326j:plain

http://www.amazon.co.jp/%E6%9D%B1%E3%83%97%E3%83%AC-Realforce91UDK-G-%E3%83%86%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%AC%E3%82%B9%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%85%8D%E5%88%97%E3%82%AB%E3%83%8A%E3%81%AA%E3%81%97-DIP%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E6%A9%9F%E8%83%BD%E4%BB%98-NG02B0/dp/B001LK9E7Swww.amazon.co.jp



ついにRealforceデビュー!
Mejestouchの他にHHKB Lite2 for Macも持っているんですけど、
Realforceが文句なしダントツで打ちやすい。
さすが\20,000超え。。

あーごりごり実装したい。





【C#】インデックス付きforeach

ひさびさC#ネタ
IEnumerable拡張です。

	public static void ForEachWithIndex<T> (this IEnumerable<T> source, Action<T, int> action)
	{
		foreach (var x in source.Select((item, index) => new {item, index}))
			action (x.item, x.index);		
	}



使用例
foo,barデビューしました。

	var array = new string[]{ "foo", "bar"};
	array.ForEachWithIndex ((x, i) => {
		// なんか処理	
	});





Visual Studio Code settings.json

全くブログ書いてなかった。。
3か月半ぶりですね。

ただのメモです。
Unity向けのsettings.jsonでございます。


{
	"files.exclude": {
		"**/.git": true,
		"**/.DS_Store": true,
		"**/*.meta" : true,
		"**/*.mat" : true,
		"**/*.unity" : true,
		"**/*.userprefs" : true,
		".settings" : true,
		"ProjectSettings" : true,
		"Library" : true,
		"Temp" : true,
		"obj" : true
	},
	"editor.referenceInfos": false,
	"editor.autoClosingBrackets": false,
	"editor.formatOnType": true
}





【C#】Google Cloud Datastoreで祖先のキーを指定して子エンティティを取得

なんかね、親エンティティのことを祖先って言うらしいよ。ancestoreですね。
このことを知らなかったおかげでハマりました。英語力ないorz

接続はこないだの記事参照で。リクエストのとこだけ。
【C#】コンソールアプリからGoogle Cloud Datastoreに接続 - ふるすたっくえんじにあっぽい人の日記


            var queryBody = new RunQueryRequest
            {
                Query = new Query
                {
                    Kinds = new[] { new KindExpression { Name = "子エンティティのKind" } },
                    Filter = new Filter
                    {
                        PropertyFilter = new PropertyFilter
                        {
                            Property = new PropertyReference
                            {
                                Name = "__key__",
                            },
                            Operator = "HAS_ANCESTOR",
                            Value = new Value
                            {
                                KeyValue = new Key
                                {
                                    Path = new[]
                                    {
                                        new KeyPathElement
                                        {
                                            Kind = "親エンティティのKind",
                                            // 取得したい親エンティティのName or Idを指定。
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            };
            var request = new DatasetsResource.RunQueryRequest(datastoreService, queryBody, "データセットID");
            var result = request.Execute();





【Sql Server】ストアドでUpsert

MERGE INTOですね。メモです。
MERGE INTOが使えるのはSQL Server 2008以降だった気がします。

ALTER PROCEDURE [dbo].[Upsert]
	@Id int,
	@Data int,
AS
BEGIN
	BEGIN TRANSACTION;

	    SET NOCOUNT ON;
	
            MERGE INTO HogeTable AS A
            USING (SELECT @Id AS Id,@Data AS Data) AS B
            ON (A.Id = B.Id)
            WHEN MATCHED THEN
	        UPDATE SET Data = B.Data
	    WHEN NOT MATCHED THEN
                INSERT (Id,Data) VALUES(B.Id,B.Data);

	COMMIT TRANSACTION;
END