2016年01月15日

UnityでQumarionとDK2のテスト

明けましておめでとうございます。といってももう1月も半分終わってますね…。

先月Qumarionが最大55%OFFセールをしていたので、とりあえず買ってみました。Unityと組み合せて使う場合はどうすればいいのか考えていたのですが、ライブラリを公開してくださっている方がいらっしゃいましたので、使わせていただくことにしました[1]。

使い方としては[1]の通りで、Visual Studio Community 2015でコンパイルしたのですが、System.Reactive.Linqのところでエラーがでました。Reactive Extensions (Rx) v2.0がインストールされていないのが原因だったようですので、[2]を参考にインストールするとコンパイルが通りました。

Unity上での使用方法も[1]の通りで問題ないかと思います。今回はMMD4Mecanimを使ったTda式モデルで試させていただきました。注意点としては、RigをHumanoidにする[3]必要があることと、Tポーズ基準にする必要がありますので、適当にTポーズのvmdファイルを作って変換時に指定しました(これはUnity上でTポーズにしたのでいいのだとは思います)。

後はVR Supportを有効化すればDK2で眺めながら人形遊びができるようになります。また、Head Look Controllerなどを有効にしているとそちらも反映されるようです。

実行結果

unity5_qumarion_001.png

操作性としては、Qumarionはポジショントラッキング機能はないようなので、例えばQumarionを手前に動かしてもUnity上では移動しないのと、後ろを見ようとしてY軸中心に回転させても反映されないなどその辺が何とかなるとより人形遊びに近づくかと思いました。

[1] QUMARIONをUnityで使うライブラリを公開しました
[2] 連載:Reactive Extensions(Rx)入門
[3] Unity内でMMDモデルを自由に走らせる手軽な方法

web拍手 by FC2
posted by シンドラー at 02:31 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年10月16日

[Unity 5] FPS移動のためのクラッチ操作のテスト [DK2]

ダンジョン探索系のコンテンツで、視点変更にマウスを使うものがあります。あれはもう駄目ですね。酔います。しかし、後ろを振り向きたい場合、現状のOculus Rift DK2ではトラッキング範囲の限界などもあり何か工夫しないと難しいです。

可動範囲が決まっているマウスの場合、持ち上げている間はマウスカーソルが動かず、領域の端に来たら持ち上げて可動範囲内に戻す、というのを繰り返します。これをクラッチ操作と呼ぶこともあるようです。

今回は、このクラッチ操作を導入してみるテストです。左を向いて、これ以上後ろを向けない場合、キーを押しながら首を前向きに戻す、というのを繰り返す感じです。

仕様
・キーボードを押している間は、Y軸回転を無効化する
 →押した瞬間の向きを保存しておき、押している間はY軸回転の逆回転を親ノードに適用する
 →トラッキングを無効化する操作なので、ユーザが能動的に行わないと酔いそうなため
・キーボードを押している間は、画面を暗くする
 →トラッキング無効化中であることを認識しやすくするためと、酔いを軽減するため

というわけで、カメラに適用するスクリプトは下記のものになります。mainCameraはHMDの位置姿勢で上書きされますので、その親にdummyのGameObjectをつけています。
HMDWalkScript.cs

実行結果

首を限界まで回して、これ以上回らないところでキーを押して前を向く、ということをやっているのですが、動画だとさっぱり伝わりませんね。

感想

慣れると違和感なく操作できました。それ以前に、ただ単に前進しているだけでも体が動いていないのに視点が動くせいで酔ってしまったので、FPSは酔いやすい自分には厳しそうです。以前やったテレポート移動+今回のクラッチ操作が良さそうですかね。適用できるゲームが減ってしまいそうですが。

web拍手 by FC2
posted by シンドラー at 20:40 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年10月15日

Unity 5でG-Bufferのテスト その4

時間が開くと色々忘れて困ったものです。前回のHeadモデルは、1マテリアルの1テクスチャなので問題なかったのですが、一般的なモデルは複数マテリアルで複数テクスチャを使っていて色々大変です。

今回は、マテリアル番号を確認するために、G-Bufferに前回と同様にマテリアル番号を出力して、そのデータを元に特定のマテリアル番号の所だけに特殊な処理をしたり、エッジを表示したりするテストです。

