1 ポイント 投稿者 GN⁺ 2023-07-03 | 1件のコメント | WhatsAppで共有
  • Factorioの基地を新たにプレイするためのツールではなく、既存の2D基地の動作をUE5の3D空間で見て回る実験プロジェクト
  • アセット制作はゲームスプライトを基準に、Cinema4Dでのモデリング、Photoshopでのテクスチャ制作、FBX書き出し、UE5でのシェーダー適用という順で進行
  • FUE5 exporter modがFactorio内部データをJSONとして書き出すと、FUE5が建物の種類・向き・ケーブル接続を読み取り、基地を視覚的に再構成
  • ベルト・列車・物流ロボットはUE5のブループリントとスプラインを活用し、列車はFactorioが事前計算した経路を取り込んで移動
  • 大規模な基地ではFPS低下とブループリントイベントの不安定さが発生するため、ポリゴン、テクスチャ、パーティクル、on-tick更新、LODを削減して30〜60 FPSを目標に最適化

FUE5の目的

  • FUE5はFactorio in Unreal Engine 5の略で、Factorioの2D世界を3D空間で可視化する実験プロジェクト
  • 3DアーティストのHurricaneとFactorioモッダーのNukeが2023年1月10日から約5か月かけて制作
  • Factorioの基地を取り込み、動作を視覚的に再現する3D可視化環境であり、ゲームプレイは含まれない
  • ユーザーは自分の基地の周囲を3D空間で飛び回りながら見て回れる

アセット制作とUE5統合

  • Factorioの組立機械やインサータのようなアセットは、ゲームスプライトを基準に3Dモデルとアニメーションを新たに作る必要があった
  • 制作パイプラインは次の順で構成される
    • Cinema4Dで3Dモデリング
    • Adobe Photoshopでテクスチャ制作
    • Cinema4DからFBX形式で書き出し
    • Unreal Engine 5に取り込んだ後、ガラス、金属、煙突の煙といったシェーダーを適用
  • ベルト、列車、物流システムのような中核ロジックは、UE5標準のブループリントノードシステムで実装
  • 動く列車やベルト上のアイテムの整列を合わせるには正確なサイズの3Dモデルが必要だったため、モデリングの大半を終えてからシステムロジックを作成
  • Factorioの基地をゲームから直接書き出してUnreal Engine環境へ取り込めるようになり、UE5内で手作業で基地を作る時間が大幅に減少

FactorioデータをFUE5へ取り込む方法

  • 構造物システムは、Factorio内で建物を配置する方法に近い形で構造物を生成
  • FUE5 exporter modがゲーム内部データを読み取り、JSONファイルとして書き出す
    • 建物の種類
    • 建物の向き
    • ケーブル接続
  • FUE5はこのJSONファイルを読み込み、実際の基地の構造と車両の動きを視覚的に複製

ベルト、列車、物流システム

  • 搬送ベルト

    • 個々の搬送ベルトの3Dモデルだけでなく、アイテムがベルトに沿って動く仕組みも必要だった
    • 搬送ベルトはスプラインで表現される
    • FUE5 exporterが基地を書き出す際、接続された搬送ベルトがトンネルで終わる、単独で終わる、あるいはループを形成する連続区間は、それぞれ独立したシステムとして処理される
    • FUE5は各区間ごとにスプラインを作成し、アイテムは実際のゲームと同じ経路をたどって移動する
  • 列車

    • 列車スケジュール、信号、機関車の経路探索を直接複製するのは難しいため、Factorio標準の経路探索システムを利用
    • FUE5で列車を生成して動かすには、基地を書き出す前に目的地を設定し、青信号を与えておく必要がある
    • その後、Factorioが事前計算した列車経路を読み取ってスプライン化し、FUE5内で列車の移動を制御
  • 物流ロボット

    • 建設ロボットは対象外で、建物生成はUE5標準のConstruction Scriptシステムで処理
    • その代わり、ある程度発展したFactorio基地で重要な視覚要素となる物流ロボットの実装に注力
    • 各roboportは一定確率で物流ロボットのクラスターをランダム生成
    • 各ロボットは周囲の物流チェストを探してその間を飛び回り、資源輸送を視覚的に再現
    • 搬送作業が終わると最も近いroboportの位置へ移動してから消える

