【Archive】自作grasshopperコンポーネントの作り方

この記事はxRArchiフォーラムへのhironさんによる投稿のアーカイブです
※xRArchiフォーラムは2019年4月に廃止されました

twitter.com

 ----------------------------------------------------------------------------------------------------------


bloggerに投稿しているgrasshopperコンポーネントの作り方まとめました。

grasshopper内でつくる GHPython ではなくC#での作成です。

visual studio は非商用の個人利用なら無料なので、思ったより簡単に作れます。

 

【Archive】GoogleEarthから3Dモデル生成|フォトグラメトリ

この記事はxRArchiフォーラムへの龍lileaさんによる投稿のアーカイブです
※xRArchiフォーラムは2019年4月に廃止されました

twitter.com

 ----------------------------------------------------------------------------------------------------------

 

GoogleEarthの3Dモデルを使うには・・・とはCG従事者であれば誰もが思う事でしょうか。それをフォトグラメリによって実現(?)した記事です。

注1:フォトグラメリなので元のモデルよりも劣化します。

注2:GoogleEarthの利用は営利目的の場合はこちらを参考に問い合わせが必要ですーが、以下の手順により作られるモデルはGoogleEarthの複製にあたる(通常のGoogleEarthの利用方法外です)ので、使用は個人の範囲に留めていただくのが宜しいかと思います。

※今回制作した新宿モデルもフォトグラメリの可能性を探る中で個人的にトライしてみたものです

■使用ソフト

○『GoogleEarth

○『3DF Zephyr

 Lite版 Steamにて15,380円

 体験版 14日間Aerialライセンス

任意のデスクトップキャプチャソフト

 Windows10であればOS標準機能でキャプチャ出来ます。

任意の動画クロップソフト

 Windows10アプリ『Video Editor 10』手軽。ですが少々動作不安。

 iOSアプリ『Perfect Video
 いったんiPhoneに転送する手間がありますが高性能で使いやすい。

映像編集ソフトAfterEffects
 Adobe使いな人はこちらで。

■手順

1.GoogleEarth

Google Earthを起動しモデル化したい地域を表示。

 2.キャプチャ

Windows10の場合は[Windowsキー]+[G]で「ゲーム バー」が表示されるのでここからキャプチャ可能です。

※初めてゲームバーを使う場合は画質が[高]になっているか確認しておきましょう

設定>ゲーム>ゲームDVRから設定変更出来ます

GoogleEarthで満遍なく、全ての面が見えるように録画していきます。
建物が高い場合は上からのぞき込むように。
高さを変えて2週、+真俯瞰アングルがあれば大体網羅出来ると思います。

3.動画のクロップ

キャプチャした動画から不要なエリアをクロップ。

4.3DF Zephyrで読み込み

新規プロジェクトを作成し、

[ビデオから写真を入力]をクリック。
ドラッグアンドドロップではないです

動画からの静止画切り出し設定画面になります。

[入力ファイル]から動画を指定。

[抽出するFPS]はキャプチャした際のカメラのスピードにも寄りますが、ここでは3.00(1秒間に3枚分生成)としました。ゆっくりカメラを動かしていた場合はもっと小さな値でも良いです。その他の項目は今回はデフォルトのままとしました。

[フレームの抽出とワークスペースの入力]ボタンを押すと静止画切り出しが始まります。

読み込まれたら[次へ]。

較正は不要なのでそのまま[次へ]。

切り出されたカメラの位置を取得するための設定画面です。

[カテゴリー]は"航空"に設定します。

[プリセット]はまずは"デフォルト"としておきます。

次の画面へ進み[実行]ボタンを押します。もしその結果カメラ位置取得エラーがあまりに多かった場合は上記のプリセットを"深い"に変更しやりなおしましょう
(ただし処理にかなり時間がかかります)

完了するとこのようなモデルが表示されます。
低密度点群(仮の点群)と、それを囲うようにカメラの位置が表示されています。

5.高密度点群を生成

現状の点群は仮の低密度のものなので、ツールバーのボタンから高密度点群を生成します。

[カテゴリー]は"航空"に設定。

[プリセット]は求める精度によります。今回は出来るだけ綺麗なモデルを生成したかったので"高精細"としました。

次の画面で実行を押すと処理が始まります。
(カメラの数や精度によっては数時間かかる場合もあります)

6.メッシュを生成

処理が終わるとこの様な高密度点群が表示されます。
ここからメッシュを生成します。ツールバーのメッシュ生成ボタンをクリック。

[カテゴリー]は"航空"に設定。

[プリセット]は今回は出来るだけ綺麗なモデルを生成したかったのと、対象が建物ですので"高精細 - シャープなフィーチャー"としました。
(高密度点群生成程ではないですがこの処理も時間を要します)

