korechi’s diary

とあるVR/ARエンジニアのブログ

ブログを移行しました

korechiです。
先日からこれちのPost-itというブログに移行しました。
URLはこちらです。

korechipostit.hatenablog.com

よりAR/VRネタメインの記事を書いていくつもりです。
意図としては、もっと他の人にも読みやすく有益なものを書いていきたいなと。

Karabiner-Elementsを使わないでMacのUSキーボードのキーバインドを変更する

久しぶりの更新です。実に3ヶ月ぶり
そんな久しぶりの記事は、今回新しく購入したMacbookの話をした後、後半でUSキーボードのキーバインドを変更するお話をしたいと思います。

今回購入しましたMacbookPro 13inch 2017モデル こちら!
f:id:korechi:20170619225521j:plain
か、かっこいい。。。

開封の儀をさっさと済ませて、前のMacbookAirからデータの移行作業
と、その前に
新しいMacが届いたらやることがありますね?そう、
キーバインドの変更です!

実は今回、人生初のUSキータイプのMacを購入しました!
そのため、今まで使っていたJISキーボードとはかなり違い、戸惑っています。 もちろん、キーバインドなんぞ変更せずにありのままのUSキーで生活できたら苦労はしないのですが
f:id:korechi:20170619225345j:plain
うーん、さすがに日本語・英語変換キーは欲しいなぁ。笑

それにできればcaps lockとかoptionとかcontrolキーも変更したい(なんでUSキーにしたんだろう笑)
そんな訳で後半は今回行ったキーバインドの変更手順を紹介します

ちなみに今回はKarabiner-Elementsを使用しません
何故なら、Karabinere-Elementsはまだ未完成なのと、入れて使ってみたらキーバインドは変更できたのですが、command+option+escでアプリケーションの強制終了ができなくなりました(バグなのかな?)
なので、Karabinerを使わないでキーバインドを変更したいと思います!

1. システム環境設定 -> キーボード を選択し、右下にある修飾キーをクリック
f:id:korechi:20170619230642p:plain
2. 下の画像のようにキーマップを変更
f:id:korechi:20170619230719p:plain
これでcaps lock, option, controlキーの変更はできました
注意)自分はcaps lockキーを使わないので設定していません。必要な方は適宜別のキーなりをcaps lockに割り当てて下さい
3. 下記URLから⌘英かなをDL
https://ei-kana.appspot.com
4. システム環境設定 -> セキュリティとプライバシー を選択し、アプリを実行
5. 誘導に従ってアクセシビリティを有効にする
f:id:korechi:20170619231229p:plain
これで左commandを押すと英字に、右commandを押すと日本語になります!
以上で終わりです。 これでうまいことJISキーの良さを取り入れたUSキーバインドが完成しました!

pmxファイル(MMD)をunityにインポートする話(Blenderを使っても良い)

PMDファイルとは、樋口優氏が開発した 3DCG アニメーションソフトの1種である MikuMikuDance で扱われるモデルデータを扱うファイル形式の1つです。
主にニコニコ動画で公開されている 3DCG モデルファイルですが、Unity には標準でサポートされていないため PMD ファイルを Unity にインポートするには別のインポーターが必要となります。今回はその手順を2種類紹介します。
MM4DMecahim を使って Unity に MMD を入れられるようにする
mmd-tools を使い BlenderMMD を読み込ませ、それを.blend として保存し Unity に取り込む
この2つです。1つ目は Unity のみで MMD の取り込みが完了するメリットがありますが、Unity 内でごちゃごちゃやらなきゃいけないというデメリットがあります。
これはつまり、 Unity で別のプロジェクトを作成しまた MMD ファイルを読み込みたい場合は、MM4DMecanim を再度 Unity のプロジェクトに入れなければなりません。これは賢くなさそう。(また、筆者はアプリを Android に出力しようとしたところ、マテリアルがうまく反映されずモデルが出力されなかった。。)
2つ目の方法は、Blender を使う手間が加わりますが、Blender
.fbx や *.blend ファイルとして MMD データを出力すれば、あとはそれを Unity にインポートすれば良いだけです。
この方法のメリットは、Blender <-> Unity は標準でお互いにサポートされているため、Unity 側でのモデルデータの動作が安定します。
それでは、それぞれの方法について紹介していきます。

使用環境

Mac OS Sierra バージョン 10.12.2
Unity version 5.5.1 f1 Personal

MM4DMecahim を使って Unity に MMD を入れられるようにする

使用するファイル

MMD4Mecanim (beta)
- リンク
f:id:korechi:20170308203251j:plain
MMD4Mecanim_Beta_20170128.zip をクリックしてダウンロードできます
Ⅳ号戦車D型 PMX モデル
- ピーナッツ野郎が色々頑張るブログinGoogle 様
こちらからダウンロードできます

Unity の準備

ダウンロードした MMD4Mecanim_Beta_20170128 フォルダ内の MMD4Mecanim.unitypackage を Unity にインポートします。
- Unity の Project ビュー内の Assets に .unitypackage をドラッグ

