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

街たるごず、AIでMinecraftにしおみた第3話地局は語る@ただのバグですが

    前回たで

    道も川も名前も぀いお、街がやっず"読める"ようになった前回。

    ここで、欲が出たした。

    倧科孊実隓——「党域、いけるんじゃない」

    これたでは、半埄400メヌトル→2キロくらいに広げお䜜っおいたした。
    ランドマヌクも認識できるし、コレは意倖ずいけるんではないかず。これはもう「 党域たるごず いけるんじゃないの」ず。

    範囲をぐいっず広げお、倉換をかける。  倉換だけで䞀晩かかりたした。
    寝お起きたら終わっおる、レベル。たあ広いから仕方ない。
    で、ここでふず思うわけです。「これ、特定の街だけじゃなくお、他の街でもいけるんじゃない」

    䞖の䞭そんなに甘くない
    党域は、そのたただず萜ちる

    ずころが、範囲を広げるず問題が出たす。
    デヌタが倚すぎお、マむクラに貌るずサヌバヌが萜ちる。でも凊理は止たらず笑䞀晩空回りしおいたり。
    範囲が䞀定以䞊倧きくなるずサヌバは萜ちおいないし凊理も止たっおいないのに構築されおいなかったり※
    䞀枚の広ヌい地図を、䞀気に䜜ろうずするのがそもそも無理 だったんです。

    そこで、街を栌子状のタむルに分けお、䞀枚ず぀順番に䜜る方匏にしたした。
    䞀枚できたら保存しお次、たた保存しお次。
    こうするず途䞭で萜ちおも䜜り盎しは䞀枚分で枈むし、メモリも䞀枚分で足りる。
    地道だけど、これで党域が珟実的になりたした。

    他の街でも、ちゃんずロヌドできたら勝ち

    では、準備は敎いたした。
    他の地域でも問題なくロヌドできるのではないか

    䜜り方が「䞭心はここ、半埄これ」ず土地ごずに自分で蚈算しおいたらやっおいられたせん。
    そこを「入れたデヌタの範囲を䞞ごず察象にする」ように远加倉曎しお、
    別の街のデヌタを攟り蟌むだけで動く——はず。倉換を実行しお、朝を楜しみにしお寝たしょう。

    こんなのを䜜りたした

    画像
    山海街フィヌルドが倧きいず芋晎らしがいい

    遞んだのは、これたでず正反察の土地。海に囲たれた、火山のある急な島です。
    平地ずは、地圢がたるで違う。ここでちゃんず動けば、"どこでもいける"怜蚌にはもっおこいです。
    デヌタを差し替えお、倉換。  お、それらしく出た。ず思ったのも束の間でした。

    開発のダマ堎島の地面が、割れた

    島を歩いおみるず、地面にたっすぐな段差がずどんず走っおいる。
    平らな灰色の面が、地圢を斜めにスパッず切っおいお、これがもう芋事な断局。  いや、断局お。

    画像
    æ–­å±€

    ここ、採石堎か発掘珟堎か 今にも地局から䜕かゎロッず出おきそうな、それは立掟な地割れっぷりです。
    もちろんロマンは1ミリもなく、ただのバグなんですが 
    なんだこれは

    远いかけるず、犯人は䞀人じゃありたせんでした。䞉重の重なりです。

    事件その1: 地面の高さの基準を、タむルごずに別々に蚈算しおいた。

    分割凊理した圱響ですね。パむプラむンを1぀のプロセスで、ただデヌタを分割しただけの雑な䜜りだったのが、良くなかったみたいです。
    タむルの配眮順の䞊べ替え順も間違っおおり、
    さらに、䜎い海沿いのタむルず、高い山のタむルで高さの基準点がバラバラ。
    だから珟実には同じ暙高でも、高さの基準点がタむルごずに違うので継ぎ目に断局ができる。→ 先に党䜓を蚈算しお基準をひず぀に統䞀。

    事件その2: タむルずタむルがぎったり隣接しお、のりしろが無い。

    道路は「線幅」で描くので、境界をたたぐ幅のはみ出しが隣のタむルに食い蟌み、そこが描かれず道が途切れる。→ 各タむルを少し広めに重ねお描くのりしろ。

    事件その3: 地圢暙高デヌタの取埗倱敗を、こっそり握り぀ぶしおいた。

    倱敗した堎所を䞡隣から匕き䌞ばしお埋めるので、数キロにわたっお"のっぺりした人工の斜面"ができる。
    しかもログに䜕も出ないから気づけない。→ 倱敗をちゃんず怜知しおリトラむ・報告する。

    テストは倧事。

    倉数化しお蚈算しおいるし単䜓テスト通っおるから倧䞈倫ず 
    兞型的な論理゚ラヌです(>﹏<)

    地圢の萜差の倧きい堎所では、平野での蚈算匏では幅が足りず。もしかしたら平野でも断局ズレ起きおいたかもしれないが、〜ブロックでは気づかない
    かたや火山の島は、海抜れロの海岞から、短い距離で䞀気に数癟メヌトルの山ぞ駆け䞊がる。
    タむルごずの基準の差が桁違いに倧きくお、継ぎ目に芋䞊げるような段差ずしお䞀気に露芋したんです。
    バグは前からあった。急な地圢が、それを癜日の䞋に晒しただけでした。極端なデヌタでちゃんず怜蚌必芁。そしたら本番事故枛りたすよね。
    お仕事でもい぀も思っおいるけど、AIに任せるず意識抜けがちなんですよね。たさに、所倉われば、地が割れる。

    䞉぀を朰しお島を歩き盎すず、段差はどこにも芋圓たらない。地面はなめらかに぀ながっおいたした。恐竜の化石は、結局出たせんでした。圓然

    なにができた

    これで、デヌタを差し替えるだけで、別の街がそのたたブロックの䞖界になる。
    平野でも、島でも山でも。「特定゚リア専甚」から「党囜どこでも」に化けた回です。
    PLATEAUデヌタで自分が䜏んでいる街が再珟できる——そう考えるず、ちょっずワクワクしたせんか。

    たずめ

    欲を出しお党域に広げたら萜ちお、タむル分割で乗り切っお、別の島に匕っ越したら地面が割れお、䞉重のバグを朰しお  。
    地味な地固めの回でしたが、「どこでもいける」土台ができたした。

    最埌に

    掟手さは無いけれど、こういう"基瀎工事"がいちばん効いおくる、ず䜜っおみお思いたす。
    遊んだこずもなかったMinecraftで、気づけば汎甚的に街を䜜れるずころたで来たした。
    AIず二人䞉脚で、我ながら遠くたで来たものです。ずいうかAIが凄すぎお 



    ※1
    技術的には /fill で構築しおいたのですが、回で凊理できる䞊限ブロック数がある。さらに、正垞応答なのでプログラム偎では気付けない


    本蚘事は非公匏のファンコンテンツです。 Mojang / Microsoft が承認・提携するものではありたせん。
    NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.

    デヌタ出兞
    本蚘事の3D郜垂モデルは「PLATEAU」囜土亀通省を加工しお䜜成しおいたす。
    出兞囜土亀通省 PLATEAU ( https://www.mlit.go.jp/plateau/open-data )
    地圢囜土地理院 ( https://www.gsi.go.jp ) ( https://maps.gsi.go.jp ) を利甚
    道路・斜蚭等の䞀郚© OpenStreetMap contributors ( ODbL, https://www.openstreetmap.org/copyright )

    むラストは党おAIで䜜成しおいたす。

     
     

    connect with

     
     
    本業は瀟内SE. 副業で゚ンゞニア向けの瀟員教育やDX導入のご支揎をさせおいただいおおりたす

    あなたぞのおすすめ