7.テクスチャを生成

処理が終わるとこの様な頂点カラーで表現されたメッシュが表示されます。
ここから最後の工程、ツールバーのボタンよりテクスチャー付きメッシュ生成を行います。

設定は使用用途に応じてお好みで。

プルダウンから選べない数値に設定したい場合は右上の[設定]をカスタムにする事で数値による指定が可能です。

設定を終えたら次の画面へ進み実行を押します。(この処理はそこまで時間はかかりません)

8.モデルのエクスポート

出来上がったらこのボタンからテクスチャ付きのモデルをエクスポート出来ます。

9.DCCツールにインポート


任意のDCCツールで読み込みます。ソフトによってはfbxでUVが破綻する事もあるのでその場合はobjで書き出す、別ソフトで読み込む等、お試しください。

【Archive】Rhino→Unity→VRChatワールド作成案内

この記事はxRArchiフォーラムへの番匠カンナさんによる投稿のアーカイブです
※xRArchiフォーラムは2019年4月に廃止されました

twitter.com

----------------------------------------------------------------------------------------------------------

 

※noteにまとめた記事(マガジン)の転載

note.mu

 

Rhinoで作成した3DモデルをUnityでVRChatワールド用に設定・公開するまでの方法をまとめました!

【全61作品】ひよこ大工さんによるVR建築コンテスト探訪まとめ

f:id:xRArchi:20181029141102j:plain

xRArchi

 

 

ひよこ大工さん、全ての作品にコメントをいただき、またコンテストを楽しんでいただき、とても嬉しいです!!ありがとうございました!!
xRArchi一同、ひよこ大工さんのこれからのご活躍を心よりお祈りしております!!

 

xRArchi

【第0回】ワールドができていく様子

f:id:xRArchi:20181030144051j:plain

 

10月28日(日)

vrchive.com

 

10月29日(月)

vrchive.com

vrchive.com

10月30日(火)

vrchive.com

vrchive.com

11月06日(火)

vrchive.com

11月08日(木)

vrchive.com

11月11日(日)

vrchive.com

11月12日(月)

vrchive.com

11月13日(火)

vrchive.com

11月14日(水)

vrchive.com

11月16日(金)

vrchive.com

11月18日(日)

vrchive.com

vrchive.com

11月19日(月)

vrchive.com

11月20日(月)

vrchive.com

11月28日(水)

vrchive.com

11月29日(木)

vrchive.com

vrchive.com

vrchive.com

vrchive.com

vrchive.com

vrchive.com

12月8日(土)

vrchive.com

【第0回】よくある質問

f:id:xRArchi:20181030144045j:plain

 

 

外から見えなければ内部は30m×30m×30mからはみ出てもOK?

 

VRCSDKは使用可能ですか?

 

パーティクルはどのくらい使っていいの?

 

シェーダーは使っていいの?

 

これは「バーチャルな家」に入るの?

 

 

回答

今回のテーマ「バーチャルな家」についてですが、テーマはあくまでもテーマなので、自由に解釈してください。応募者が家であると思うものならば何でもOKです。ただ、一応テーマは「家」なので、審査では不利になってしまう可能性がございますことをご了承ください。

 

日本語圏限定ですか?

第0回でノウハウを確立できたら、第1回以降に外国語への対応も考えたいと思います。

 

ライトプローブは使ってもいいの?

 

スマホからワールドの360度画像が見れない!

 

企業や製品などのロゴは使用していいの?

 

自作ではないモデルを使うのはOK?

 

スクリーンショットが撮れない

 

ArchiCADのチュートリアルはないの?

on/offを切り替えられるライトなら使ってもいい?

敷地30mx30mx30mを宙に浮かせてもいいの?

回答

敷地は地面に設置した30mx30mx30mです。高さも30m以内でお願いします。

 

透過マテリアルを大量に使うと負荷が大きくなるの?

【第0回】作成/提出時の注意点やSDK等の詳細

f:id:xRArchi:20181029141102j:plain

提出に関すること

提出していただくもの

  1. 作成した家のデータ (Unitypackage形式)
  2. モデルデータのスクリーンショット (画像ファイル, 完成状態の確認や公式Twitterでの発信などに使用させていただきます♪)
  3. 作品説明用の画像ファイル (1920x1080px程度, JPGもしくはPNG, 建物の前に掲示されます)
  4. 作品名 (提出フォームに記載してください)

 ※途中段階のものを提出するときは1だけでOK!  各提出物のサンプルはこちら

提出の手順