G-Bufferの出力は、前回と同じRenderGBuffer.shaderを使用しています。

手順
1. カメラにDrawEdgeTest.csを割り当てる
DrawEdgeTest.cs
2. ShaderにCustum/DrawEdgeを割り当てたマテリアルを準備する
DrawEdge.shader
3. SSS Matのところに上記マテリアルを割り当てる

後は前の手順なども併せて適当に色々やった気がします。

実行結果


TargetMatNoのところをいじると、マテリアルの境目に赤いエッジが表示されます。これはG-Bufferに出力したマテリアル番号にラプラシアンフィルタを掛けて閾値以上の所を赤色にしていたと思います。

TargetMatListの所に追加したマテリアルは、今回は青色にする処理だけを行っています。このような感じで、処理対象とするマテリアル番号を渡すようにすれば、特定のマテリアルだけに何らかの処理が可能となります。

この辺の処理は重そうで75fpsはきつそうなので、そろそろOculus Rift関係に戻ろうかと思います。

web拍手 by FC2
posted by シンドラー at 01:06 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年09月08日

Unity 5でG-Bufferのテスト その3

続きです。[1]には、16.4にテクスチャベースのSSSについても書かれていて、割とよく使われている方法かと思います。なぜかこれまでやってなかったのでUnity 5とG-Bufferで適当に試してみることにしました。

まずは、テクスチャ座標を展開したような画像を生成します。Vertex Shaderで、テクスチャ座標(0〜1)が取得できると思いますが、これを-1〜1に広げてフラグメントシェーダの頂点として渡せばよい、ということになります。この辺、MMDモデルなどでは複数マテリアルでテクスチャ座標が重なっていたり、顔のテクスチャが半分しかなく、顔の左右で同じテクスチャ座標を持っていたりして、一工夫が必要です。

そこでまずは簡単のために、CGの論文?などでよく見るHeadモデル[3]で試してみることにしました。Unityに.objを読み込むとオブジェクトが複数Groupに分かれていたり表示がおかしかったので、一旦Metasequoiaで読み込んで、1オブジェクト1マテリアルとして出力しなおしました。あとはバンプマップの.pngもうまく読み込めなかったので.bmpにしました。[2]によると16-bit .pngとあるので、それで駄目だったのでしょうか。

MaterialをStandard Shaderにしてレンダリングした結果は下記のようになります。テクスチャが細かいのとGIなのでこれでも十分な気がしますね。

Unity5_sss_001.png

以下手順です。

0. カメラにSSSTest.csを設定、SSS MatにCustom/SSSShaderを割り当てたマテリアルを設定
SSSTest.cs

1. テクスチャ座標を展開した画像をRenderTextureに出力

多分Unityのビルドイン変数や関数を使えばいいのだと思いますが、C#スクリプトからワールド座標や光源の位置や行列を渡しています。[1]では単純に-1〜1にしていますが、上下逆になるのでy座標は反転させています。

UnwrapShader.shader

Unity5_sss_002.png

また、本来はdotNLだけですが、周辺を明るくしたかったのでリムライティングも入れてみることにしました。

Unity5_sss_003.png

2. テクスチャ座標やオブジェクト番号などをG-BufferとしてRenderTextureに出力

最終的にDeferred Shadingで合成するためには、普通にレンダリングした結果と、その座標が持つテクスチャ座標も必要になります。Unityが提供しているG-Bufferには、テクスチャ座標がなさそうな感じでしたので、自前で出力します。ついでにオブジェクト番号や、MMDモデルなどの場合はマテリアル番号なども出力する必要があるかと思います。

RenderGBuffer.shader

Unity5_sss_004.png

Skydomeはテクスチャ座標がないので黒、床はオブジェクト番号を設定していないのでテクスチャ座標のみ、モデルはBlueに1.0を設定しているので、これを使ってSSSする部分とそれ以外を区別します。

3. 1. のテクスチャを適当にブラーして、通常のレンダリング結果と合成

ブラーについては、[1]のものを参考に、[3]のブラーの重み付けを参考にやってみました。本当は複数枚のブラー画像を作成して合成する必要がありますが、手抜きで1枚しか使っていません。あと、歪みの補正みたいな話も[3]には載ってますがそれもやってません。

SSSShader.shader

ブラー画像はこんな感じです。

Unity5_sss_005.png