性能問題と最適化

  • 大規模な基地をFUE5に取り込むとFPSが大きく低下し、ブループリントイベントの結果も不安定になった
  • 30〜60 FPSで動作させるため、次の要素を削減する最適化が必要だった
    • ポリゴン数
    • テクスチャ解像度
    • パーティクル
    • on-tick更新数
  • 初期の多くのカクつきは搬送ベルトシステムで発生しており、この部分を削減する形で性能を改善
  • 構造物のアニメーション部品はLODを調整してさらにFPSを確保
    • 例: 遠心分離機の回転シリンダー
    • 例: 組立機械の屋根にあるギアとピストン
  • Factorio開発元のWube Softwareの承認も必要で、非商用利用に限るという条件でプロジェクト公開が許可された

トレーラーとビジュアル演出

  • 制作開始から最初の2か月で基本アイデアと大半のプロトタイピングが固まり、その後はさまざまなFactorioアセットやシステムの複製が容易になった
  • その後は、全体のビジュアル完成度とメインリリーストレーラー制作へと重点が移った
  • トレーラーでは、FUE5 exporterで作成した大規模基地と、FUE5環境で可能なさまざまな要素が示されている
  • Factorioゲーム内の基地をそのまま書き出すだけでは、整った映画的な結果にはならなかったため、カメラに合わせて多くの部分を手作業で調整した
  • 高いSPMを目指して単一の建物を長く並べた構造よりも、複雑に絡み合ったスパゲッティ基地のほうが視覚的に面白かった

利用条件と公開計画

  • FUE5はゲームではなくユーザーインターフェースもないため、利用には基本的なUE5の知識が必要
  • 利用方法はGitHubページにまとめられている
  • 基本手順は、UE5をインストールしてプロジェクトを実行した後、書き出したい基地チャンクを選んでFUE5へエクスポートする形
  • 詳しい手順はhow-to guideで確認できる
  • プロジェクトはGitHubを通じてオープンソースで共有されており、Factorioコミュニティが慣れ親しんだ世界を新たな次元で体験し、新しい成果物を生み出せるようにすることを目的としている
  • 既存システムをより使いやすくし、大規模基地でもうまく動作するよう磨き上げる作業が進行中で、今後はModコンテンツ追加も検討されている

