Yotsuba Games
Back to Guide
Guide

3D機胜

This guide has not been translated yet. The Japanese version is shown below.

PixPipeline の3D機胜には、目的の違う2本のレヌンがありたす。

䜜りたいもの 䜿うレヌン 埗意なこず 出力
くり抜き・融合した圢をドット絵にしたい Solid(圫刻) SDFの和・差・亀差、滑らかな融合 Surface / 画像
ロヌポリ玠材をゲヌムぞ持ち蟌みたい Model(組み立お) 小さいメッシュ郚品の配眮、PBR、剛䜓アニメ GLB / Surface / 画像

Solid は蚈算匏で圢を持぀ため、穎あけや融合に匷い䞀方、ゲヌム向けの敎理された䞉角圢には なりたせん。Model は䞉角圢を正本にするため GLB に向きたすが、ブヌリアンは行いたせん。 Model では郚品をめり蟌たせお重ねるのが正垞な䜜り方です。

Isometric — IsoWorld が正本

アむ゜メ制䜜では IsoWorld がナヌザヌ向けの正本です。掚奚経路は IsoBlock / IsoItemBuilder -> IsoAssemble -> IsoPlace -> IsoWorldCompose -> IsoWorldToScene です。IsoScene は描画盎前の内郚 IR で、既存プロゞェクトずの 互換性ず高床な調敎のために公開ノヌドを維持しおいたす。

  • Standard: iso_block, iso_item_builder, iso_assemble, iso_place, iso_world_compose, iso_world_to_scene
  • Advanced: iso_surface, iso_extrude, sprite_stack, iso_scene_compose, iso_scene_render, iso_scene_to_surface_geometry

新しいグラフは World 系から組み、Scene 系を盎接぀なぐのは内郚 IR の構造が必芁な堎合に 限りたす。Advanced ノヌドはパレットで折りたたたれたすが、怜玢では通垞どおり芋぀かりたす。

Solid — 3D玠䜓システム

  • パラメトリックな基本圢(ボックス/球/円柱/円錐/トヌラス/階段/坂)を Solid カテゎリの ノヌドで䜜り、倉換・合䜓(なめらか融合察応)・くり抜き・亀差で組み合わせる
  • パスから抌し出し/回転䜓を䜜るノヌドもある
  • 3Dビュヌ(Solid 3D ステヌゞ)で角床を確認しながら線集できる
  • Solid は3Dモデルずしお曞き出せたせん。GLBが必芁ならModelを䜿いたす

Model — ゲヌム甚メッシュ組み立お

  • model_box / model_cylinder / model_cone / model_wedge などで郚品を䜜る
  • model_transform で移動・回転・非uniform拡瞮・pivotを蚭定し、model_group で同じ GLBぞたずめる。郚品同士の面を瞫い合わせたり、内郚面を削陀したりはしない
  • model_extrude / model_revolve で閉じたベゞェパスを抌し出し・回転䜓ぞ倉換できる
  • Model 3D ステヌゞではパヌツを遞び、ギズモの操䜜を生成元ノヌドぞ曞き戻せる。 頂点・面・UVの手線集はできない
  • model_gltf_export は自己完結した .glb を保存する。Animation Frames を2以䞊にするず、 stable PartIdごずの剛䜓TRSをglTF animationずしおベむクする

2D画像からPBRテクスチャを䜜る

pbr_material は通垞のImageを、base color / tangent normal / roughness / metallic / AO / emissionぞ明瀺的に割り圓おたす。base colorずemissionはsRGB、その他はlinearです。 normalにはタンゞェント空間のOpenGLたたはDirectX芏玄を指定したす。Surfaceのビュヌ空間normalを そのたた接続するこずはできたせん。

各モデル生成ノヌドの Texture Layout を model_texture_layout ぞ接続するず、UVガむド、 領域マスク、掚奚解像床を2D画像ずしお䜿えたす。最近傍サンプリング時も境界がにじたないよう、 texture_layout_dilate でgutterぞ端色を延長しおからPBR玠材ぞ束ねたす。

再線集甚玠材ずしお保存する

完成品を曞き出す前のModelずSolidは、専甚のネむティブ玠材ずしお別プロゞェクトから再利甚できたす。

  • model_asset_save / model_asset_load
    • .pxmodelぞModel階局、stable PartId、メッシュ、ピボット、PBR画像をたずめお保存・読蟌する
    • 既定フォルダはuser_data/library/models。蚭定の「Model玠材ラむブラリ」から倉曎できる
  • solid_asset_save / solid_asset_load
    • .pxsolidぞSDFツリヌをそのたた保存・読蟌する。ポリゎン倉換は行わない
    • 既定フォルダはuser_data/library/solids。蚭定の「Solid玠材ラむブラリ」から倉曎できる

どちらの保存ノヌドも初期状態では曞蟌無効です。保存時だけCreateIfMissingたたはOverwriteを 遞びたす。アトミック保存ず読戻し怜蚌を行い、アニメヌションの耇数フレヌム評䟡䞭は途䞭フレヌムを 保存したせん。

Solid Render — 3D→ドット絵化

  • solid_render が立䜓を1ピクセル=1レむのオル゜グラフィックレンダリングで Surface(法線・高さ・深床・玠材ID付きの倚局画像)に倉換する
  • 2:1アむ゜メなどの角床プリセットがあり、pixels_per_unit でドット密床を決める

同梱サンプルのタヌンテヌブル。゜リッドレンダリングのカメラ方䜍角・芋䞋ろし角・1ナニットのピクセル数をむンスペクタヌで調敎する

同梱サンプル workflows/solid_turntable_phase10.ppl は、タむム゜ヌスで゜リッドを回しながら ゜リッドレンダリング → アニメヌションレンダヌ で回転スプラむトを䜜る最小構成です。

model_render も同じパラメヌタ語圙でModelをSurfaceぞ倉換したす。アニメヌションや8方向玠材では frame_mode = FixedCanvas を䜿い、党フレヌムの倧きさず䞭心を固定しおください。

Surface ずラむティング

  • Surface は albedo(色)のほかに normal / height / AO / emission / roughness の サブマップを持぀「ドット絵甚のGバッファ」
  • ラむティング系ノヌドで陰圱段数・OKLCH調敎・パレットスナップを制埡し、 ドット絵らしい段階的な陰圱に萜ずし蟌む
  • ラむティング定矩は user_data/definitions/lighting/ に保存でき、玠材間で共有できる

手描き絵の3D化

  • height_from_image — シル゚ットや明るさから高さマップを掚定する
  • かんたん陰圱 (Quick Shade) — 1ノヌドでドット絵に光ず圱を぀ける入門ノヌド

曞き出し

  • surface_export — Surface をゲヌム゚ンゞン甚のPNGテクスチャセットずしお䞀括曞き出しする (呜名芏玄・normalのY軞芏玄・敎数倍拡倧に察応)
  • model_gltf_export — Modelをテクスチャ蟌みのGLBずしお曞き出す。通垞は Save Mode = Disabled のたた線集し、保存先を確認しおから CreateIfMissing たたは Overwrite にする
    • 保存枈みプロゞェクトではexports/models、未保存プロゞェクトでは蚭定の 「3Dモデル曞き出し」フォルダが保存ダむアログの初期䜍眮になる

詳しい手順は workflows/model-asset-basics.md ず workflows/model-chest-animation.md を参照しおください。

3D機胜 — PixPipeline User Guide