Bricks

このページは自動翻訳されており、誤りが含まれる場合があります。誤りを見つけた場合は「このページを編集」リンクからご協力ください。

brick は、他のプロジェクトがインストールできるスクリプト、アセット、アセンブリ定義を収めた、package.json を持つフォルダです。エンジン自身のカメラリグとゲーム内 UI も brick なので、それらを使わないゲームには含まれません。package.json、ロックファイル、Bricks/ フォルダはパッケージという名前のままですが、あなたが扱うものはすべて brick と呼びます。

インストール

プロジェクトは Bricks/manifest.json に brick を列挙します。隣の packages-lock.json は何が解決されたかを正確に記録するので、コミットしてください。新規プロジェクトは組み込みの brick から始まります。

{
  "dependencies": {
    "org.mass4.turian.cameras": "builtin:org.mass4.turian.cameras",
    "user.mateo.inventory": "^1.0.0",
    "com.acme.rules": "git+https://github.com/acme/rules.git#v1.2.0",
    "com.acme.levels": "file:../bricks/com.acme.levels-1.0.0.brick"
  }
}
ソース 意味
builtin:<id> エンジンに付属
file:<フォルダ> その場で使うフォルダ。開発中の brick 向け
file:<x.brick> パックされた brick。ストアに一度だけ展開される
git+<url>[#ref] git リポジトリ。ロックではコミットに固定される
^1.0.0(バージョン範囲) その名前にスコープされたレジストリから取得

brick はマシンごとに一度だけ ~/.gaya/bricks に保存され(GAYA_BRICKS を設定すると、たとえば CI キャッシュなどに移せます)、プロジェクトにはコピーされません。プロジェクトが持つ各 brick のバージョンはちょうど 1 つです。

コマンドラインから

turian-cli brick … と Studio の Project → Bricks… は同じことを行います。

コマンド
add、remove、list プロジェクトがインストールするものを変更・表示
restore [--locked] すべてを取得。--locked はマニフェストとロックが食い違うと失敗(CI で使用)
update [id…] git の brick を最新のコミットへ移動
search、registry add\|list\|remove brick を探す。レジストリと信頼する鍵を選ぶ
new <id> brick を開始:マニフェスト、アセンブリ定義、スクリプト
verify [--against <brick>] すべてのアセットが一意の .meta を持つ。--against ではスタブが本物の brick と一致するか確認
pack [--precast]、publish .brick を書き出す、またはレジストリフォルダに追加
embed、diff、rebase brick をプロジェクトにフォーク、変更点を表示、次のリリースをマージ
copy brick のアセットの一部を新しい id で Assets にコピー
stub 同じ id を持つプレースホルダー。未完成の brick の上に構築するチーム向け

brick を作る

turian-cli brick new user.you.inventory でフォルダが作られます。id は小文字の逆 DNS 形式です。自分のドメイン(com.acme.inventory)を使うか、なければ user.<名前>.… を使います。

  • スクリプトはアセンブリ定義(New → Scripting → Assembly Definition で作る .dataasset)の下に置きます。すべてのスクリプトとアセットは .meta と共に出荷されます。中の id が他のプロジェクトから参照されるものなので、安定させてください。
  • 名前が ~ で終わるフォルダ(Samples~、Documentation~、Precast~)はインポートされません。
  • engines は動作するエンジンのバージョン("turian": ">=1.0 <2")、dependencies は他の brick、nuget はビルド済みアセンブリが必要とする NuGet パッケージ、license は SPDX 式を示します。
  • turian-cli brick pack --precast はアセンブリを Precast~/ にコンパイルします。そのファイルをインストールした人は、あなたのコードをコンパイルする代わりにアセンブリを読み込みます。

再利用可能な GitHub ワークフロー MASS4ORG/Turian/.github/workflows/brick.yml が、brick を検証し、パックし、リリースします。

インストールしたものを変更する

インストールされた brick は読み取り専用です。手間の少ない順に:

  1. そのまま id で使う。
  2. プレファブバリアントまたはデータアセットバリアントを作る(turian-cli variant):オリジナルに上書きした値を加えたもので、オリジナルが変わると追従します。
  3. brick のアセットのインポート方法を ProjectSettings/PackageImportOverrides.json で変える({ "<asset id>": { "GenerateMips": false } })。
  4. アセットをプロジェクトにコピーする(brick copy):新しい id が付き、brick に追従しなくなります。
  5. brick 全体を埋め込む(brick embed):Bricks/<id> に書き込み可能なコピーができ、インストール済みのものより優先されます。brick diff は変更点を一覧し、brick rebase はオリジナルの次のリリースをそこにマージします。

レジストリ

レジストリは署名付きインデックスを持つ静的サイトです(形式:エンジンリポジトリの docs/bricks/registry.md)。プロジェクトは、スコープされた名前についてレジストリから brick を取得し、自分で列挙した鍵だけを信頼します:

"scopedRegistries": [
  { "name": "studio", "url": "https://bricks.studio.example/v1", "scopes": ["com.studio"], "keys": ["ssh-ed25519 AAAA… studio"] }
]

ロックは各 brick のバージョン、ファイルハッシュ、署名鍵を記録します。署名は OpenSSH の ed25519 署名なので、公開者は既に持っている鍵を使えます。

Unity パッケージのインポート

turian-cli import unitypackage Crates.unitypackage --brick user.you.crates --out bricks/(または --project <フォルダ>)は、対応するものを変換し、残りを報告します。テクスチャ、モデル、オーディオは Unity の id とフォルダを保ち、Turian に存在するテクスチャ設定も引き継がれます。マテリアルとプレファブ/シーンは変換され、スクリプト、シェーダー、アニメーションはスキップとして一覧されます。パッケージのライセンスを確認してください。ツールはそれを変更しません。


← すべてのドキュメント このページを編集