PMX の prefab 化

  1. ダウンロードした PzKpfw4_Ausf_D フォルダを同様に Unity の Project ビューにある Assets フォルダにドラッグします。
  2. *.MMD4Mecanim(生成される) を選択し、Inspector ビュー内のチェックボックスにチェックをいれて”同意する”を選択
    f:id:korechi:20170308204225j:plain
  3. *.MM4DMecanim の Inspector ビュー内の ‘Process’ を選択
    f:id:korechi:20170308204718j:plain
  4. Prefab が生成されます
    f:id:korechi:20170308204544j:plain

BlenderMMD を読み込ませ、それを別ファイルとして保存して Unity に取り込む

使用するファイル

mmd-tools
- ここからzipをダウンロード
Unity version 5.5.1 f1 Personal
Blender 2.78

Blender の準備

基本はここを参考にしてください。
ただ、アドオンを配置するディレクトリが MacWindows で違うため、ここを読んで確認してください。
アドオンのインストールについては上記を参考にすればわかるためここでは省略します。

Unity へモデルデータをうつす

  1. Blender でできたデータを *.blend ファイルとして保存
  2. Unity 側で Assets 下のどこかに *.blend ファイルをドラッグする
    これで終わりです。簡単でしょう?
    たまに、マテリアルがうまく貼られていない時がありますが、その時は仕方ありません。Mesh の shader を貼り直しましょう。

gearVR用アプリ内でVRモードとnon-VRモードを切り分けたかったけど無理だった

参考URL
forums.oculus.com
要はタイトルのことができなかったというお話です。。
VRモードとnon-VRモードの切り替えは結構需要がありそうなんだけどなぁ。でもそれだと、Oculus sotreでアプリを出せばいいのかそれとも Google play で出せばいいのかややこしくなりそう。だからあえてサポートしてないのかもね
ここらへん Google の Daydream はどうなってるんだろうね?
Cardboard 向けアプリは GooglePlay で公開されてたし、そっちの方が問題は少なそうな

Realforce キーボード を mac で使う【OS Sierra用】

今まで HHKB Type-S(JIS) を使っていたのですが、今回 Realforce 91UBK を買いました。そこで、持ってる MacBookAir11 に繋げようとしたら特定のキーが反応しなかったりといろいろ大変でした。(JISキーを買ったけど、mac にはUSキーだと認識されているのが原因だった)
しかも Karabiner を使おうとしたら、なんと Karabiner は OS Sierra に対応していない。。困った
そこで今回は、Karabiner-Elements を使いました。
以下に使い方・インストールの仕方をまとめておきます。

Karabiner-Elements のダウンロード

https://github.com/tekezo/Karabiner-Elementsのページの下の方にある、 f:id:korechi:20170127002651j:plain
青いリンクをクリック。.dmgのダウンロードが始まります。

Karabiner-Elements のインストール

ダウンロードした .dmg ファイルを開いてインストール

Karabiner-Elements を起動

起動します

Devices -> RealForce のみにチェックをいれる

f:id:korechi:20170127002921j:plain

Virtual Keyboard -> Keyboard Type を JIS に変更

f:id:korechi:20170127003114j:plain

Simple Modifications -> Add item を選択して、変更したいキーを登録

f:id:korechi:20170127010124j:plain これで終了!
みなさんも mac で素敵な Realforce ライフを始めましょう。

UnityでgearVR用アプリを作成しビルドする方法

かなり大雑把に書いちゃいます
1. Oculus Utilities for Unity を公式からダウンロードし、Unityにインポート 昔はOculus Mobile SDK に入ってたらしいがいまはUtilitiesにまとめられてる
2. OVR/Prefabs/OVRCameraRigをhierarchyに設置 Main Cameraはじゃまなので非アクティブにしておく
3. GearVRのDeviceIDを取得

$ adb devices
  List of devices attached
  *********     device  
  1. ここに上のdeviceIDを入力してsignatureファイルをダウンロード
    ログインが必要
  2. Unityプロジェクト内のAssets/Plugins/Android/assets/にsignatureファイルを配置
  3. Built Setting を Androidに選択し、CompressionをETC2(GRE3.0)に変更 f:id:korechi:20170119121441j:plain
  4. Build
    Bundle Indentiferなどの登録はすませておこう
  5. Androidに.apkを転送しインストール
& adb install -r ***.apk

Android側のUSBデバッグを有効にしておこう

CentOS に Redis をインストールして C 言語で使う方法

参考記事

  1. Redis のインストール
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
$ yum --enablerepo=remi,epel install -y redis
$ git clone https://github.com/redis/hiredis.git
$ cd hired is
$ make
# make install
  1. テストデータの挿入
# service redis start
$ redis-cli 
set 1 tamura
set 2 tanaka
set 3 senuma
  1. C 言語サンプルプログラム examplesフォルダ下に example.c があるのでそれを使います。
$ cd examples
$ gcc -Wall -o example example.c -lhiredis -L/usr/local/lib -I/usr/local/include/hiredis
$ ./example
PING: PONG
SET: OK
SET (binary API): OK
GET foo: hello world
INCR counter: 1
INCR counter: 2
0) element-9
1) element-8
2) element-7
3) element-6
4) element-5
5) element-4
6) element-3
7) element-2
8) element-1
9) element-0