そういえばRenderTextureの背景色を肌色っぽい色にしていたはずなのに、なんで黒色なんでしょうか。その辺含めてバグがありそうですね。

実行結果

SSSなし
Unity5_sss_009.png
リムライティングなし
Unity5_sss_007.png
リムライティングあり
Unity5_sss_008.png
ブラーしたテクスチャ色のみ
Unity5_sss_006.png

[1] http://http.developer.nvidia.com/GPUGems/gpugems_ch16.html
[2] http://graphics.cs.williams.edu/data/meshes.xml
[3] http://news.mynavi.jp/column/graphics/061/

web拍手 by FC2
posted by シンドラー at 15:43 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年09月02日

Unity 5でG-Bufferのテスト その2

G-Bufferの使い道ということで、とりあえず[1]の16.3 Simulating Absorption Using Depth Mapsを試してみようとしたのですが、色々と詰まりましたのでメモしておきます。まだ色々間違いがありそうですが。

1. RenderWithShaderで光源からの深度値のレンダリングはForwardで行う

レンダリングパスを全部Deferredにしていると、OrthogonalではレンダリングできるのにPerspectiveでは動かないという状態になりました。[2]に同じ症状の人がいましたので、Forwardにして対応しました。

2. 深度値のマクロが色々あってどれを使えばいいのかわからない

これもちゃんと一つ一つシェーダのコードを見ていけばわかるんだとは思うのですが、UnityCG.cgincに色々便利関数が定義されているんですがどれを使ってシェーダ上でどれを使えば参照できるのかなどがわかりにくかったです。まだ怪しいので要検証ですが。

3. 右手系、左手系、OpenGL、DirectXなのかわからない

色々な環境に対応するために色々な工夫がされているようですが、座標系がわかりにくかったです。環境設定のせいかもしれませんが、C#スクリプトでMatrix4x4を使う分にはOpenGL系に見えるんですが、深度値の範囲などシェーダ側ではDirectX系になっているようで、G-Bufferからワールド座標の計算などがなかなかうまくいかなくて大変でした。[3][4]にあるように、DirectXを使用する場合には、C#スクリプト側でDirectX用にプロジェクション行列を変換しないといけなかったようです。

手順
1. 平行光源とそれを子に持つサブカメラを追加する
2. 上記サブカメラにはRenderTextureにRenderWithShaderを使って深度値を書き込むスクリプトとシェーダを設定する。この辺りは[5][6]も参考にさせていただきました。
DepthRenderer_002.cs
RenderDepth_002.shader

3.メインカメラにG-Bufferを取り扱うスクリプトとシェーダを設定する。サブカメラの位置は、対象となるThirdPersonCharacterのZ軸方向後ろ上に角度で指定した位置に設定する(Update関数内)。
GBufferTest_002.cs

シェーダでは、G-Bufferでメインカメラで映っているピクセルのワールド座標を計算し、その座標をサブカメラから見た場合のワールド座標との位置差(length)を使って薄いところは明るく、厚いところは暗くするようにする。
TestShader_002.shader

C#スクリプトからマテリアルには、SetTextureやSetMatrixを使うと色々データを渡せて、それをシェーダ側で参照できることがわかりました。

実行結果

スクリプトでキャラクタが移動したり光源の角度を変えてもうまく光源からの深度値が取れるようにサブカメラの位置を制御しています。

gbuffer_test002_004.png

サブカメラの角度を変えると、一応光源の位置に応じた厚みで色が変わります。

0度
gbuffer_test002_002.png
30度
gbuffer_test002_001.png
60度
gbuffer_test002_003.png

[1] GPU Gems Chapter 16. Real-Time Approximations to Subsurface Scattering
[2] Unity Answers - A Problem About RenderWithShader and Camera Orthographic
[3] Screen Space Reflections
[4] Unity Answers - How do I reproduce the MVP matrix?
[5] kode80 - Screen Space Reflections in Unity 5
[6] Unityのオフスクリーンレンダリング
web拍手 by FC2
posted by シンドラー at 01:31 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年08月21日

Unity 5でG-Bufferのテスト

OpenGL+GLSLの頃には、大体G-Bufferを使った遅延シェーディング(Deferred Shading)をやっていたので、Unity 5でやる場合のメモです。Unityも5から遅延シェーディングに対応したはずで、G-Bufferも取得できるそうです[1]。

