4K Views
February 10, 25
スライド概要
2025年2月1日に静岡市で開催されたUnreal Engine Meetup in Shizuokaのスライドに補足を加えたものです。
点群データのゲーミフィケーションTipsと UEのジャーナリズム活用事例 静岡新聞社編集局社会部 鈴木 誠之 [email protected] x: @lagucar
自己紹介 静岡新聞社編集局 社会部長 兼 論説委員 兼 編集委員 2000年入社 東部総局(沼津市)、三島支局、御前崎支局、社会部、島 田支局、社会部 25年の記者人生のうち、社会部に通算14年在籍。これ まで主に災害や原発問題を担当。UEは新聞の新しい見せ 方を研究するため4年ほど前から使用。
この講演のテーマ 「非力なパソコンでも、お金をかけずに、点群デー タとアンリアルエンジンで気軽に遊ぼう」
使用マシンスペック GALLERIA XT 発売日:2019年2月25日 価格:129,980円(税別) CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz RAM: 32.0 GB GPU:NVIDIA GeForce GTX 1660 Ti このスペックでもUEと点群を扱うことは可能(要気合)
今回使用するソフトウェア一覧 Unreal Engine(ゲームエンジン)※原則無料 CloudCompare(点群処理)※原則無料 MeshLab(メッシュ作成)※原則無料 Blender(3Dモデリング)※原則無料 さらに全県分の点群データも全て無料 (VIRTUAL SHIZUOKA)
使用ソフトの バージョン (古いです) 2.12.4(Kyiv) 5.5.2 v2022.02 3.2.2
VIRTUAL SHIZUOKA(バーチャルシズオカ) 作りたいものによって点群データの種類を選ぶ ・LP:Laser Profiler(航空レーザー計測)16点/m²以上 高所から俯瞰するようなゲーム向き ・MMS:Mobile Mapping System(移動計測車両)400点/m²以上 地上を進むようなゲーム向き ・ALB:Airbone Laser Bathymetry(航空レーザー測深) 1点/m²以上
Unreal Engineで点群データを扱う LiDAR Point cloud Support プラグイン ・新規プロジェクト作成 ・LiDAR PointCloud Pluginを有効化 → 再起動 ・Las, Laz形式の点群データをUEにインポート可能になる。 点群データの編集も可能
点群データをゲームで活用するための一歩 ・点群データのままでゲームを作ってみたい、ゲームのよ うな操作方法で点群データを散策したい!(本講演のテーマ) ・しかし、点群データのままでは全てがすり抜けてしまう → 「コリジョン」(当たり判定)が必要! ・コリジョンを付けるには点群データを「メッシュ(ポリ ゴン)化」する(面を張る)必要がある
地表面コリジョンなし
地表面コリジョンあり
点群データのメッシュ化方法 方法はいろいろ 例えば ・Las2Mesh(Pythonスクリプト、Open3Dなどのライブラリ使用) ・CloudCompare + MeshLab + Blender の組み合わせ ・手動でスタティックメッシュを置いていく ・UEのプラグインの機能を使う 今回はCloudCompare + MeshLab + Blender の組み合わせ を紹介
VIRTUAL SHIZUOKA Las形式のファイルをダウンロード →CloudCompareでPly形式に変換 →MeshLabへ
↑ 最初の一歩に最適。 ぜひ検索を
非常に分かりやすいです
LPを使った例 まずはLPデータをダ ウンロード
CloudCompareで開き、必要ならMergeで統合→Plyファイルで保存→MeshLabで開く
MeshLabを使ったメッシュ化の手順 まず点群データを間引く ● Normal(法線ベクトル)を付与 ● 例えばPoisson Surface Reconstructionでメ ッシュ化 ● obj形式で保存 ●
Kazhdan, M., Bolitho, M., Hoppe, H.: Poisson surface reconstruction. In: SGP. (2006) 61–70 https://hhoppe.com/poissonrecon.pdf 点の群れ → 3Dモデルにする
(1)点群データをダウンロードする(las形式) (2)Cloud Compareで開き、必要ならMergeして、ply形式として保存する。 (3)MeshLabで開く (4)Filters→Point Set→Point Cloud Simplification (5)Filters→Point Set→Compute Normals for point sets (6)Filters ->Remeshing, Simplification and Reconstruction -> Screened Poisson Surface Reconstruction (7)Filters -> Selection -> Select Faces with edges longer than -> 選択範囲を削除(Delete) (8)Filters -> Cleaning and Repairing -> Remove isolated pieces (wrt Face Num.)など (9)Filters -> Texture -> Parametrization: Flat Plane (10)Filters -> Texture -> Transfer: Vertex Attributes to Texture (11)できたメッシュをobj形式でセーブ (12)Blenderで開き、座標を原点に修正、回転し、整える。さらにFace Orientationを確認し、必 要なら編集モードでshift+Nを押して面をFlipさせる。Decimate Modifierで間引く。 (13)fbx形式でエクスポートし、UE5にインポートする。 (14)UE5で元の点群(las形式)をインポートし、プラグインの機能で整列させる。 (15)元の点群データをfbx形式のメッシュを重ね、メッシュをHidden in Gameとする。 (16)メッシュを開き、コリジョンの設定をUse Complex Collision as Simpleにする ※(9)Textureの張り方によっては Filters -> Texture -> Per Vertex Texture Function Filters -> Texture -> Convert PerVertex UV into PerWedge が必要 (今回はコリジョンを作る目的でFlat Planeを採用したため不要)
オリジナルの 点群データ
(4)Filters→Point Set→Point Cloud Simplification
間引いた点群 データ
※各パラメータはChatGPTなどに聞 きながら調整してください。 (5)Filters→Point Set→Compute Normals for point sets
※各パラメータはChatGPTなどに聞きなが ら調整してください。 (6)Filters ->Remeshing, Simplification and Reconstruction -> Screened Poisson Surface Reconstruction
(7)Filters -> Selection -> Select Faces with edges longer than -> 選択範囲を削除(Delete)
Previewに チェック
(9)Filters -> Texture -> Parametrization: Flat Plane
(10)Filters -> Texture -> Transfer: Vertex Attributes to Texture
重要
元の点群データから書き出したテク スチャ
そのテクスチャ を貼り付けたメ ッシュ
メッシュとテクスチャをエクスポート →Blenderへ
Blenderにエクスポート直後、メッシュ がどこにあるか分からなくなることがあ る。その場合、Local View → Toggle Local Viewで発見できる
ズームに合わせ、メッシュの全体が表 示されないことがある。その場合、カ メラのクリップ設定を見直す。
Blenderでは原点に移動させたり、回 転させたり、メッシュを微調整した りする
Objファイルだったメッシュを、UE で奨励されているFBXファイルとし てエクスポートする(Blenderを通す 意味の一つ)
UEでプロジェクトを 開く。自分の好きなテ ンプレートで
点群データをインポートする (LiDARプラグイン使用)
点群を元の位 置関係で整列 させる (14)UE5で元の点群(las形 式)をインポートし、プラグイ ンの機能で整列させる。
(15)元の点群データをfbx形 式のメッシュを重ね、メッシュ のActor Hidden in Gameをチェ ックする(非表示になる) Actor Hidden in Game
Use Complex Collision as Simple (16)メッシュを開き、コリジョンの設定をUse Complex Collision as Simpleにする
完成
MMSを使った例
実際の景色(ストリー トビュー)との比較
コリジョンがある ので建物にもちゃ んと衝突する
テクスチャの作成 点群データからテクスチャを作る ● 間引く前のオリジナルの点群データを利用すると 高品質 ● オルソ画像もテクスチャに活用可能 ● テクスチャさえできてしまえば、あとはいくらで も加工・修正(お絵描き)できる ●
↑オリジナルの点 群データ →オリジナルの点群デ ータから書き出した 4096 x 4096の道路テク スチャ使用 ↑オルソ画像(2000 x 1500)から作成し た道路テクスチャ使 用
Blenderで調整 & Unreal Engineへインポート ● ● ● ● Blenderで微調整 fbx形式で書き出し Unreal Engineへインポート Blenderを開きっぱなしにしてメッシュを修正しながら 都度Export→UEでReimport(リインポート)を繰り返 す、と道路のコリジョンが修正しやすい
Unreal Engineでのコリジョン設定(仕上げ) ・メッシュをHidden in Gameにして表示オフ ・点群データの起伏に沿ったコリジョンを確認 UEのLiDAR PointCloud Pluginの機能 ・点群同士の整列 ・不要な点の削除 ・コリジョン生成も可能(高負荷)
点群の表示が粗くなっていたら FPSを出すために点群データが自動で間引かれてい るのが原因 FPSを低めに固定すると改善(例えばFPS20) ● コンソールコマンド→ t.maxfps 20 ●
FPS 50(自動)
FPS 20(固定)
FPS 20(固定) FPS 50(自動)
自由に使えるVIRTUAL SHIZUOKAの点群データを 活用したゲーム作りのメリット ・UEや関連ソフトの操作を楽しく学べる ・点群データの新しいユースケース開拓 ・教育や研究用途にも適している
VR最後の砦(VR袴田事件) 1966年6月に現在の静岡市清水区で起きたみそ製造会社の専務一家4人殺人事件 (袴田事件)を通して再審制度の問題点を追ったキャンペーン連載「最後の砦 刑事司法と再審」を基にしたMetaQuest用のVRアプリ。UE5で製作。 Meta Quest 3 Meta Quest 3S
キャンペーン連載「最後の砦 2022年12月31日付朝刊~24年6 月27日付朝刊まで本紙とネット で展開した長期連載。10年以 上追い続ける遊軍記者が中心。 袴田事件などに対する長期的な 取材を通して、戦後一度も改正 されていない再審法(刑訴法の 再審規定)の不備や改正が拒ま れてきた背景を明らかにし、立 法府の役割を軸に改正実現の道 筋を探った。 →判決を前に、一人でも多く の人に関心を持ってほしい 刑事司法と再審」
VRアプリの特徴 取材班が入手した1966年当時の実 際の取り調べの音声データなどの 資料を基に製作。 単に音声データを聴くだけでは得 られない当事者感覚や没入感を通 し、袴田さんが受けた取り調べの 過酷さや不毛さをユーザーが追体 験できる。 自白強要を主眼とした当時の取り 調べの問題点や死刑冤罪、日本の 再審問題、9月26日に静岡地裁で 予定されていた再審判決公判に一 人でも多く関心を持ってもらえる ことに期待。
VR https://www.meta.com/experiences/7517559505036516/ Meta VR ・ 公 袴 式 田 ( 事 スト 件 ア ) 「 ペ 最 ー 後 ジの砦」 ・Meta公式ストア「最後の砦」VR(VR袴田事件)ページ https://www.meta.com/experiences/7517559505036516/ M VR https://www.youtube.com/watch?v=Q9A05hTt7Jo YouTube etaQuest VR 360°VR ・ 最 】 袴 ( を 動 持 後 田 画 ( っ 事 の ) て 砦 件 いな ) 【 い人向けの ・YouTube【360°VR動画】最後の砦VR(VR袴田事件) (MetaQuestを持っていない人向けのVR動画) https://www.youtube.com/watch?v=Q9A05hTt7Jo ぜひお試しください
UEを活用した新しいストーリーテリング ・時事問題、地域課題などの見せ方にも応用できる ・ゲーミフィケーションやXR(MR,AR,VR)化で、 より自分ごととして捉えてもらうことができる ・誰にでも開発の門戸が開かれている
VR熱海土石流
日本気象協会 (2024年11月15日)
ご清聴ありがとうございました ご不明点や地方紙とのコラボレーションのお誘 いがあればぜひお気軽にお声掛けください。