2017年10月19日木曜日

Power Chute Data Serviceが重い対策


SteamVRを起動すると、アプリケーションが遅くなっています云々がでるので調べてみました。


タスクバーを見ると「Power Chute Data Service」が常に15%~20%前後で稼働。

これはAPC製無停電電源装置用のプロセス。しかし常時この負荷はいかがなものか・・・。


と、いうことでこのプロセスを止めることで解決を試みます。

ちなみにこのプロセスを止めるととタスクバーのAPCアイコンがエクスクラメーションマーク(!)になったりしますが、停電時のバックアップ切り替えには支障ないので。


手順


まずプロセスを止めます。
  1. CTRL+ALT+DEL でタスクマネージャを開く
  2. タブの「プロセス」をクリック
  3. 一覧から「PowerChute Data Service (32ビット)」を見つける。
  4. その行の上で右クリック>タスクの終了 で止める。
 次にOS起動時に自動起動しないようにします。












  1. タスクバーのスタートボタン 右クリックメニュー > コンピュータの管理
  2. 左列から 「サービスとアプリケーション」
  3. 一覧から APC Data Service を見つける
  4. その行の上でダブルクリック。
  5. 「スタートアップの種類」を手動に変更。「適用」クリック。
  6. 「OK」で閉じる。




再起動して確認してみます。


  1. CTRL+ALT+DEL でタスクマネージャを開く
  2. タブの「プロセス」をクリック
  3. 一覧から「PowerChute Data Service (32ビット)」が起動していないことを確認する。








最近忙しくて更新がかなり滞ってます・・・うーん。