シェーダ
_CameraGBufferTexture0: RGB拡散反射色、Aは未使用
_CameraGBufferTexture1: RGB鏡面反射色、Aは粗さ
_CameraGBufferTexture2: RGB法線ベクトル(0〜1)、Aは未使用
_CameraGBufferTexture3: 発光とかライティングとかも入ったテクスチャ

ということで、深度バッファはG-Bufferの中には入っていないようです。深度バッファは別枠で指定できるようです[2][3]。

カメラのスクリプト内のどこか
_camera.depthTextureMode |= DepthTextureMode.Depth;

シェーダ
sampler2D _CameraDepthTexture;

というわけで、[4]を参考にさせていただき、GBufferを切り替えるサンプルを作成してみました。

手順
1. 床とStandard Assets→Characters→ThirdPersonCharacter→Prefabs→ThirdPersonControllerを追加
2. 必要ないけれどStandard Assets→Environment→Water→Water→Prefabs→WaterProDaytimeを追加
3. Edit→Project Settings→Player→Rendering PathをDeferredにしておく

Ethanのマテリアルを適当に変更したりした結果
Unity5_gbuffer_001.png

4. AssetsにMaterials, Shaders, Scriptsディレクトリを作成
5. それぞれにTestMaterial.mat,TestShader.shader, GBufferTest.csを作成(名前は適当)

6. カメラにつけるスクリプトGBufferTest.csの実装
GBufferTest.cs

DepthTextureのモードの設定と、後はImageEffectのところでTestMatというマテリアルを適用しているだけです。

7. TestMaterialに割り当てるシェーダTestShader.shaderの実装
TestShader.shader

フラグメントシェーダで各種G-Bufferを取得して表示しているだけです。ぐるぐるなエフェクトは[4]を参考にさせていただいています。

8. TestMaterialのShaderにCustom/TestShaderを割り当てる
Unity5_gbuffer_002.png
ここのTexture Noでシェーダの処理を切り替えます。

9. Main CameraにGBufferTest.csをドラッグ&ドロップして適用する
10. TestMatにTestMaterial.matをドラッグ&ドロップして適用する

以上です。

実行結果

カラーバッファ                     スペキュラバッファ
Unity5_gbuffer_004.png Unity5_gbuffer_005.png

法線バッファ                      光源計算付カラーバッファ
Unity5_gbuffer_006.png Unity5_gbuffer_007.png

深度バッファ                      ぐるぐるエフェクト
Unity5_gbuffer_008.png Unity5_gbuffer_009.png

後、遅延シェーディング自体書き換えたい、という場合はEdit→Project Settings→Graphics→Built-in shader settingsのDeferredのところにBuilt-in Shaderのものが割り当てられているので、自分で書いたものに差し替えたりもできるみたいです。

[1] http://docs.unity3d.com/Manual/RenderTech-DeferredShading.html
[2] http://tips.hecomi.com/entry/2014/03/16/233943
[3] http://www.kode80.com/blog/2015/03/11/screen-space-reflections-in-unity-5/
[4] http://www.slideshare.net/calmbooks/unity-38485570

web拍手 by FC2
posted by シンドラー at 18:00 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年08月17日

Unity 5のStandard Shaderに関するメモ

いつの間にやら8月に入って夏休みすら終わっていました。

Unity 5のStandard Shaderを改変する場合のメモです。適当にやっているのでこの方法でいいのかどうかもわかりません。その他書いてない注意点としては、.cgincだけ変更した場合、.shaderをReimportしないと結果が反映されなかったりしました。MonoDevelopではなくVisual Studioを使えば大丈夫だったりするんでしょうかね。


Standard Shaderとしては改変したものを公開していいらしいので、一応置いておきます。公開に問題がありましたらお知らせください。
CustomShader.zip

web拍手 by FC2
posted by シンドラー at 22:04 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年07月22日

[Unity 5] テレポート移動のテスト [DK2]

酔わないようにテレポート移動しようの続きです。小さいキューブを動かすのも微妙でしたので、SDユニティちゃんに走ってもらうことにしました。キーボード入力でSDユニティちゃんに付けたカメラの位置にテレポート移動します。ステージはDecrepit Dungeonアセットを使用させていただいています。

