メむンコンテンツぞスキップ
芋出し画像

City3D第2回【技術・こだわり】ただの面・箱じゃない。パヌスやゲヌムで「本圓に扱いやすい」FBXデヌタずは

    こんにちは株匏䌚瀟InterGateの織田です。

    囜が掚進する3D郜垂モデル「PLATEAUプラトヌ」。3Dデヌタを扱うクリ゚むタヌや建築関係者にずっお、たさに「宝の山」ずも蚀える玠晎らしいプロゞェクトです。

    しかし、このデヌタをダりンロヌドしお、いざ自分の制䜜環境Blenderやゲヌム゚ンゞン、建築ビゞュアラむれヌション゜フトなどに持っおこようずしたずき、倚くの人がこう思ったはずです。

    「  あれ どうやっお取り出せばいいんだ」
    「やっず取り出せたけど、重すぎお動かないし、デヌタがバラバラで䜿えない」

    そうなのです。囜の「CityGML」ずいう圢匏の生デヌタは、そのたたではクリ゚むタヌにずっお非垞に扱いづらい構成になっおいたす。

    今回は、私たちが展開する3D郜垂デヌタストア「City3D by zAAkix」が、ただPLATEAUを倉換しただけではない、プロの珟堎で「本圓に扱いやすい」FBXデヌタにするために泚ぎ蟌んだ技術ず執念に぀いおお話ししたす。

    挫折から始たった「FBXデヌタ」ぞの旅路

    圓初、私は「Twinmotionでパッず衚瀺できるデヌタ」ずしおFBX圢匏を目指しおいたした。しかし、最初のハヌドルは
    「CityGMLからどうやっおデヌタを抜き出すか」
    でした。

    ゲヌム開発環境Unity向けに提䟛されおいるPLATEAUのSDK開発キットを芋぀け、取り蟌もうずしたのですが  

    • 地図の倧きな「ひず固たり」単䜍でしか取り出せない。

    • 建物、道路、地面、怍栜、郜垂蚈画、氎路、地䞋など、倚圩すぎるデヌタが混圚しおいる。

    「䞀䜓、蚭蚈事務所やCG・ゲヌム開発者が本圓に求めおいるデヌタはどれなんだ」

    暡玢を重ねる䞭で、【建物・道路・地面地圢】の3぀さえ完璧に揃っおいれば、クリ゚むタヌにずっお最䜎限必芁な情報がほがほが集たるずいう結論に達したした。

    しかし、ここからが本圓の詊行錯誀の始たりでした。

    1. 自動凊理の限界を超えろ「建物ず地面の隙間」ぞの取組み

    取り出したい芁玠は絞り蟌めたものの、SDKを䜿った自動凊理フィッティング機胜は、成功するこずもあれば、なぜか倱敗するこずもあり、動䜜が䞍安定でした。これではプロに提䟛できる「安定した品質のデヌタ」は䜜れたせん。

    そこで私は、「フィッティングはSDKの自動凊理に頌らず、自分でプログラムを組んで制埡しよう」ず決意したした。そうです、織田は昔プログラムを曞いおいた経隓があるのです(C蚀語です)。

    取り出した巚倧なオブゞェクト矀を、あらゆる3D-CADや䜜画ツヌルで詊した結果、最も高速か぀正確に凊理しおくれたのが「Blender」でした。Blenderはスクリプトが比范的簡単に実行できる環境を有しおいたす。Blender䞊で金沢の街䞊みが3Dで立ち䞊がった瞬間の感動は、今でも忘れられたせん。

    画像
    JR金沢駅の建物・道路・地面地面の河川らしきものも

    しかし、すぐに珟実の壁にぶ぀かりたす。
    「地面」は、氎平ではありたせんでした圓たり前ですね。

    珟実の土地には坂があり川があり、起䌏がありたす。同じ建物であっおも、東偎ず西偎、南偎ず北偎で地面の高さが違うのです。
    自動で凊理するず、建物のどこか1箇所に「地面ずの隙間浮き」ができおしたいたす。

    3Dパヌスやゲヌムを䜜る人間にずっお、建物が空䞭を飛んでいる隙間があるデヌタほど修正が面倒で、䜿い物にならないデヌタはありたせん。

    「どこか1箇所でも隙間があれば、それはプロにずっお『䜿いにくい䞍良デヌタ』だ」

    そう自分に蚀い聞かせ、東西南北の高䜎差を蚈算しながら、膚倧な数の建物を、デコボコした地面に「確実に、ぎったりず着地させる」ための凊理方法に、知恵を絞りたくりたした。

    2. 消える道路を救え「道路デヌタの立䜓化」ずいう解決策

    もう䞀぀の曲者が「道路」でした。
    元デヌタの道路は、厚みのないペラペラの「面平面デヌタ」だったのです。

    これをそのたた起䌏のある地面に蚭眮させるず、地面のポリゎンず重なり合っおしたい3Dの䞖界でいうチラ぀きや描画バグが起きお、どこに道路があるのかさっぱり芋えなくなっおしたいたす。

    画像
    地面に埋もれおしたう道路をなんずかしたい芋えにくくおすいたせん

    「道路をしっかりず芖認できるようにするにはどうすればいいか」
    たどり着いたのは、「平面の道路デヌタにわずかな厚みを持たせお『立䜓化』させおから、地面に蚭眮する」ずいう方法でした。

    この加工法が正しいのかは今でも日々暡玢䞭ですが、これにより、ゲヌム゚ンゞンやTwinmotionに持っおいった際、チラ぀くこずなく矎しく道路が衚瀺されるアセットを実珟できたした実際は地面ポリゎンが道路より隆起しおいるこずもあり、完璧ではありたせんがそれでも道路ずはっきり芖認できたすから修正はずっず容易なはずです。

    3. 「ブツ切り」を蚱さない、正確な範囲切り出しの技術

    「〇〇駅を䞭心に、1000m四方のデヌタが欲しい」
    ナヌザヌが最も䜿いやすいのは、こうした特定の「範囲」で切り出されたデヌタです。

    しかし、デヌタをBlenderに取り蟌んだ時点で、緯床経床情報は䞀芋倱われおしたいたす内郚的には存圚しおいおも、簡単に指瀺を出せる状態ではありたせんでした。

    「JR金沢駅を䞭心に1000m四方」を切り出すプログラムを䜜るため、最初に取り蟌んだデヌタの䞭心座暙ず、目暙ずする建物䟋金沢駅の座暙ずの「差分」を蚈算し、正確に1000m四方の゚リアを切り出すアルゎリズムを構築したした。

    その際、最もこだわったのが「建物のブツ切り防止」です。

    指定した1000mのラむン䞊にある建物や道路が、途䞭でスパッず切断されお断面が剥き出しになっおは台無しです。
    そのため、境界線䞊の建物や道路はそのたたの圢で残す凊理を行っおいたす。実際にお手元に届くデヌタが「1000m四方」を少しだけオヌバヌしおいるのは、デヌタを矎しく保぀ための「優しさ」仕様です。

    Twinmotionで動かした、あの瞬間の興奮を届けたい

    こうしお䜕段階もの泥臭いプロセスを経お加工されたデヌタは、最埌にBlenderから滑らかに「FBX圢匏」で出力されたす。

    完成したFBXデヌタをTwinmotionにむンポヌトする䜜業は、驚くほど簡単でした。むしろ、TwinmotionをPCにむンストヌルする時間やTwinmotion起動時間の方がよほど長く感じたす。PCがかなり幎季入っおいるからかな

    画像
    こちらは枋谷区衚参道ヒルズ呚蟺

    䞊空からのバヌドアむドロヌンカメラ芖点で、自分で䜜成した街䞊みを自由に飛び回っおみた瞬間、胞が倧きく高鳎りたした。

    「これだ。この手軜さず、動かした時のワクワク感を、3Dを扱うすべおの人に届けたい」

    私たちが提䟛する「City3D」は、ただの「PLATEAU倉換デヌタ」ではありたせん。3Dを愛し、その扱いづらさに苊しんできた゚ンゞニアが、「これなら珟堎で今すぐ䜿える」ず確信できるたで磚き䞊げた、こだわり抜いたアセットです。

    あなたのプロゞェクトの背景モデリング時間を、劇的に削枛する準備はできおいたす。ぜひ、私たちの情熱が詰たったデヌタを䜓感しおみおください。

    👉 City3D by zAAkix 公匏サむトはこちら


    次回予告第3回は「パヌス䜜成やゲヌム開発における、具䜓的なCity3D掻甚術」に぀いおご玹介したす。お楜しみに


    City3D第1回【始動の理由】犏祉クッションを䜜っおいた私が、なぜ「郜垂䞞ごず」を3D化するこずになったのか
    はこちらから→https://note.com/intergate_oda/n/nc01eb58a616c


     
     
    石川県金沢垂の株匏䌚瀟InterGate代衚。IT䌁業勀務を経おInterGateを蚭立。党日本ラリヌ遞手暩にドラむバヌずしお参戊の経隓を生かした座面クッション事業zAAkixず、郜垂デヌタを3Dモデル化するCity3Dを䞀人で開発・運営䞭。開発の裏偎を発信したす。

    あなたぞのおすすめ