任天堂スイッチも買えたは良いけど、いまいちやりたいゲームが少ない感(ボソ。


2017年8月20日日曜日

Blenderでサッカーボールのようなものを作る

Blender2.78c でサッカーボールぽいモノを作るメモ。

※2.78cはプラグインの様相が変わったようで2.72とは少し異なるようなので。

環境

Blender2.78c


準備

まじめに作ると甚だ面倒そうなのでプラグインを利用。
プラグインは標準装備だが有効にする必要有り。


プラグイン Meah: Inset Polygon の有効化




  1. CTRL*ALT+U で UserPreferences を開く。
  2. 上部のAdd-onsを選択。
  3. 左列のMeshを選択。
  4. Mesh: Inset Polygonにチェックを入れる。
  5. Save User Settings で設定を保存。


ベースモデル作成

#1. 3DViewメニューバーから、Add>Mesh>Mesh Function>Regular Solid




















#2. 左「Transform」パネル下部の Presets から Truncated Icosahedron を選択。





















 #3. Editモードで六角形面の余計な対角エッジを消す




















  1. 六角形面にあるエッジを選択。
  2.  SHIFT+G から Length を選択。
    六角面の対角を全選択。
  3. DELでキー押し メニューから Dissolve Edges


#4. Editモードで五角形面の余計な対角エッジを消す



















  1. 五六角形面にあるエッジを選択。
  2.  SHIFT+G から Length を選択。
    六角面の対角を全選択。
  3. DELでキー押し メニューから Dissolve Edges




  これで一応サッカーボールらしい形状になる。
























白黒塗り

  1. 白にするマテリアルを作る。
  2. 黒にするマテリアルを作る。
    この時マテリアル一覧で、白のマテリアルの下にする。
  3. Editモードにする。
  4. Face選択モードにする。
  5. 五角形の面を選択。
  6. SHIFT+G > Area で五角形の面を全て選択状態にする。
  7. 黒マテリアルをAssignする。




※本当はこの後にもっと「サッカーボールらしくする」加工がありますが、今回はここまで。





参考: Blender Tutorial: Soccer Ball with Stitching


2016年12月11日日曜日

Blenderが何かと動作が遅くなる対策

久しぶりにBlenderを起動してみたら、何かとプチフリぽく動作が遅くなる現象が発生。

テクスチャを読み込むダイアログが出るまでに数十秒かかったり、いろいろな箇所が遅く・・・。

■環境

OS:Windows10。
GPU: nVidia GeForce GTX1060
Blender 2.77a/2.78a (x64)


■原因

どうもnvidiaのドライバが原因に関係しているようです。
状況としては、
  • 発生を確認したのはここ1~2か月位。
  • 少なくとも最近アップデートしたドライババージョン376.19では発生を確認。頻度高。
    たまにBlenderがハングアップするときもある。
  • 少し前のバージョンでも発生(正確なバージョン番号失念)。

■対策

nVidiaのコントロールパネルにBlenderを登録することで回避できるようです。

【手順】

  1. デスクトップ上のアイコンが無いスペースで、右クリック>nVidiaコントロールパネル でnVidiaのコンパネを開く。
    ※nVidiaのコンパネが開ければ他の方法でも可。
  2. nVidiaのコンパネを開いたら、左列のツリーで 3D設定>3D設定の管理 をクリック。
  3. プログラム設定のタブをクリック。
  4. 追加 をクリックしてBlender.exeを選ぶ。
    又はフォルダごと指定可能。
  5. 適用 をクリック。
    「カスタマイズするプログラムを選択する」のプルダウンで登録されていることを確認する。
  6. PCを再起動。


今のところこれで改善しているので、しばらく様子見です。




2016年10月26日水曜日

HTC VIVE で Euro Truck Simulator 2 をプレイする方法

HTC VIVE で Euro Truck Simulator 2 をプレイする際、若干設定が必要だったのでメモ。


VIVEのセットアップはできている前提として、
 

  1. SteamVRを起動する
  2. デフォルトではここでSTEAMクライアントが自動起動する。
    起動しなかった場合は、手動でSTEAMクライアント起動。
  3. STEAMの「ライブラリ」 で 「Euro Truck Simulator 2」行の上で右クリック>プロパティ選択。
  4. 「一般」タブで「起動オプションを設定」クリック
    起動オプション欄に次を記述してOKクリック。
    -openvr
  5. 「SteamVRが有効なときはデスクトップゲームシアターを使用する」のチェックを外す。
    ※PC画面が出なくなる。VIVE画面にのみゲーム画面が出る。
     フレームレート的にもPC画面はOFFの方が良い。
  6. 「ベータ」タブをクリック。
  7. 「参加希望のベータを選択してください:」のプルダウンから、
    oculus - Experimental Oculus support(1.4.0) - 1.25
    を選択する。
  8. ライブラリから、Euro Truck Simulator 2 起動。
    この時、
    「Euro Truck Simulator 2 はVRをサポートしていません。デスクトップ上に出現し、VRパフォーマンスに影響を及ぼすかもしれません。」
    と出てくるが、「OK」で進む。
  9. これでPC画面には何もでませんが、VIVE画面にVRで表示されます。


他気づいた点等

  • 結構酔う。※PC性能、個人差諸々有り
    3D耐性はかなり高い方なのですが・・・結構きました。
    他のルームスケール系ソフトは全然酔わなかったので、体感動作が無いのもやはり一因かも?
    あとグラボの性能がいまいちなせいもあるかもしれません(フレームレート不足的な問題)。
  • グラフィックがちょっと荒い。
    内部解像度を上げるか調整すれば改善しそうですが、手持ちグラボでは限界な様子。
  • ハンドルでの操作おすすめ
  • 途中の操作系がキーボード、マウスを使う
    VRですべて操作できないので少々面倒。




PSVR、Oculus rift諸々もかなり体験してきましたが、個人的にはVIVEの Light Houseが機能的に素晴らしすぎる感。
とはいえ今後は物珍しさよりも良質なコンテンツ勝負に突入していくと思うので PSVR も目が離せません。

2016年10月22日土曜日

リフレクションプローブ


Unity5でリフレクションプローブ(ReflectionProbe)を使うメモ。

使用環境:Unity5.4.2f1

どんなことができるか

室内において、金属などの反射オブジェクトの映り込みを調整したい場合等に有効。

通常反射物は室内でもスカイボックスの影響を受けてしまう。
(基本的にスカイボックスはシーン上のオブジェクトすべてに影響する為)。


そのような際にリフレクションプローブを配置することで室内の風景を映り込ませることで解決できる。
他、車が空下からトンネルに入った際などの映り込みの切り替えなど。



リフレクションプローブ概要

リフレクションプローブを置いた地点から360度視界のCubemapを内部で自動生成してくれる。
Cubemapはスカイボックスで使われている6面ボックスのマップと同じ概念で、自分でCubemapを指定することも可能。
Cubemap生成範囲は指定可能なので部屋の壁、床、天井などを範囲に設定すると良い感じ。

あたかも部屋専用のスカイボックス=Cubemapがあるようになる(ただし実際にシーン上では見えない)。

リフレクションプローブの有効範囲内にあるオブジェクトは、先のCubemapが映り込むようにできる。
結果的に部屋内の景観(壁、床、天井、置物類)が映り込むような状態にできる。

映り込み先の(反射する)オブジェクトは移動するものでも可。

リフレクションの種類指定は3つでコンポーネントのTypeで指定。
  • Baked
    事前に設定されているリフレクション空間から静的な(映り込ませ用の)Cubemapを自動生成してくれる。ただし映り込む周囲景観オブジェクトはstatic限定。
    しかしその分軽量でモバイルでも使える可能性がある。
  • Custom
    ユーザが用意したCubemapを手動で指定できる。
  • Realtime
    static以外の周囲景観オブジェクトも映り込む。動的にCubemapを生成することになる為、負荷は上がる。

主にBakedを使うことが多くなりそうな気がします。 


リフレクションプローブ設置手順(Baked)

リフレクションプローブの設置と設定


部屋の中に設置すると仮定して、


Empty Objectを作る。

コンポーネント ReflectionProbe を追加する。

コンポーネント ReflectionProbe のTypeはBakedにしておく。

これを部屋の真ん中付近に置く。
※この置いた地点を中心に360度視点のCubeマップを自動生成してくれるようになる。
※あえて映り込ませたいようなオブジェクトアイテムがある場合はその中心に配置するとそこを中心にCubemapを生成してくれるので良い感じ。
コンポーネント ReflectionProbe でCubemap生成範囲を設定する。
図中#2ボタン押しでシーン内に調整点がでてくるので、それを掴んでドラッグで調整。



映り込む側オブジェクトの設定

部屋の壁、天井、床などの周囲景観として映り込ませたいオブジェクトの設定。

オブジェクトを static に設定する。


映り込まれる側オブジェクトの設定

  • Mesh Renderer
    Reflection Probes: BlendProbes
  • Material
    Shader: Standard シェーダー使用(リフレクションプローブ対応のシェーダー要)
    Reflections: チェック入れSmoothness: 1  ※1に近いほど映り込む。
    Metalic: 1 ※1に近いほど鏡面反射な映り込みになる。





追加補足

・CubemapのBake(?)に結構時間がかかる。
多分CubemapのBakeだと思われますが、生成に結構時間がかかる。
Unityウィンドウ右下ステータスバーにさりげなく進行状況が出てくるのでチェック。
その間もエディタは使えるし再生もできる。ただし再生してもまだ反映されてないので注意。
Bakeが終わるまで気長に待つしかなさそう。
※作業中はいろいろ間引いて高速化は可能だが、最終微調整はどうしても時間がかかる。

・リフレクションプローブが複数ある場合、近い方が優先してブレンド。

・1つのリフレクションプローブだけ映し込みたい場合は、そのオブジェクトの Mesh Renderer の Anchor Override に そのリフレクションプローブのオブジェクトをドラッグ&ドロップする。ないしはプルダウンで選択する。

・映り込ませる(反射)オブジェクトは staticである必要はないので移動できる。
ただし映り込み方に注意(Bakedの場合)。
リフレクション空間に突入すると映り込むようになる。
その際、そもそもリフレクションプローブのボックス6面に事前内部生成したテクスチャをリフレクションプローブの中心点で観測したように映り込ませる様子。
なので映り込まされるオブジェクトは、リフレクションプローブ空間内のどこに移動しても同じように表面に投影されている。つまり位置による補正が無いので周囲の景観具合やまじまじ見るとおかしいのがバレてしまう可能性がある。
ただカメラ視点変化での反射には追従してるので一見するとバレにくい。ここが軽量且つそれっぽくみせるコツかも。

・リフレクションしてるオブジェクトはさらに別なオブジェクトでリフレクションしない
  1. リフレクションプローブの効果で既に反射しているオブジェクトAがあるとする。
  2. その近くにもう1つ同じように反射しているオブジェクトBがあるとする。
  3. この時、オブジェクトBにオブジェクトAは映り込める位置にあるとしても、映り込まない。
映り込みは1世代までみたいです(なので軽量とも?)。この辺は利用時注意。
逆に意図的に「映り込ませない」ような演出にもできるかも?
※Blender等ではこのIllumination映り込みの反射回数指定みたいなのを有効化すると結局レイトレーシング計算していたような記憶。軽量化の為、反射ネスト1回まで演算はうなずけます。それでも結構な演算負荷に見えるので。

サンプルプロジェクト

簡単なサンプルをGitHubにアップロード。
使用環境:Unity5.4.2f1。
https://github.com/maruton/Sample_ReflectionProbe

画面右の「Clone and download」からプルダウン内「Download ZIP」で落とせます。



参考URL: リフレクションプローブリフレクションプローブの使用

この記事では「ユニティちゃん」コンテンツを利用した画像を含んでいます。 © UTJ/UCL