鶴岡旅行1日目
順不同
市内も結構見所あって良かった
10kmぐらい歩いて回ったけど、いい場所が多くてあんまり苦にならなかった
iPad proを買った
iPad proを6月ぐらいに買いました.主な用途は①論文を効率的に読む,②ゼミや授業のメモを取るです.
今のホーム画面はこんな感じです。
論文はMendeleyで管理して、iPadで読むときはPaperShipを使っています。MendeleyのiPadアプリでもPDFを読めるのですが、手書きのメモをかきこめないのと、たまにアプリが落ちてしまうことから、課金してPaperShipを使うことにしました。
その他のノート、メモはGoodNotesを使っています。Noteshelf 2も買ったのですが、手書き文字検索ができるという点でGoodNotesを使い続けています。これがかなり便利で、今まで裏紙を使っていたものが電子的に管理できるのでとても便利です。
Smart Keyboardも買いました。あまりいい評判を聞かない製品です。使ってみた感想としては、ペラペラ感が拭えないけど、画面をキーボードが侵食するよりはマシかな、といった感じです。タイピングがしやすいとはお世辞にも言えないですが、ゼミで画面を見つつメモを取るには外部キーボードが不可欠です。このエントリもiPad with SmartKeyboardで書いています。
SteamVRで400や308のエラーを解決するまでにやったこと
HTC VIVEを使おうとして,SteamVRを起動したら一時間前にはなかったエラーコード308のエラーが出ました.HMDを再起動したら今度はエラーコード400.原因は結局不明でしたが,同じような症状の方の参考になればと思い記録を残します.発生前は1ヶ月ぐらい正常に動作しているように見えました.
環境
ネットの解決手法をためす
とりあえずググってRedditやSteamのフォーラムにあったのが
といった感じでした.
やったこと&おきたこと
自分の行ったこととその結果を時系列に載せます.
- 再起動(SteamVR, PC),USBドライバの削除,SteamVRの再インストール
- NVIDIA Geforce Experienceの更新
- GPUドライバの更新
- LINK BOXとグラボ間のHMDIケーブルの向きをタグに合わせる
LINK BOXとPCを繋ぐケーブルにはタグが付いており,それに合わせて配線し直しましたが効果は不明です.
ここまでしたらエラーの内容が変わり,エラーコード(-202)が出ました.
- ダイレクトモードを有効にしてSteamVRを再起動
- ディスプレイにHMD用の映像(赤い)が表示される
- SteamVRが応答なし
- タスクキル
- エラーコード308
なんかエラーが変わって進捗があったと思いきや,結局元に戻りました.あきらめて全部アンインストールしました.
- SteamとVIVEアプリを再インストール
- 再セットアップ時にUSBドライバが何度か失敗
- 何回かやったら成功
USBドライバのあたりでこけてるのがとても怪しいです.ここまできたら正常に動作し,Unityで実行したアプリも問題なく見れました.
感想
原因不明な不毛な戦いでした.
追記(2018/09/26)
また308のエラーが出ました。今回はPCの再起動だけで直りました。どうやらViveに内蔵のカメラをPCに繋げるUSBのドライバに問題がありそうですね。
g++でBus error: 10が出る時の解決法
MacでC++でコードを書いて,g++でコンパイルして実行ファイルをエラーなく作成していざ実行してみたら.こんな出力が出た.
Bus error: 10
なんだこれはと思いググってみたがよくわからないのでいろいろ見てたら原因がわかった.
とりあえず自分のコードで間違っていたのは二重for文の内側でi++してたとこであった.
こういうのってセグフォになるんじゃないかと思っていろいろ試したら,配列をグローバルに宣言したかローカルに宣言したかでエラーが変わることに気がついた.下記のコードは実行すると違うエラーが出力されるが変わっているのは配列Aの宣言位置だけである.
C++でSegmentation fault: 11とBus error: 10が出てしまうときの一 ...
Bus errorは今回初めて出会ったので暇になったら()調べてみます.
Unite 2017 備忘録
Unite 2017 Tokyoに行ってきました.
二日間朝から晩まで座っていたため,ケツが痛いです.
各セッションでスライド,動画が公開/未公開のものがありますが,自分の参加したセッションのメモを残しておきます.
1日目
プリキュア
Unity導入について
- 「魔法使いプリキュア!」EDはmade with Unity
リアルタイムの可能性を映像作品に
- 今まではMaya
- レンダリング工程のコスト低減
- 週替わりのED
- VR/ARコンテンツへのつながり
モデリング-> アニメーションレイアウト-> LookDevLighting
Maya -> Unity
カット割に依存しないアニメーション
- カメラのロケーションを変えることで複数のバリエーションが
- Maya/Unity比較
- MAya
- 1frame/12min
- 1cut/12day
- Unity
- 1frame/5sec
- 1cut/15sec
- 48倍効率化!?
- MAya
- 従来のED:長期コストをかけて半年放映
- 今回のED:リアルタイムの導入→視聴者とのコミュニケーション
- 多角的な放映
- アニメに入れる
Unityシェーダー開発
NPRについて
- EDにおけるシェーダー
- 単一のシェーダー→できるだけ汎用的なNPR
単一のシェーダーで様々なマテリアル表現
- HakkinenShader
シェーダーで要素やディテールを追加
セル表現とシェーダー
- 標準色/影色/二号影
- テクスチャ及び単色で指定
- 落ちかげ/受け影
- 特定部位への影キャンセル
- 輪郭線
- 線色と線幅+カメラの焦点距離に合わせた線の太さ調整
- リムライト
- スクリーン/加算
- ハイライト
- Yグラデーション
- 「パラ」を出せる
反射/屈折
内部処理
- 法線情報/UV座標/視点ベクトル/ライト方向ベクトルによる
- 標準色/影色/二号影
所感
- 絵を即座に確認出来る
- ストレスフリーの作業
- ゲームエンジンではシェーダのウェイトが高い
- デザイナーがシェーダーを書く重要性
- デザイナーが欲しい機能を本人が実装
- 敷居が低い
- DCCツールのマテリアル表現より自由度が高い
- 絵を即座に確認出来る
ワークフロー・パイプライン開発
MayaからUnityへ
アニメーションの移植
- FBXでボーンを
- ファイルサイズが小さい
- Deformerが限定される
- Alembic(頂点位置をキャッシュ)
- ファイルサイズが大きい
- 問題ないと思ったが,長い時はプロジェクト開くのに30分
- HDDだったため,SSD推奨
- Deformerを限定しない
- インポートにAlembicImporterを使用
- ファイルサイズが大きい
- FBXでボーンを
マテリアルの適用
- マテリアル付きメッシュをインポート
カメラのコンバート
- UnityJapanの小林さんのスライド
Shotgunとの連携
- assetのインポート等の手間を短縮
- ワンクリックで全て終わり
- 連携前後で差が15分
- シーンの構築で時間の差
- 1/20に短縮
Google Tango/Daydream
- 情報のアクセスしやすさ,使いやすさのため
- Spacial Computing
- 15年ごとの流れ
- 次はVR/AR/MR
- spatially awareな情報のやり取り
- モバイルの普及(3 Billion)
Daydream
- presenceの感覚
- カードボードとOculusの間
- カードボードは1000万出荷した
- information universalyのためのカードボード,Daydream
- 三つのコンポーネント
- 視覚,聴覚,何ができるか
- 見えるべきものが見える,遅延0
- しかしシミュレーションには時間がかかる
- 体の動きから視覚への反映まで20ms以下でないと違和感
- hard,softともにそれをクリアする
- Pixel, Android N
- immersiveな音>ハイポリゴンオブジェクト
- SDKの中で部屋の大きさ等から正確な音を生成
インタラクション
- R model : 実際動きに合わせてVR内で動く
- メタファーを使う
ベストプラクティス
- ユーザの環境:座っているであろう
- 真後ろを見るのは大変
- 移動も大変
- 激しい動きは抑える:期間を短く
- 現実で怖いものは怖い
- 高所,閉所,開所
- オブジェクトに入り込む
- 安全である必要
- ユーザの環境:座っているであろう
Daydream Rendeler
- 動的ライティング可能
Editorでプレビュー
- GPUの解析ツール
Tango
Virtualなオブジェクトをどのようにリアルにするか
実世界をスマホに理解させる
- 人は画像一枚で動ける場所がわかる
3つのハードウェアう
- Depthセンサー
- 広角カメラ(Motion tracking)
- Depthセンサー
Motion Tracking
- カメラがどこにいるか
- Depth Prerception
- 距離,床,壁判定
Area LEarning
- 一度行った場所を覚える
peer inside
- 博物館のミイラの中身を見る
Kudan
- マーカーレスAR
CV技術
特徴
Pepper
- Unityでの実行(Mono)とHoloLensでの実行(UWP)形式が違う
- ライブラリに注意
HoloLens
Mixed Realityの定義
- Physical RealityとVirtual Realityの融合
- ARと何が違うか
- AR:オブジェクトを重ねて表示
- MR:3D空間上にオブジェクトを表示,インタラクションできる,オクルージョン
アプリケーション
Portalで色々できる
- 光の足し算
- 外ではあまり使えない
- holomagisians
1.25-5mの間にホログラムを置くと良い
- 触らせない
- ジェスチャで遠隔操作
- 2Dのウィンドウを出すのは2mが良い
ストーリーが重要
- 誰が使うのか
- 何を表示するのか
- 目的・対象は何か
- Technology Drivenはダメ
- Hololensでの開発が目的では誰も使わない
- Envisioning
日本列島VR/HoleLenz
日本列島VR
- 地図CG
substance materialの問題点
- パラメータ変更時に再生成
- 大きなデータは時間がかかる
- シェーダでの作成に変更
Shader
- Substanceで汎用素材作成->シェーダ
標準Unity Terrain
- 境界部分:terrain stitcher
15度刻みで回転:スティック一回で一回転
メモリに全国を載せる
- TerrainのLOD設定を調整
- 距離が離れたらterrainを消す
- シンプルなメッシュに差し替え
二種類のカメラを用意
- 地形:1unit 1km
- UI:1unit 1m
HoleLenz
- ステンシル
- Gateの指向性
- FOVが狭いので見せ方に工夫が必要
- グラフィック最適化
- MR:同じ座標なのにAにもBにもなる
- 何を捕涌現するかでAR/VR/MRを使い分け
最適化
最適化
- クオリティを維持してパフォーマンスの向上,メモリ削減
- なぜ:ターゲット端末での処理速度
「パレードの法則」
- 8:2の法則
- 全体の数字は,一部分による影響
直すべき処理を見つける
いきなり最適化ではダメ
- 現状の負荷を把握したい
- ゴールの明確化
手順
- 負荷箇所を探す(プロファイリング)
- 直す手段を立てる
- 直す
Unity標準のProfilerで大体分かる
Unityのメモリ2種類
Assetの圧縮も必要かも
ロード時間が長い
- 実は初期化処理?
- Debug.Logは重い→プロファイリングするときはOFFに
AssetBundleを使っている場合
- 同じテクスチャ等を二重読み込みをしているかも
一瞬だけ画面が固まる
- ほとんどGCが走っている
- 特にString操作にメモリをたくさん使っているかも
低いフレームレート
- 60FPSにしたい→1フレームの処理を16.6msで終わらせる必要
- ゲームロジック or 描画処理
- 描画処理の修正を優先
- PCとMobileでは描画処理の差が
- MeshColliderは思い->BoxCollider等で置き換え
- Time -> Fixed ~ :物理判定回数を減らす
- UI処理は頂点計算に時間がかかっている
- uGUIはAnimationしているものは別Canvasへ
BeginSample()で囲んでプロファイラを見やすく
2日目
建築におけるUnity
- BIM(Building Information Modeling)
- 1つの3Dモデルで情報共有
- VDC(Virtual Design and Construction)
- 仮想空間で何度もエンジニアリングを試す
- 情報可視化のためのVR
- BIMデータは重い
- 軽量化していない
- skpで取り込むと比較的良い
- AR:見えない部分を見せる
- 大型の建築:特徴点が少ない
- MR:サイズ感と仮想の融合
PS VR
- PS4向け4K360度動画plug-in
-
- VR空間でプロジェクションマッピング
- VRならではの演出
Unity for PS4
- ほぼUnity
- Building SettingでPS4を選ぶだけ
UnityでのPS VR
- renderScaleは1.4(推奨設定)
PlayMaker
- ストーリーの分岐が目に見えるAsset
- シーンごとに作成
uSequencer
- 開発が止まっている
- UnityのTimelineを推奨
ポリゴン数
- マシュ:10万弱
- VRは二回描画されるので多めに見る
Shader
- Unityちゃんットゥーンシェーダーをもとに
VRコンサルティング
- 奥行きの矛盾
- 常に最前のシェーダーなど
- 画面真っ暗がダメ
- フレームレート
- 60fps死守
- 奥行きの矛盾
デザイン
- モデルとモーションキャプチャはMax
- 小物はMaya
- アニメーション:Mecanim
- エフェクト:Particle System
マシュを可愛く見せるために
- Final IK
- 姿勢と視線:LookAtIK
- これだけだとロボットぽい
- 全モーションに対して
- LookAtIKの変化アニメーションを作成
- 全モーションに対して
- 服と髪の揺れ
- 胸の揺れ
- シミュレーションしてベイク
- インタラクションに関係ない部分
- モーションにベイク
- Final IK
漫才VR
- VR絵コンテの必要性
- 一週間のハッカソンでプロトタイプができるか
-
- HMD内臓マイク
- Julius
- 無償
- 商用利用可
- 深層学習
- オフライン
観客も楽しむ
- 360度動画はファイルが大きい
- commitしない
- metaファイルだけあげる
- 音声の収録を一本化する
- 別撮りだとタイミング合わせの編集が必要
- ハッカソンでは時間が足りない
- MVC(Model View Contololler)
CAD VR
- SYMMETRY
- 可視化のためのツール
- 高速化>コードの可読性
Asset bundle
- AssetBundle Graph Tools
- AssetBundle Browser
東大 知覚
VRにおける触覚
クロスモーダル現象
- かき氷のシロップ
空間知覚
- ほぼすべての感覚を統合することで構成される
- 映像によって三次元的に空間知覚を操作できる
VRは感覚・知覚をHackする技術
ハンドプレゼンス
- 自分らしい手を作る
- 身体所有感(心理学)
動きが一致していれば,自分の手だと思う
- LeapMotionだとトラッキング漏れでプレゼンス低下
コントローラで動きを制限する方法もあり
Proteus Effect
- VRにおけるアバターの身体特性が認知・行動を変える
自分の手の大きさで物体のサイズ知覚が変わる
まとめ
- 「人間が身体を認知する仕組み」はまだまだ未知