この手順はチュートリアルで説明していますのでそちらもみてください♪

  1. あなたの想い描く「バーチャルな家」を自由にかたちにしてください!
  2. 配布データをこちらからダウンロードし、「contest0.unitypackage」をインポートしてください。
  3. Assets→Scenes→contest00をHierarchyにドラッグ&ドロップしてください。デフォルトのシーンはRemoveしてください。
  4. AssetsStoreでSkySerie FreebieのDayInTheClouds(無料)をインポートして、SkyBoxを設定してください。
  5. 島の好きなところに建物を配置してください。幅30m x 奥行30m x 高さ30m の敷地内に納まっているか確認してください。
  6. マテリアルやコライダーなどを調整してください。
  7. Assetsのトップディレクトリ(階層の一番上)にフォルダを作成し、フォルダ名を「提出番号_名前(半角英数)」に変えてください。
    • その後、プロジェクトをその中にまとめ、使用しているすべてのデータがその中に収まるようにしてください(SDK, 標準アセットを除く)。
  8. シーン内に作成したモデルデータを構成ごと1つのPrefabにまとめてください
    • Prefabへのまとめ方 ※Prefab内には、配布したワールドデータを含まないでください。
      1. Hierarchy内に空のGameObjectを作成し、名前を「提出番号_名前(半角英数)」とする。 2 Hierarchy内に配置した各種データを1のオブジェクトにドラッグ&ドロップして1つにまとめる。
      2. まとめたオブジェクトを4で作成したAssets内のフォルダへとドラッグ&ドロップ。
      3. Prefabが作成されます。
  9. 全体をまとめたPrefab(もしくはフォルダ)を右クリックし、Export Packageを選択、必要なデータのみにチェックを入れ、エクスポートしてUnitypackageを作成してください。※このとき、VRCSDKのチェックはすべて外してください(重要)
  10. 作成した制作物の完成形がわかるスクリーンショットを作成してください。
    (正しくインポートできているかの判別に使用させていただきます。)
  11. 説明用の画像を作成してください。
  12. 9・10・11の3点をzip形式にまとめてください。ファイル名は「提出番号_名前(半角英数)」にしてください。※途中段階のものを提出するときは9だけでOK!
  13. 登録確認メールに記載されているリンク先ページより、データをアップロードして提出は完了です。

データ作成時の注意点

  • ライティングに関して
    • 今回のコンテストではライトは使用不可とします。複数のデータを1つのワールドに統合するため、残念ながら各自Lightingをベイクしていただいてもそのライトマップは反映されません
    • Lightingの設定は配布したシーンの設定の通りです。MixedのDirectionalライトが1つ置いてあります。建物への影は落ちませんどうしても影をつけたい場合は各自DCCツールなどで影をベイクしたテクスチャを使ってください。
  • 全般
    • Unitypackageへとエクスポートする際には、必ずVRCSDKのチェックをすべて外したのち、データの作成を行ってください(重要)。 VRCSDKを含んでしまうとファイルサイズが肥大化するばかりでなく、VRCSDKのライセンスに抵触する恐れがあります。ご注意ください。
    • ファイル名やディレクトリ(フォルダ)名はすべて半角英数字にしてください(全角文字と記号は使用しないでください)。
    • 使用するマテリアルの枚数をなるべく減らすようご協力ください(負荷低減のため)。
    • SDK内のデフォルトアセット(モデルデータ・マテリアル等)は使用非推奨です。
      • 使用した場合、見た目が正しく再現されない可能性があります(他の参加者のデータと重複する可能性があります)。
    • ワールド設定用のオブジェクトを含まないでください。
      • モデルデータのみ提出してください。
      • VRCWorld および VRC_SceneDescriptor、MainCamera等のワールド設定は不要です。
  • 敷地について
    • ワールドには参加者用の敷地がランダムに割り振られます。
    • 特定の敷地を選ぶことはできません。
  • データサイズについて
    • Unitypackage形式で10MB程度を推奨(省データ化にご協力くださると助かります)

提出前チェックリスト

  • UnitypackageにVRCSDKを含んでいない状態になっていますか?
    (エクスポートの際、VRCSDKのチェックは外しましたか?)
  • ファイル/フォルダ名はきちんと半角英数字になっていますか?
  • ☑ 一つのフォルダにすべてのファイルがまとまっていますか?
  • ☑ ワールド設定のコンポーネントは含まないようにしていますか?(WorldDescripter, MainCamera等は不要です。)
  • ☑ どのような作品かわかるスクリーンショットを準備していただけましたか?
  • シーン内での構成を1つのPrefabにまとまっていますか?

コンテストで利用可能な機能(VRCSDKを使いたい人だけ読んでね)

VRChatではSDKをつかってワールド内にいろいろな機能を持たせることができます。(例:スイッチを押したら物が動く等)今回のコンテストでは必須ではありませんが、使いたい方は以下をよくお読みの上、ご使用ください