1件のコメント

 
GN⁺ 2023-07-03
Hacker Newsのコメント
  • ここで少し触れられ、レンダリングされている Space Exploration はとてつもない Factorio のMODで、私が遊んだゲームの中でも最も奥深い部類だった。
    Factorio ではロケットを打ち上げれば勝利だが、Space Exploration はそこからさらに続く。太陽系の複数の惑星にまたがって基地を作り、各惑星固有の資源を活用して太陽系を開発し、その後は恒星間空間や別の太陽系へと拡張していく。
    途中に「4分の1地点」の勝利画面はあるが、既知の宇宙全体にまたがる謎を探索し、かなりの数学知識まで要求される別の勝利画面もある。何百時間も遊べる内容で、完成度も高い。
    星や太陽系のマップを使って惑星間を宇宙船で行き来できるようにゲームを作り変えているが、全体として非常によく機能している。ただし バイターをかなり減らすこと を勧める。このMODは忍耐を要するのに、戦闘の激しさがその流れにあまり合わず、MOD自体も開始時のポップアップでバイターを減らすよう案内してくる。
    • Space Exploration は、基本ゲームを何度かクリアしてなお続けたいときにだけ勧めたい。体感では基本基地に必要な部品数は減る一方で、複雑さはずっと強く増してくる。
      次の段階へ進むために作る必要のある工場や生産ラインの数がひたすら増えていく。100時間近く遊んだ頃になってようやく、次の科学段階に必要な製品2系統を別の惑星から持ち込むところまで到達した気がする。
      追加の助言としては、科学コストを上げること を勧める。次の段階への拡張には何時間もかかるのに、先に研究するものが尽きやすく、実際には工場にやることがなくなって止まったような状態になりがちだった。
    • 個人的には バイターを完全にオフにする 方がいいと思う。他の惑星には依然としているが、母星で感じる不安感はなくなる。
    • Space Exploration をやっているが、本当に壮大だ。ただ、Factorio を世界トップクラスにうまいと見なされているプロ級 YouTuber の Dosh Doshington でさえ、助けを受けながら SE を終えるのに300時間かかった。
      SE は素晴らしいが、とてつもない時間泥棒でもある。Factorio を3500時間以上遊んでいるが、何かおかしい気もする。
      それでも、Factorio を3Dで見るのは本当にクールで印象的だった。
    • 「惑星間Factorio」が好みなら Dyson Sphere Program も検討する価値がある: https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog...
    • ここで言及する価値のあるもう一つのMODパックは pyanodons だ。Space Exploration のようにロケット打ち上げ後のゲームを大きく拡張するが、それ以前の段階にもコンテンツを追加する。実際、ロケット打ち上げ自体の重要度はかなり下がり、最初のうちは選択可能な青サイエンス技術に近い位置づけになる。
      pyanodons は非常に現実的な鉱石処理チェーン、石油化学プロセス、発電メカニズム、電子部品の再構成、さらに植物や動物を含む農業要素を追加する。主開発者の pyanodon は本業が化学工学者だ。
      py 一式のプレイは簡単に1500時間を超える。バニラのプレイヤーの大半にとって特別楽しいものではないかもしれないが、Space Exploration や Nullius のようなMODが好きなら楽しめるはずだ。
      [0]: https://mods.factorio.com/user/pyanodon
  • ゲーム開発者として、Factorio の原典ソースコード は本当に見てみたいゲームの一つだ。
    そして「これってどうして合法なんだ?」と思った人のために引用しておくと: 「この作業の合法性について尋ねたところ、Factorio 側は大きな理解を示し、商業目的で使わないという条件でプロジェクトの公開を認めた」
    • Factorio チームは総じてこういうことにかなり寛容で、だからこそ最初からゲームをあれほど MODフレンドリー に作ったのだと思う。法的措置を取ったのを覚えているのは、盗難キーの再販売のような件に対処したときくらいだ。コミュニティがすごいものを作れば Factorio にとっても良い、という認識が根底にある。
      原典ソースコードを見た立場から言えば、コードは比較的しっかりしているが、とくに驚異的というほどではない。多重継承を使う C++ で、ゲームオブジェクト同士が何段階にもわたってメソッドを呼び合い、「最善ではないかもしれないが動くし今は変えない」類いのコードもかなりある。
      それでも全体がうまく回っているのは、包括的な自動テスト と、最適化の足りないコードで PR を出すと Rseding がすぐ正してくれる文化のおかげだ。面白いのはアルゴリズムの部分で、それは Friday Facts で扱われている。
    • GitHub に Factorio ソースコードの一部 が上がっている — https://gist.github.com/Rseding91
      それと https://old.reddit.com/r/factorio/comments/13bsf3s/technical... もとても興味深く読める。二重連結リストや多重継承を使っているといった話が出てくる。
    • Factorio には素晴らしい 開発ブログ がある。コード自体は見せていないが、解決しなければならなかった課題をかなり深く掘り下げている。
      https://www.factorio.com/blog/
    • 素朴に考えると、むしろ逆の疑問が湧いた。なぜこれが違法であるべきなんだろう? なぜ必ず愛だけで作る奉仕作業でなければならないんだろう? Factorio の知的財産の利用は、視覚的インスピレーションとファイル形式の解析に限られているように見えるし、法的な意味でも明らかに変形的利用に見える。
  • 「コーディングを知らないとノードをただつなげていき、うまくいかなければさらに増やして、だんだん混沌としていく。最近やっていたこの工場ゲームと不気味なくらい似ている」という部分で吹いた。
    • その部分は私も好きだった。特に、コーディングができても結局 まったく同じことをする という点でなおさらだ。ただ、いくつかは少しだけ冗長でなくなるだけで、今でもスパゲティが多いことはある。
    • その程度なら大したことない。LabVIEW は配色まで似ている!
      https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...

