読者です 読者をやめる 読者になる 読者になる

korechi’s diary

とある大学院生のブログ

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

OSをSierraにしたらsshがpermission deniedになった時の解決法

Sierraにしたらsshでサーバーに接続しようとしたらpermission deniedに!
パーミッションとかは大丈夫そう。調べてみたら、どうもOpenSSHのバージョンがSierraにアップデートした時に自動的にあがってるのが原因みたい

$ ssh -V
OpenSSH_7.2p2, LibreSSL 2.4.1

sshで接続する時に、id_dsa鍵を使ってるとだめっぽい
なのでconfigファイルに以下を追加して解決

# sudo vim ~/.ssh/config
PubkeyAcceptedKeyTypes=+ssh-dss

CentOS6.6 にNeo4jをインストールする

環境構築

Javaのアップデート

まずJava(TM) 8 にアップデートするためにここからLinux X64用のrpmファイルをダウンロードします
その後ターミナルを使ってインストール

$ sudo yum localinstall jdk-8u40-linux-x64.rpm 

Javaのバージョンは以下のコマンドで確認可

$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

また、Javaのバージョンを変えたい場合は

# sudo alternatives --config java
3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
*+ 3           /usr/java/jdk1.8.0_111/jre/bin/java

で変更できる
しかし、JAVA_HOMEの設定が過去のバージョンのままの場合もあるので

# vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/default
$ source /etc/profile.d/jdk.sh

をしてちゃんとパスが通るようにしておく(PCを再起動したらまたsourceしなおす)

Neo4jのインストール

Neo4jのサイトLinux用のtarファイルをダウンロードし、適当な場所に解凍

Neo4jの起動

cd Neo4jのホーム
# bin/neo4j start
Starting Neo4j.
Started neo4j (pid 5034). By default, it is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /home/Tamura/Workspace/neo4j-community-3.0.6/logs/neo4j.log for current status.

Neo4jの終了

$ bin/neo4j stop

Neo4jのテスト

ブラウザから、

localhost:7474

に接続し、username: neo4j, password: neo4j/neo4j としてサーバーにログインします
接続できない場合は、

$ sudo vim conf/neo4j.conf

で、以下を追記(コメントアウトを外す)するとちゃんと接続できた

dbms.connector.http.address=0.0.0.0:7474
dbms.connector.https.address=localhost:7473
dbms.logs.http.enabled=true
bms.security.auth_enabled=false

logの確認

$ vim logs/neo4j.log