Cluster にアバターアップロード

標準

FBXの人型アバターのファイルをVRMに変換する方法

参考サイト様 STYLY(こちらも使わせてもらっています)で使う方法

STYLYClusterも、キャラクターはVRMデータで持っていくらしい。。ということで、Blenderで作成→Unityで変換する

1.GithubサイトからuniVRMパッケージをダウンロード

こちらから(2020-07-07現在で、バージョンv0.56.2) releaseページの下方にある、Unity Packageになっているものをダウンロード。

※MITライセンス

2.STYLYあるいは、Clusterで使われているUnityのバージョンで新規プロジェクトを開く

Clusterは 2020-07-07現在 Creator Kitが対応しているバージョン(Unity 2019.2.21f1

3.uniVRMパッケージをすべてインポート

4.Blenderで アーマチュアBasic Human(Meta-Rig)を設定したモデルを作成

FBXでエクスポート

5.Unityにインポートし、Humanoidボーンを適用

6.マテリアルの設定

Shaderは、Standardまたは、VRMに用意されている4つのシェーダーのどれかを使う

7.モデル位置等の確認

・モデルの位置→原点(XYZが全部ゼロ)にあるか

・モデルのスケール→XYZが全部1.0になっているか

・モデルの向き→Z軸方向を向いているか

8.VRMに変換

??? Find duplicate bone names please check model’s bone names あれれ?

【解決】キャラクターの名前とボーンの名前が同じだったために起きたエラー。キャラクターの名前を変更して解決

作者名を記述するとExportボタンが出るので、あらかじめ、Assetsフォルダ内に適当なフォルダを作成し、そこにExport

9.出来上がったVRMプレファブに必要情報記述

10.上記、VRMプレファブをシーンに出し、再びVRM変換

(Assets内保存でなくてよい)

11.Clusterのアバターとしてアップロード

PIFuHDで写真から3D人物モデルを作成する

標準

面白いツールが次から次に出てきて楽しくてしかたがありません^^

紹介記事がこちら

「AIで1枚の人物写真から高精細3Dモデル作成 Facebookなど開発」

元原稿がこちら

「PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization」

DEMOのページにBlenderまでもっていく説明動画があって、わかりやすいです

クラウドベースのプログラム実行環境Colabを使うというのが最初わかりませんでした

1.クラウドにプログラム(プロジェクト)のコピーを作成する

下図に出ている「ドライブにコピー」を選択

2. 編集メニューから「ノートブックの設定」 GPUに変更

おそらく GPUになっていると思うが、確認して保存

3.ホストサーバーに接続する

右側「接続」から「ホスト型ランタイムに接続」を選び、5~6秒待つ

4.一つづつセルを実行していく

① import IPythonのセルを実行

 

② Clone PIFuHD repository の下のセルを実行し、PIFuHDのフォルダ(リポジトリ)の複製をつくる

左側リポジトリを更新すると、フォルダが増えているのがわかる

③pngまたはjpeg形式の画像ファイルを選択してアップロードする(解説動画のときよりももっと簡単になっている)

「ファイル選択」ボタンを押すことで、解説動画のように、一度Sampleimageフォルダに画像を移動しなくても大丈夫になっていた

④ランタイムメニューから「以降のセルを実行 CTRL+F10」を選択して待つ

 

 

5.resultの中に .objファイルが出来ているのでダウンロードし、Blenderにインポート

出来てしまった!

Twitterには、#pifuhd  ハッシュタグで投稿してほしいとのこと

よい結果を得るためのヒント

  1. 高解像度データの準備。1024サイズの学習データを使うので、少なくとも512サイズ以上の画像データを準備する
  2. 一人だけ写っている写真データを使うこと
  3. 正面を向いた立ち姿が望ましい
  4. 全身が表示されている画像がよい
  5. 適度な照明のものを選ぶ
  6. カメラ位置は水平がよい
  7. 背景はなるべく削除したものを使う
  8. 人間のみ。アニメキャラクターではうまく動作しなし(多くの人がチャレンジしているらしいが)
  9. ハッシュタグでTwitter検索してみると、成功例、失敗例がつかめるだろう

 


セル実行途中でエラーが出る場合:

OUFuHD06画像を直接sample_imagesフォルダの下にアップロードし、セルのimport osの部分で イメージがアップロードされていない場合は、デフォルトとして読み込めという命令のところを、そのデータファイル名に書き換えてしまう(ここでは、adam.png

そうしておいて、Configure input data のセル以降を実行する、を「ランタイム」メニューから選択するとよい

じっと待つと、resultsという名前のフォルダが出来てくる。その中の.objデータが求めるものになる。

OUFuHD07

 

Boneをいれる

PIFuHDで1枚の写真から3Dモデル(obj)を作成→Blenderにインポート→BaseMeshのAdultHumanをappend→腕に移植→Tポーズっぽく→FBXでエクスポート→https://www.mixamo.com/

、オートリギング→ダンスを選んだのちFBXでダウンロード→Unityにいれる→Animation Controller作成後、そのダンスモーションを追加

Blender2.83 Grease Pencilを使いたい

標準

2.83 Grease Pencil マニュアルページ

Grease Pencil

  • 伝統的なカットアウトアニメーションやモーショングラフィックスなどが作れる(描ける) 描画モード、編集モード、スカルプトモードを切り替えて作業する
  • オブジェクトパネルから描画(Visibility)の中に、照明利用(Use Light)項目が追加された。2D描画オブジェクトに光をあてることができる
    • 2Dのレイヤーについても理解しておくとよい。上から下に描画される(レイヤー上が手前に)。
    • オーバーレイ表示のところに、レイヤーを薄くするコントローラもあるので、不必要なレイヤーを薄くしておくとよい
  • 構造(Structure) 3つの基本要素 ポイント、編集ライン、ストロークを持っている。
    • ポイント (ここでいうポイントとは、メッシュでいうバーティスと同じ意味)
    • 編集ライン ポイントがつながったライン
    • ストローク ポイントと編集ラインがグリースペンシルマテリアルでレンダリングされたイメージをいう
  • 基本図形(プリミティブ) オブジェクトモードでShift-Aでグリースペンシルを追加するとき、3つのプリミティブから選ぶ
    • ブランク~ストロークなしの追加
    • ストローク~単純なストロークつきで追加 2Dレイヤーとマテリアルが追加される
    • スザンヌモンキー 2Dレイヤーとマテリアルが追加される
  • 選択 編集モード ポイント選択、全ストローク選択、ストローク交点までの間のポイントを選択(ホットキーは1,2,3)
    • Box選択、C選択、All選択、選択反転など使える
    • 編集モードでは、L またはCtrl-Lでリンクした部分(または全体)を選択できる
    • Shift-Lで、反対側選択
    • Shift-G で、グループ選択>レイヤー(同じレイヤーにあるポイントやストローク) または>マテリアル
    • Select Vertex Color
    • Select First/Last
    • Select More/Less
  • Multiframe
  • Properties
  • Modifiers
  • Visual Effects
  • Materials
  • Animation

 

Tomさんのチーズ

標準

Tomさんの紹介動画をトレース

WorldにHDRIテクスチャを持ってくる

HDRIHaven サイトが便利とのこと 中サイズ(2k)をいくつかダウンロードしておく

例えば、今回はINDOORから選ぶなど。

オブジェクトのテクスチャは、CC0テクスチャサイト がよいそう

CTRL+Shift+Tでまとめて設定ができる(Node Wranglerアドオン) 今回は、カラー、ノーマル、ラフネスマップ追加

レンダリング設定の、アンビエントオクルージョン、ブルーム、スクリーンスペース反射をチェック

チーズの影は、立方体サイズを下げて(128など)エッジをソフトに演出

Oculus Quest HandTracking その2(マニュアル)

標準

その1で、親切な解説に沿って、動くことが確認できたので、Oculus マニュアルを読むことにする

Oculus ドキュメント

 Unity開発者ガイド インプット項目

  • OVRInput
  • OVRBoundary Gardian SystemAPI
  • Haptics
  • HandTracking

システムジェスチャー(予約済みジェスチャー)

コントローラのOculusボタンを押すのと同じ操作~手のひらを開いた状態でヘッドセットの上方向に手を上げた後、人差し指でピンチ操作をする。その状態が進行中であることを、手のマテリアルを別の色にしたりハイライトを使うなどして視覚フィードバックを提供することが望ましい。

その間は、カスタムジェスチャー処理を一時停止すること。

ユーザーがシステムジェスチャーを実行しているかどうかをチェックするには、

OVRHand.csからIsSystemGestureInProgressプロパティを呼び出す