手順メモ

1. GameObject→Cameraの追加:TagをMainCameraに(Main Cameraがなければ), Field of View:30, Clipping Planes: Near 0.01
2. GameObject→Light→Directional lightを追加(Directional lightがなければ)
3. Standard Assets→Characters→ThirdPersonCharacter→Prefabs→ThirdPersonController.prefabをDrag&Drop
4. Assets→Import Package→Custom PackageでSD_unitychan.unitypackageをインポート
5. ThirdPersonControllerにUnityChan→SD_unitychan→Prefabs→SD_unityChan_humanoid.prefabをDrag&Drop
6. EthanBodyとEthanGlassesを削除
7. ThirdPersonControllerのInspectorのAnimationのAvatarをSD_unitychan_humanoidAvaterに変更

実行してキーボードでSD_unitychanが動くことを確認

8. ThirdPersonControllerにCameraを追加:UnitychanCameraに名前変更
9. Assetsのどこかで右クリック→Create→Render Textureを追加:UnitychanRenderTextureに名前変更, 512x256に変更
10. UnitychanCameraのTarget TextureにUnitychanRenderTextureをDrag&Drop
11. Main CameraにGameObject→3D Object→Planeを追加
 Planeの位置(0.5, -0.5, 1.2), 角度(90, 180, 0), スケール(0.1, 0.1, 0.05), 各種Shadows: Off, Mesh Collider無効, ShaderはToon/Basicなど法線の影響を受けにくいものに変更
12. 追加したPlaneにUnitychanRenderTextureをDrag&Drop

実行してキーボードでSD_unitychanを動かして、SD_unitychan視点の映像がPlaneに映っていることを確認

unity_dk2_003.png

13. GameObject→CreateEmptyを追加:TargetPointに名前変更
14. Assetsのどこかで右クリック→Create→C# Scriptでスクリプトを作成:PlayerScriptに名前変更→Main CameraにDrag&Drop、中身は下記([1]の改変)
PlayerScript.cs
15. TargetPointをMain CameraのPlayerScriptのTargetにDrag&Drop

実行してキーボードでSD_unitychanがメインカメラの向きに移動することと、QとEでUnitychanCameraの上下向きが変わることを確認

16. GameObject→CreateEmptyを追加:Dummyに名前変更、Main Cameraの親にする
17. Assetsのどこかで右クリック→Create→C# Scriptでスクリプトを作成:TeleportScriptに名前変更→Main CameraにDrag&Drop、中身は下記
TeleportScript.cs
実行してTキーでUnitychanCameraの位置にテレポート移動することを確認

実行結果

Planeの背面が映りこんで赤になっちゃいますね。背面は描画しない設定にはなってないんですかね。
感想:
・キーボード入力で自発的にテレポートするためかカメラを急に切り替えても特に違和感はなかった
・右下のビルボードは視野全体からみると小さいのでそこでカメラが動いても(ずっと注視しなければ)あまり酔わない
・マウスでグイーンと視点回転などはないので酔いにくいはず
・自分で歩かないので没入感はあまりないかも

なおUnity 5は使い始めて10日程度なのでスクリプトの書き方とか色々間違っているかもしれません。
ユニティちゃんライセンス

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


[1] 040 カメラの向きに合わせてGameObjectを移動させる
web拍手 by FC2
posted by シンドラー at 06:44 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年07月20日

Unityの勉強

3連休だったので、Unity 5をちょっと使ってみることにしました。目標はMikulusのようなものの作成です。

1. [1]を参考にシーンの作成
2. [2]を参考にMMD4Mecanim等を使用してTda式ミクさんの導入
3. FPSControllerでカメラ移動

Mikulusっぽいものをつくるのに[2]はとても参考になりました。[1]も前半はわかりやすかったです。あとはUnityのVR Supportにチェックをいれてとりあえず完成だったのですが、FPSControllerでの視点移動が微妙でした。

やっぱりDK2使う場合、その場で見回したりする分には問題ないですが、キーボードやマウス操作で視点が動くと酔いそうになります。そこで、カメラをもう一つ追加して、そのカメラを動かして位置決めして、その位置にメインカメラを瞬間移動させることにしました。

