素材探しから、制作まで。
認証不要の静的JSON。検索・取得・検証・クレジットを、ひと続きのワークフローへ。
1. 探す
type(model / texture)、category、tags、形式、単位、三角形数、テクスチャ解像度をクライアント側で絞り込めます。ページングやAPIキーは不要です。NDJSONも利用できます。
テクスチャは width / height と wrapMode(repeat / mirror / clamp)を確認。mirror は鏡像反復、clamp は非タイルのアトラスです。maps に記載された画像だけが収録されています。カタログの schemaVersion は 3.0.0 です。
2. ダウンロードして検証
import hashlib, json, urllib.request
url = "https://xenoah.github.io/meshcopia/api/catalog.json"
catalog = json.load(urllib.request.urlopen(url))
asset = next(a for a in catalog["assets"]
if a["type"] == "model")
delivery = asset["downloads"].get("delivery")
if delivery is None:
raise RuntimeError("Verified FBX unavailable")
file = delivery["archive"]
data = urllib.request.urlopen(file["url"]).read()
assert hashlib.sha256(data).hexdigest() == file["sha256"]
with open(asset["id"] + ".zip", "wb") as out:
out.write(data)
print(asset["attribution"])モデルは downloads.delivery.archive のFBX ZIP、テクスチャは downloads.minimal を使用します。FBX・必要テクスチャ・LICENSE.txt 1ファイルのZIPを使います。LICENSE.txt にライセンスとクレジットをまとめています。モデルのdeliveryがない場合は準備中として扱います。旧Pages ZIP URLの互換性は保証しません。downloads.full/models/direct とモデルの旧 minimal はAPIから除外しています。配布FBXは downloads.delivery.files、制作原本・プレビューとテクスチャ画像は files[] にあります。各ファイルにバイト数とSHA-256を付与しています。
3. クレジットを保持
全素材は CC BY 4.0。attribution を成果物のクレジットへ転記し、改変した場合は変更点を記載してください。元の作者名、ライセンスへのリンク、素材URLを保持します。
4. 素材を追加
_inbox/<asset-id>/ に asset.json、サムネイル、source/を置きます。検証・取り込み・カタログ生成・ZIP作成はスクリプトとGitHub Actionsで処理します。第三者の素材は権利とライセンスを確認したものだけ追加してください。
静的ファイルとして公開しています。リアルタイム検索APIや遠隔で任意コードを実行するサービスではありません。URLは各リリースのカタログで確認し、取得したバイト列のハッシュを検証してください。