オレンジ色、そして「GUI」表示では灰色のタイルも出てくる

  • Factorioを4回インストールして、3回アンインストールした
    序盤の遅いテンポとやや生気のない2Dアイソメトリックグラフィックがどうにも合わなかった。でもブログ記事は興味深かったし、人々がずっと絶賛していたので、4回目にインストールしたときは踏ん張って実際にある程度進めてみることにした
    今では史上最高のゲームの1つだと思っている。技術的にありえないほど印象的で、列車・ベルト・ロボット・インサーターなどで埋め尽くされた超巨大な基地でも60FPSで動かせる。クラッシュもしないし、とてつもなく面白くて中毒性も高い。Modも素晴らしく、コミュニティも良い
    拡張パックが本当に楽しみだ。最初からFactorio並みに磨き込まれていると期待してよさそうだ
    • 人生を壊す危険を紹介することになるので先に謝っておくが、Captain of Industryを強く勧める
      立ち上がりがもっと早く、現実世界の工程を扱い、地形変更もあり、あらゆる面でFactorioより優れていると思う。Factorioはジャンルを定義したゲームだと思うし、SatisfactoryとDyson Sphere Programもそれをほぼ超えかけたが、3Dの性質上パズルがより解きやすい
      Captain of Industryは次元が多いにもかかわらず、Factorio並みにパズルを難しくし、管理すべき資源もはるかに多い
    • 見栄えの良いグラフィックのFactorioが欲しいなら、Satisfactoryをやればいい
    • Satisfactoryも検討する価値はある
  • 正確に言えば、これはFactorioクライアントのようなものではなく、可視化ツールだ。それでも本当にすごい
    • 記事でも言っていたように、コミュニティのFactorioクリエイターたちがこれを土台に何をハックして作るのかを見るのはとても面白そうだ
      何らかのUE5版Factorio風戦闘システムが出てきそうだ
      工場を運営して保守しなければならないゲームを想像するといい。同時にPvPの一人称シューティングのプレイヤーたちが工場内を走り回って戦い、補給線を絶えず破壊してくるので、それを修理しなければならない。工場保守チームに入ることもできるし、PvPプレイヤーになって敵をなぎ倒しつつ相手チームの工場補給線も破壊できる
  • Dwarf Fortressで見られた3D可視化を思い出す。一部は「描いて」作られ、別の一部はリアルタイム更新を試みていた
  • うわ、5か月であれだけ大量の3Dモデルを作るなんて、すごい才能だ。最近の3Dモデリングツールも本当に良くなっているのかと思う
    • 昔、机の飾りとして3DプリントするためにFactorioの機械をいくつかモデリングしたことがあるが、それぞれ6時間くらいかかった。だから数か月で全部やり切るのも十分あり得ると思う
      もちろん3Dプリント用モデルはちゃんとしたUVマッピングやテクスチャリングが必要ないので、自分の作業のほうがずっと簡単だったのは確かだ
    • 「リモデリング作業は本当に楽しかったけれど、次は残った精神衛生を守るためにも元のFactorioモデルを頼んだほうがよさそうだ」
      一部のツールはかなり良くなっている。たとえばテクスチャリング用のSubstance 3Dは、特に自動UVが使える結果を出してくれるならかなり助かる。ただ、基本的な3Dモデリングツールそのものは本質的には昔と大きく変わっていない
      スクリーンショットのモデルもトポロジーが密に見えるので、かなり作業量が多かったはずだ
  • あるいは新しいUnreal 5 ExperimentalブランチのSatisfactoryをやればいい
  • 正直、記事は読んですらいない。でもプログラミングをゲームにするとどんな感じか知りたいなら、Factorioをやればいい。リファクタリング、疎結合化、デバッグが全部入っている
    3週間狂ったように遊んで、無理やりやめなければならなかった。本当に唯一無二のゲームだ
  • 3DのFactorioみたいなゲームを実際にやりたいなら、Satisfactoryを勧める
    • Satisfactoryもやり始めると数日が丸ごと消えることがある。Factorioみたいに本当に面白いゲームだ
    • あるいはDyson Sphere Programもある