!!!独り言日記 !![OculusRift] 続続:鼻を入れてみる (2015/03/29) 鼻を入れたものと入れないもの(先日のデモプログラムでは鼻を画面下に押しやって見えない位置におきます)で、比較したりしてますが、何かしらの判断のものさしがないと体感でも判断が難しいなぁ。 なお、鼻があっても結構邪魔にならないですね。 無意識に除外してしまっているというか。もし、これで酔い軽減に効果があるとすると革新なんだけど。 もうちと検証してみます。 !![OculusRift] 続:鼻を入れてみる (2015/03/28) http://www.ft-lab.jp/DK2_NoseTest/index.html にて、検証用のプログラム(和室をOculus Rift(DK2)でウォークスルーできる)を用意してみました。Windows用です。 {{ref_image nose_test_01_20150328.jpg}} キーボード操作で、鼻の位置を変えたりサイズ変更したりできるようにしてます。 私のほうでも、果たして酔い緩和に有効か検証してみます。 お時間のある方は遊んでみてください〜。 軽いシーンですので、描画速度の遅さによる酔いは少ないはず。 個人的には、GamePadで方向転換するところも酔いのネックな気がします。 !![OculusRift] 鼻を入れてみる (2015/03/28) 酔いやすいシーンと、酔いに弱い実験体(私)ならお任せあれ!ということで、人体実験検証中。 {{ref_image oculus_nose2_20150328.jpg}} 「画面に「鼻」があれば“VR酔い”しにくい?」 http://www.itmedia.co.jp/news/articles/1503/27/news147.html 桜花一門さん作の鼻データをお借りしてます。 http://ouka.s108.coreserver.jp/html/nose.html twitterはやってないので、どこぞで共有しよう? なお、シーンはGitHubに公開したUnity5プロジェクトの https://github.com/ft-lab/UnityProjects/wiki/walking-the-Japanese-style-room-%28%E5%92%8C%E5%AE%A4%E3%82%92%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%AB%E3%83%BC%E3%81%99%E3%82%8B%E3%83%87%E3%83%A2%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%29 を使ってます。 !![Shade 3D] AOUtil ver.1.1.1公開されました (2015/03/25) Shade 3Dマーケットプレイスで「AOUtil ver.1.1.1」にバージョンアップしたプラグインが公開されました。 http://shade3d.jp/store/marketplace/ft-lab/aoutil/aoutil.html 変更点は以下のとおりです。 * AO計算方式がRay Traceの場合に「減衰距離」を指定できるようにした * 表面材質のマッピングレイヤの頂点カラーシェーダー名を「頂点カラー (AOUtil)」と名称変更 別途、新作プラグインも公開予定です。これらについてはまた情報を出していくことにします。 !![Shade 3D] UVUtil ver.1.1.0申請しました (2015/03/24) Shade 3Dマーケットプレイスに公開している「UVUtil」プラグインをver.1.1.0にバージョンアップ。申請しました。 また公開され次第連絡します。 変更点は以下のとおりです。 *「UVの再配置」「UV自動展開」で、面数が多いとクラッシュする問題を修正 *「UV自動展開」で、UV上の面が重なる場合があった問題を修正 *「UVの再配置」で、「すべての面」チェックボックスを追加 *「UVの再配置」の計算速度アップ 面数が多いとクラッシュした問題は、12万ポリゴンくらいのを「UVの再配置」「UV自動展開」した場合に発生していました。 !![Shade 3D] AOUtil ver.1.1.1申請しました (2015/03/23) Shade 3Dマーケットプレイスに公開している「AOUtil」プラグインをver.1.1.1にバージョンアップ。申請しました。 また公開され次第連絡します。 変更点は以下のとおりです。 * AO計算方式がRay Traceの場合に「減衰距離」を指定できるようにした * 表面材質のマッピングレイヤの頂点カラーシェーダー名を「頂点カラー (AOUtil)」と名称変更 今回のバージョンアップ目的は、閉じた建築のようなシーンでも対応するようにするためのものです。GPU計算の「Disk-Area Approximation」ではすでに対応してますが、まじめ計算のほうもあわせたかったので。 近々でUVUtilもバージョンアップ予定。新しくSVGImporter/Exporterプラグインも登録予定となっています。 なお、SVGは、私の場合はInkscapeとの橋渡しが主なのですが、精密に数値指定でモデリングするためのきっかけ作りとなります。 去年、映画館で「風立ちぬ」みてから零戦にはまりまして、その資料を集めたりしてました。 結構機体の数値も出てるんですよね。では、これをモデリングするには?というのをテーマにしようかと。 !![Unity5] AOテスト (2015/03/20) Standard Shaderのみでの表現。 テクスチャはSubstance PainterでAlbedo/Metallic/Normalをペイントして出力。 AOマップはShade 3Dで作成。 あ、Substance Painter 1.3ではAOマップも作れるようになりましたね。また検証せねば。 ↓AOなし {{ref_image unity5_ao0_20150320.jpg}} ↓AOあり {{ref_image unity5_ao1_20150320.jpg}} ↓AOあり + Image Effect(SSAO + Tonemapping) {{ref_image unity5_ao2_20150320.jpg}} SSAOについてはスクリーンベースのAOですが、ベタに採用すると暗さが目立ってしまいますのでほんの少しの効果としてつけてます。 Tonemappingは、全体を落ち着かせる効果(hdrなレンダリング画像からどの範囲を選び取るかの調整)。 Image Effectは、Editorで実行した(もしくはGame画面)でしか効かないと思ってたのですが、一部は編集中でも効くんですかね。 SSAOはGame画面上でないと効かない感じではありました。 !![Unity5] 和室ウォークスループロジェクト (2015/03/15) GitHubの以下にアップしてみました。 https://github.com/ft-lab/UnityProjects/wiki/walking-the-Japanese-style-room-%28%E5%92%8C%E5%AE%A4%E3%82%92%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%AB%E3%83%BC%E3%81%99%E3%82%8B%E3%83%87%E3%83%A2%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%29 上記Wikiページの先頭にリンクがありますので、そこからたどれます。 なお、Unity5の標準Assetを使用してますので、メインメニューから * [Assets]-[Import Package]-[Effects] * [Assets]-[Import Package]-[Characters] を選択して、ImageEffectsとCharactersのAssetをインポートするようにしてください。 Unity 5で動作します。Personal版(Free版)でも確認できます。 !![Unity5] Light Probe/Reflection Probe (2015/03/15) Unity 4.xでは、なんだかめんどくさくて手を出してなかった「Light Probe」(Pro限定機能)、Unity 5(Personal版ではFreeで使えるようになった!)ではえらいわかりやすくなってました。 室内の照明では必須ではありますね。映り込みは「Reflection Probe」を使用。 {{ref_image unity5_room_02_20150315.jpg}} これは、特定範囲のライティング(輝度)や映り込みをあらかじめ計算しておき、近辺にある物体や動くキャラクタにリアルタイムに反映する機能になります。 オフラインレンダラ的に言えば、イラディアンスキャッシュみたいな機能ですね。 ↓鏡台の反射はReflection Probeの効果 {{ref_image unity5_room_01_20150315.jpg}} とりあえず、こんなところでGitHubにアップしてみることにします。 !!小物モデリングいろいろ (2015/03/15) サンプル的なシーンを配置して検証する場合、いろいろモデリングデータがほしかったりするので量産中。 {{ref_image unity5_01_20150315.jpg}} 個人的な趣味もあるのですが、日本の昔ながらの小物/インテリアがいろいろほしかったりして、以前から作って貯蓄してたりします。 このUnity5のデモプロジェクト自身はGitHubに公開予定ですが、形状データはいくつかパックにしてShade 3Dのマーケットプレイスに、とりあえずはテンプレート的においておきたいので無料で公開しようかな。 個人的にはこういう小物がジャンル分けされていて、自由に(もしくは有料で) 購入できる場、を期待してたりする。 リアルタイム/ゲーム用だと * 原点は(0, 0, 0)にして、1つまたは複数の形状をポリゴンメッシュで配置。これを1つのshdに保存する。 ** Shade 3Dはポリゴンメッシュの中心の概念がないので、1つのshdに複数形状を入れて利用って、個人的には他ソフト連携目的だと使いにくいんです。 * 形状のサイズに注意。Shade 3Dだとmmで実寸に統一のこと。 * マテリアルを共有しやすくするためマスターサーフェスでユニークな「英語名」をつけておく * AOマップを使う場合(staticなオブジェクトが多いと思うけど、動的なのでも使う可能性あり)は、これはマテリアルとしては形状と固有になるので形状ごとにマスターサーフェスを割り当てる必要あり。 など、いくつかルールを設けたほうがいいかな。 !![Shade 3D] [Unity] AOの説明用動画 (2015/03/14) AOって何?が、なんとなくShade 3Dの外の世界を知らないとわかりにくいかも、と思ったのでいくつか動画を作ってみました。 ↓Shade 3DでAOマップを焼き付けた状態でウォークスルー {{h264player http://ft-lab.ne.jp/files/movie/shade3d_walk_20150314.mp4,width=640,height=480}} ↓Unity5に持っていって、天井と壁のAOの影響を調整した {{h264player http://ft-lab.ne.jp/files/movie/unity5_ao_20150314.mp4,width=800,height=600}} ↓Unity5に持っていって、壁のAOの影響を調整した {{h264player http://ft-lab.ne.jp/files/movie/unity5_ao_02_20150314.mp4,width=800,height=600}} !![Unity] Unity5 Pro (2015/03/14) 私はUnity 5 Pro版のライセンスで使ってるのですが、最近出たPersonal版(Free)と機能は同じです。 太っ腹ですね。ですので、「ポリゴンメッシュでキャラクタを作成(マルチテクスチャ 編)」(http://shade3d.jp/store/marketplace/articles/polydecharacter/multitexture.html)で書いた内容は、全部無料で試せます。 Unity5のstatic形状のlightmap的なGI自動計算に関してはStandard Shaderでなくても使えますので、この連載記事でダウンロードできるAOマップを使えるShaderはそのまま利用できますよ。 作成中の和室のウォークスルーデモは、そのShaderを利用してたりします。 (個人的には、AOマップについては 2つめのUVを使うことが多いので、Standard Shaderはちょっと厳しいんです) さて、じゃあUnity 5 Pro版を買った方は損してるかというと、どうも救済策はとってくれてるようで。 「Unity Asset Store Level 11」というサービスが開始されてました。 http://japan.unity3d.com/blog/?p=2123 一部のAssetが無料、もしくは特価で購入できるようです。 木を購入して配置。SpeedTreeのですね。 {{ref_image unity5_speedTree_20150314.jpg}} ただ、木についてはstaticにするとGI計算が走って結構待たされるので、今後はlightmap staticだけ解除したほうがよいのだろうか、、、。 !![Shade 3D] プラグインの予定 (2015/03/14) ! AOUtilプラグイン AOUtilプラグインはGPU対応しましたが、「減衰距離」のオプション、これはRayTrace方式でも使えたほうがいい気がしてます。 Unity5で和室のウォークスルーやってるんですが、建築の場合、閉じた空間になることも多く、この場合にAO計算すると減衰がないと真っ暗になってしまうのですよね。 でも、「減衰距離」があれば打ち切りがあるので閉じた空間でも隅だけ暗くなります。 というのが結構使える場合もあるので、RayTrace方式でも「減衰距離」を使えるようにしようかと。 ! UVUtilプラグイン *「UVの再配置」機能で、選択面のみに適用させたいことがあったので対処予定 *「UVの自動展開」機能で、面が重なる場合もあるのでこのあたり調整 ! SVG Importer/Exporter(新) 今月末には申請したいところ。 * Qtを使う重い場所は、今回は見送ろうと思います(SVG Import時に、SVGデータを画像にする機能で使ってました) * 自由曲面での陰線は今回は見送り ! モーション関連(新) 今のモーションウィンドウだと、ボーン制御が他ツールと異なって難儀する点があるので、ラッパー的なUIをプラグインで設けようと思ってます。 モーションについては長期戦になるかと。 あ、検証用にMaya LT 2015(Subscription)購入しました。体験版で結構使ってたりするのですが、もうちょっと研究したかったので。 モーション関連のプラグインを、MMD Exporterと連携できるようにする予定です(足りない機能の補充を別プラグインで行います。今現在はブリッジ機能として、、、)。 他、木とかTerrainとかKinect関連とかいろいろありますが、今年徐々にですね〜。 Unity5の和室ウォークスルーのデモは、優先度高めでやってます。 4月にはUnite 2015 TokyoというUnityの一大イベントがありますので、それまでには(別に何か発表するとかはないです、あくまでも気分的なマイルストーン)。 !![Shade 3D] ポリゴンメッシュでキャラクタを作成(マルチテクスチャ 編) (2015/03/14) Shade 3Dの「ポリゴンメッシュでキャラクタを作成(マルチテクスチャ 編)」の記事が公開されました。 http://shade3d.jp/store/marketplace/articles/polydecharacter/multitexture.html FBXでデータをUnityで渡すときと、Unityに渡した際の複数テクスチャや複数UVを扱う方法を説明しました。 ほとんどUnityの説明で、Shade 3D公式で書いていいのかという微妙なラインですが(^_^;; さて、年末から書いていた「ポリゴンメッシュでキャラクタを作成」はこれで最終回です。 読んでいただいた方、短い間でしたがありがとうございました。 Shade 3Dだけではなく、他のツールとの連携は今後も大事になってくると思います。 その説明、というのはいままでなかなかなかったのですが、これで選択の幅が広まれば私としてもうれしいです。 また、何かプラグインを作ったりShade 3Dの魅力を伝えることがありましたら、ひょこっと書くことができればと思っております。 後、今月日記に書いていたUnity5での和室のウォークスルーについては、Unity5の魅力を存分に伝えたいということで連載記事ではさすがにまずい気がしましたので、別途でGitHubなどでプロジェクトソースごと公開できればと考えています。 シーンやAOはShade 3Dで作ってますよ。建築に関しては、Shade 3Dではもっと詳しい方がいらっしゃるかと思いますので、「よし、おいちゃんが記事書いたる!」という方いらっしゃいましたら、マーケットプレイスでぜひ記事投稿などチャレンジいただければ。 このあたりのプッシュは幸いなことに個人プレーではなく、今後のShade 3D(本体側)にも少なからず影響を与えることにつながりますので(私も大いにフィードバックさせていただいております)、いろいろきっかけにできればと思います。 別途、マーケットプレイスに出す新プラグインなどの独り言日記に情報も書きましょうね。 !![Unity] 続続:GI的な表現の検証中 (2015/03/09) MaterialやShaderをいじらなくても、それなりに光の回り込みの表現ができてる感じですね。 ↓Unity5でのリアルタイムのGI実験。光をさえぎったり平行光源の向きを変えただけ。 {{ref_image unity5_01_20150309.jpg}} {{ref_image unity5_02_20150309.jpg}} {{ref_image unity5_03_20150309.jpg}} ※ Enlightenの効果は、あくまでもUnity Editorでの編集中のGI処理。 Unity 4.xのlightmapよりも無茶はできる感じでベイクは意識しなくてもよさそう。 ただ、条件としては * staticの形状であること * 背景のIBL(skybox)だけでは二次的な反射が表現できず?別途の光源配置(ここでは平行光源)が結構重要みたい ディテールの細かいところは苦手みたいなので、AOは必須かも。 上記3つの画像はAO Map加えてます。 ↓AOはこんな感じ {{ref_image shade_aomap_01_20150308.jpg}} なお、このUnity5のプロジェクトについてはサンプル的にShade 3Dのshdファイルとともに公開予定です。 !![Unity] 続:GI的な表現の検証中 (2015/03/08) Unity5のStandard Shaderでなくても、PBRは効いているような気がします。Metallicの反射やSmoothnessのざらつきは表現できないみたいだけど。これはEnlightenの機能なのかな?staticにすると効果がかかってました。Unity 4.xまでのlightmapみたいなのが、リアルタイムですね。 ↓Unity5で調整中。AO MapのためにShaderを書いてマテリアルにしてます(Standard Shaderは未使用)。 {{ref_image room_unity5_20150308.jpg}} 上記の場合、障子の和紙の白が周囲に影響を与えるようでした。 !![Unity] [UE4] GI的な表現の検証中 (2015/03/07) Unity5とUE4ともに、PBRを使ったフォトリアルな表現がどこまでできるか検証中。 AOがないと今一歩だったので、どちらもAO Mapは割り当ててます。 モデリングしたデータは、Diffuse用のテクスチャは1つめのUVを使用、AO Map用のテクスチャは2つめのUVを使用。 ↓UE4では以下のようにマテリアルを組んでみました。左下の白いところの色を変えると、AOの影響を調整できます。 {{ref_image roomGI_ue4_02_20150307.jpg}} ↓UE4での表示 {{ref_image roomGI_ue4_01_20150307.jpg}} Unity5のStandard Shaderでは、AOは1つめのUVに固定なのですね。 これだと手間がかかるため、Shaderを作って対応。 StandardではないShaderを書くとPBRからははずれて浮いてしまうかなと思ったのですが、反射以外はごまかせる? ↓Unity5での表示 {{ref_image roomGI_unity5_01_20150307.jpg}} 地面との接地あたりはSSAOでごまかすかな。イメージエフェクトは今回のUnity5 Personal(Free版)でも使えるようになってます。 ↓Unity5でのSSAOはこんな感じ {{ref_image roomGI_unity5_02_20150307.jpg}} SSAOは、スクリーン上でのリアルタイムAO計算の技術です。完全に頼ることはできないですが、リアルさを高めるためのエフェクトとなりますね。 !![Shade 3D] AOUtil ver.1.1 (2015/03/06) Shade 3DのAO処理プラグイン「AOUtil」がver.1.1にバージョンアップしました。 http://shade3d.jp/store/marketplace/ft-lab/aoutil/aoutil.html すでに購入されている方は、バージョンアップはずっと無償です。 今回の対応した点は以下のとおり。 * 頂点AOの計算で「裏面を考慮」の指定が効いていなかった問題を修正 * AO計算方式で「Disk-Area Approximation」に対応(既存の計算はRay Trace式) * 「Disk-Area Approximation」計算方式の場合に、GPU計算に対応 特に、GPU計算は今回の目玉であります。 なお、ちょうどいいタイミングで連載記事もAOについて解説することになりました。 「ポリゴンメッシュでキャラクタを作成(AO 編)」 http://shade3d.jp/store/marketplace/articles/polydecharacter/ao.html どんなことができるのか、というのは記事を読んでいただければと。 AOは、昨今のUnity5やUE4でもまだまだ利用できる効果になります。 次回の記事では間に合うかどうか、Unity5に持っていって面白いことしましょうか。 !![Unity] [UE4] AOを渡すテスト (2015/03/04) ゲームエンジンが軒並み無料化で、GDC 2015は盛り上がってますね。 こちらも早速。 ↓Shade 3Dで以下のようにAO Mapを計算。 {{ref_image ao_1_20150304.jpg}} ↓これを、本日公開されたUnity 5(Personal版は無料!)に持ってきてます。 {{ref_image ao_2_20150304.jpg}} Unity 5では、「Standard Shader」というのに対してAO Mapを適用できる場所が用意されてます。Unity 4.xではShaderを作るかSkyShopのようなアセットを使う必要があります。 ↓これを、UE4(これも先日無料に!)にまずは形状だけ持ってきました。 {{ref_image ao_ue4_no_ao_20150304.jpg}} ↓AO Mapを適用(ただし、Diffuseに乗算しました。アンビエントオクルージョンのノードは存在するのですがまだ理解できてないので)。 {{ref_image ao_ue4_use_ao_20150304.jpg}} ↓こんな感じのマテリアルのノード構成にしてみました。「アンビエントオクルージョン」のところにテクスチャをダイレクトに入れると、Unity 5とは異なるかかり方だったのでこのようにしてます。 {{ref_image ao_ue4_use_ao2_20150304.jpg}} Unity 5もUE4もリアルタイムにGIを計算する機能があるのですが、これはまだきちんと掘れてません。 !![Shade 3D] AO Mapの適用率を調整 (2015/03/01) AOUtilプラグインのドキュメントでは、AO Mapを適用する場合はマッピングレイヤで *イメージ/拡散反射 - 通常 (Diffuse) *イメージ/拡散反射 - 乗算 (AO Map) のように書いていたのですが、乗算時の「適用率」を下げても他ツールのようにAO Mapによる乗算の影が薄くなるわけじゃないのですよね。全体が暗くなってしまいます。 これの解決策がないか試行錯誤したところ、 *イメージ/拡散反射 - 通常 (AO Map) *イメージ/拡散反射 - 乗算 (Diffuse) のように順番を入れ替えて、AO Mapを「通常」の合成に、2層目でDiffuseのテクスチャを「乗算」合成にして、1層目のAO Mapを割り当てたレイヤの適用率を調整すると、意図したレンダリング結果になるようでした。 {{ref_image aoutil_01_20150301.png}} ちょっと変則的です。 ↓たとえば、以下のようなAOを割り当て前の形状。 {{ref_image aoutil_robot_1_20150301.jpg}} ↓AO Mapを割り当て。ただし、影が濃い(これはAOUtil ver.1.1での「Disk-Area Approximation」でAOを近似計算したときに起きやすい)。 {{ref_image aoutil_robot_2_20150301.jpg}} マッピングレイヤの1層目にAO Mapを「通常」合成で割り当て、2層目にDiffuseテクスチャを「乗算」合成で割り当て。 1層目のAO Mapを割り当てたレイヤの適用率を若干下げる。 ↓以下のようになりました。 {{ref_image aoutil_robot_3_20150301.jpg}} Shade 3Dの表面材質のマッピングレイヤでは、Substance Painter/Substance Designerなどとはちょっと乗算の仕様が異なるため、ご注意ください。 また、UnityではDiffuseは1つ目のテクスチャ、AO Mapは2つ目のほうが自然な気がしますので(Shaderでどうとでもなるけど、それを意識して書かないといけない)、あくまでもこれはShade 3D内の回避策と考えていただければ。 「ポリゴンメッシュでキャラクタを作成」の連載記事ではこのことも書くようにします。 !![Shade 3D] 続続:木について (2015/03/01) 記事向けのAO解説用にシーンを作ってたけど、導入のAOとしての説明ではちとわかりにくいのでボツにしたやつをせっかくなので出しておきます。 ↓レイトレーシングで3秒。 {{ref_image grasses_01_20150301.jpg}} なお、こういう木や草のある自然シーンではAOがないと表現が難しいかと思います。