使用可能なVRChatコンポーネント(VRCSDK)一覧

○…使用可 △…非推奨or必要である場合のみ使用可 ×…使用不可

Avatar Components
    × VRC_AvatarDescriptor
    × VRC_IKFollower
Scene Components
    × VRC_SceneDescriptor
    × VRC_AvatarPedestal
    × VRC_MirrorCamera
    × VRC_MirrorReflection
    × VRC_PortalMarker
    × VRC_CustomRendererBehaviour
    ○ VRC_Station (使用可ですが問題が発生した場合にはスクリプトを削除いたします)
    × VRC_StationApi
    × VRC_StationInput
    △ VRC_Trigger (複雑なギミック等の使用を避け低負荷な実装のみであれば可)
    △ VRC_EventHandler (使用が必要な箇所にのみアタッチしてください)
Combat Components
    × VRC_VRC_CombatSystem
Prop Components
    ○ VRC_Pickup (基本的に移動できるものは小物程度に押さえてください)
General Components
    × VRC_VRC_AudioBank
    × VRC_DataStrage
    × VRC_DestructibleStandard
    × VRC_ObjectApi
    ○ VRC_ObjectSync
    × VRC_Panorama
    × VRC_PlayerMods
    × VRC_PropController
    ○ VRC_UiShape
    × VRC_VisualDamage
    × VRC_WebPanel
    × VRC_YouTubeSync
    × VRC_SyncVideoPlayer
    × VRC_PipelineManager
    × VRC_SyncVideoStream
    × VRC_VideoScreen
    × VRC_VideoSpeaker
    × VRC_MidiNoteIn
    × VRC_OscButtonIn
Unused Components
    × VRC_EventDispatcherLocal
    × VRC_EventDispatcher
    × VRC_ReflectionReference
Legacy Components
    × VRC_AddDamage
    × VRC_AddHealth
    × VRC_ObjectSpawn
    × VRC_PhisicsRoot
    × VRC_PropApi
    × VRC_SyncAnimation
    × VRC_SlideShow
    × VRC_TimedEvents

VRC_Trigger 使用可能なアクション一覧

○…使用可 △…非推奨,必要である場合のみ使用可 ×…使用不可

Triggers
    ○ Custom
    ○ Relay
    ○ OnEnable
    ○ OnDisable
    × OnDestroy
    × OnSpawn
    × OnNetworkReady
    × OnPlayerJoined
    ○ OnPickupUseUp
    ○ OnPickupUseDown
    △ OnTimer
    △ OnEnterTrigger
    △ OnExitTrigger
    × OnKeyDown
    × OnKeyUp
    ○ OnPickup
    ○ OnDrop
    ○ OnInteract
    △ OnEnterCollider
    △ OnExitCollider
    × OnDataStrageChange
    △ OnAvatarHit
Actions
    △ AnimationFloat
    △ AnimationBool
    △ AnimationTrigger
    × AudioTrigger
    △ PlayAnimation
    × SetParticlePlaying
    × TeleportPlayer
    × RunConsoleCommand
    ○ SetGameObjectActive
    × SetWebPanelVolume
    × SpawnObject
    △ SendRPC (基本的に当コンテストでは不必要なものですが、利用したい場合にはご連絡ください)
    ○ ActivateCustomTrigger
    × DestroyObject
    ○ SetLayer
    × SetMaterial
    × AddHealth
    × AddDamage
    ○ SetComponentActive
Broadcast Types
    AlwaysUnBuffured(バッファーなし)を推奨。同期したいものがある場合のみ個別にBufferの設定をしてください。
    移動させるPickupオブジェクトにはAlwaysBufferOneをお使いください

その他(よくある質問等)

  • Standard Assetsについて
    • VRChat内ではStandard Assets内のスクリプトも一部使用可能ですが、ワールドの負荷上昇につながるため基本的に非推奨です。
    • ワールドの負荷低減にご協力ください。
    • 使用したい場合には運営にご相談ください(使用可能とした時点で参加者全員にその旨を周知致します)。
  • 鏡を置きたい
    • 個別の建物内に設置すると負荷が大きくなりすぎるため、共用の鏡をワールド内に設置する予定です。
  • SpawnObjectについて
    • 当コンテストにおいて、オブジェクトをワールドインスタンス内でSpawnすることはお控えください。
    • (生成されたインスタンスが溜まり重くなることを防ぐため。VRChatの制限。)
  • 敷地の余白部分について
    • 使用されなかった敷地の範囲は、詰めて配置される予定です。意図的に空けたい場合には個別にご相談いただくか、オブジェクトを予め配置してください。

参考リンク

その他

  • この要項の内容は@sabakichiさんに作成いただきました。ありがとうございました。