4. RenderTexture[3]を追加して、サブカメラから見た景色をメインカメラの子Planeに映す
5. サブカメラを操作して、位置を決める[4][5]
6. 特定のキーを押すと、サブカメラの位置姿勢をメインカメラの位置姿勢に設定
7. 特定のキーを押すと、サブカメラ等を無効化する[6]

実行結果
サブカメラ操作時
unity_dk2_001.png

メインカメラ移動結果
unity_dk2_002.png

参考資料
[1] Getting Started with Unity 5 - eBook
[2] 主婦ゆに!
[3] Unity 5で無料になった機能の使い方(4)
[4] [Unity]カメラ方向によって前方向を決める
[5] UnityをC#で超入門してみる #1 Unity入門の章
[6] Unity: GameObjectの非表示2つの方法と削除
web拍手 by FC2
posted by シンドラー at 20:39 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする

2015年07月13日

Unity 5.1.1f1でAlembicImporterのメモ

今回はMMDBridge[1]で出力したAlembic形式をUnityで使ってみるテストです。Alembic形式の読込みにはAlembicImporter[2]を使用させていただきました。

MMDBridge側の操作
1. MMDBridgeのダウンロード(現在ver 0.65)
2. MikuMikuDanceにコピー(現在ver 9.26)
3. mmdbridge_alembic_for_houdini.pyをエディタで開く→is_use_ogawa = Falseに変更
 (AlembicImporterがogawa形式に対応していない?)
4. MMD/MMDBridgeを使ってAlembic形式で出力(法線、UV出力で1000フレームで2GB程度のファイルサイズ)
5. outにalembic_file.mtlとalembic_file.abcがあるのでAlembicImporter\Assets\StreamingAssets\AlembicDataにコピー
 (StreamingAssetsの中に置かないといけないらしい)
6. outにテクスチャもあるのでAlembicImporter\Assets\AlembicTestDataにコピー

Unity側の操作
1. AlembicImporterのダウンロード
2. AlembicImporter\Assets\Test.unityを開く
3. デフォルトのanimatedXformedMeshを削除
4. Assets→Alembic→importでAlembicData\alembic_file.abcを開く
5. とりあえず再生を押して動作確認→なぜか初期位置にモデルが残っている

alembic_unity_001.png

6. alembic_file.mtlとxform_0_materialを見比べると、マテリアル数が2倍(0〜16までなのに33まである)あるので、17〜33まで無効化(Inspectorの一番左上のチェックを外す)する

alembic_unity_002.png

7. alembic_file.mtlを見てAlembicImporter\MaterialsにMaterial作成とテクスチャの割り当てを行う。Shaderは適当にCustomシェーダを作成(参考[3][4]など)。透過がうまくいかなくてCutOutになった。

alembic_unity_003.png

MMDTransparent.shader (half-lambert + transparent cutout)

8. xform_0_material_○とmaterial_0_○をDrag&Dropで関連付け

alembic_unity_004.png

9. cameraがcamera_xformが優先されてMain Cameraが効いていないのでFPS Controller[5]にする

alembic_unity_005.png

9.1. camera_xformのcameraを無効化(Inspectorの一番左上のチェックを外す)する
9.2. Main CameraをDeleteする
9.3. Assets→Import Package→CharactersでStandard Assetsをインストール
9.4. Standard Assets\FirstPersonCharacters\Prefabs\FPSControllerを画面内のDrag&Drop
9.5. 位置や大きさを調整、上下移動が激しいのでUse Head Bobをオフにする

alembic_unity_006.png

とりあえずこれで踊っているTda式Appendミクさん[6][7]を移動しながら眺められるところまでできました。まぁMMD for Unityなどを使用するのが主流だとは思いますが。

[1] http://mmdbridge.render.jp/
[2] https://github.com/unity3d-jp/AlembicImporter
[3] http://panzersoft.blog.fc2.com/blog-entry-61.html
[4] http://famme-fatale.hatenablog.com/entry/2015/03/18/124410
[5] http://www.sugawara.ac.jp/digital/blog/gamecg-unity-semi/unity-1stscene-03
[6] http://3d.nicovideo.jp/works/td1586
[7] http://www.nicovideo.jp/watch/sm23692832

web拍手 by FC2
posted by シンドラー at 03:14 | Comment(0) | TrackBack(0) | Unity 5 | このブログの読者になる | 更新情報をチェックする