mcpField
M
multi-image-to-3d

multi-image-to-3d

github.com/kevinbadiクリエイティブ・メディア210149 回インストール30 週間前に更新
リポジトリ

multi-image-to-3d について

Meshy AI の Multi-Image to 3D API で、同じオブジェクトの1〜4方向の写真からテクスチャ付き3Dモデルを生成し、アクティブなシーンへ読み込む Blender スキルです。複数角度の写真からモデルを作成する用途に向いています。

主な機能

  1. 01同じオブジェクトの画像を1〜4枚入力
  2. 02Meshy AIでテクスチャ付き3Dモデルを生成
  3. 03トポロジーとポリゴン数を設定
  4. 04GLBやFBXなどの出力形式を選択
  5. 05生成モデルをBlenderに読み込み

活用シーン

  1. 01商品写真から3Dアセットを作成
  2. 02正面・背面・側面の画像からモデルを生成
  3. 03Meshyで生成したモデルを現在のシーンに読み込み

MCP 対応

Blender MCPへの接続が必要で、生成モデルの読み込みに `execute_blender_code` ツールを使用します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kevinbadi/blender-skills --skill multi-image-to-3d

インストール後、Claude Code で/multi-image-to-3dを入力して読み込まれたか確認します。

詳細

複数画像から3Dモデルを作成するBlenderスキル

Meshy AIのMulti-Image to 3D APIを使用して、同じオブジェクトを異なる角度から撮影した1~4枚の写真をテクスチャ付き3Dモデルに変換し、アクティブなBlenderシーンにインポートします。角度が多いほど、ジオメトリとテクスチャの精度が向上します。

使用する場面

次の場合にこのスキルを使用します:

  • ユーザーが同じオブジェクトの写真を複数枚提供し、3Dモデルを作成したい場合
  • ユーザーが「複数の角度から3D化」「これらの画像を3Dに変換」「この写真から3Dモデルを作成」と依頼した場合
  • ユーザーが単一画像から作成する場合よりも精度の高い3Dモデルを求めている場合
  • ユーザーが製品、キャラクター、オブジェクトの正面、背面、側面の写真を持っている場合

前提条件

  • Meshy API Key:メモリから取得します(reference_meshy_api.md)
  • Blender MCP:接続されている必要があります(blender-mcpアドオンがポート9876で実行中)
  • 画像:ローカルファイルパス(.jpg、.jpeg、.png)または誰でもアクセスできるURLを1~4個
  • 同じオブジェクト:すべての画像に同じオブジェクトを異なる角度から写す必要があります

フロー

ステップ1:画像を準備する

ローカルファイルごとに、base64エンコードしてdata URIに変換します:

import base64, json

image_paths = ["front.png", "back.png", "side.png"]  # user-provided paths
image_urls = []

for path in image_paths:
    with open(path, 'rb') as f:
        b64 = base64.b64encode(f.read()).decode()
    ext = path.rsplit('.', 1)[-1].lower()
    mime = 'image/jpeg' if ext in ('jpg', 'jpeg') else 'image/png'
    image_urls.append(f"data:{mime};base64,{b64}")
ステップ2:複数画像から3Dを生成するタスクを作成する

base64文字列はCLI引数に収まらないため、ペイロードをJSONファイルに書き込みます:

payload = {
    "image_urls": image_urls,  # array of 1-4 data URIs or public URLs
    "ai_model": "meshy-6",
    "enable_pbr": True,
    "should_texture": True,
    "target_formats": ["glb"]
}

with open("output/request.json", "w") as f:
    json.dump(payload, f)

次にPOSTします:

curl -s https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${MESHY_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d @output/request.json

レスポンス:{"result": "<task_id>"}

ステップ3:完了を確認する
curl -s https://api.meshy.ai/openapi/v1/multi-image-to-3d/<task_id> \
  -H "Authorization: Bearer ${MESHY_API_KEY}"

15秒ごとに確認します。statusを確認してください:

  • PENDING — キューに登録済み(キュー内の位置はpreceding_tasksで確認)
  • IN_PROGRESS — 生成中(進捗率はprogressで確認)
  • SUCCEEDED — 完了。model_urls.glbからダウンロードします
  • FAILED — task_error.messageを確認します
ステップ4:GLBをダウンロードする
curl -L -o "output/<filename>.glb" "<model_urls.glb>"
ステップ5:Blenderにインポートする

Blender MCPのexecute_blender_codeツールを使用します:

import bpy

# Clear scene (optional)
for obj in bpy.data.objects:
    bpy.data.objects.remove(obj, do_unlink=True)

# Import GLB
bpy.ops.import_scene.gltf(filepath="<path_to_glb>")

# Frame imported object
bpy.ops.object.select_all(action='SELECT')

# Add basic lighting
import math
from mathutils import Vector, Euler
bpy.ops.object.light_add(type='AREA', location=(2, -2, 3))
key = bpy.context.active_object
key.data.energy = 500
key.data.size = 3

# Set viewport to material preview
for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        for space in area.spaces:
            if space.type == 'VIEW_3D':
                space.shading.type = 'MATERIAL'

設定オプション

オプションデフォルト説明
ai_modelmeshy-6meshy-5、meshy-6、またはlatest
topologytrianglequadまたはtriangleメッシュ
target_polycount30000100~300,000ポリゴン
enable_pbrtrueメタリック/粗さ/法線マップ
symmetry_modeautooff、auto、またはon
pose_mode""a-pose、t-pose、または空
should_texturetrueテクスチャを生成します
should_remeshfalse目標ポリゴン数/トポロジーに合わせてリメッシュします
remove_lightingtrue照明が焼き込まれていないクリーンなテクスチャを作成します
image_enhancementtrue入力画像を最適化します
target_formatsall配列:glb、obj、fbx、stl、usdz、3mf

最良の結果を得るためのヒント

  • 異なる角度:正面、背面、左側面、右側面が最適です
  • 一貫した照明:すべての写真で同じ照明条件にします
  • シンプルな背景:無地または白の背景が適しています
  • 同じオブジェクト:すべての画像に必ず同じオブジェクトを写してください
  • 2~4枚の画像:角度が多いほど精度が向上しますが、4枚を超えると効果は徐々に小さくなります

エラー処理

  • 400:画像数が無効(1~4枚である必要があります)、形式が不正、またはURLにアクセスできません
  • 402:Meshyクレジットが不足しています
  • 429:レート制限です。待ってから再試行してください
  • FAILEDステータス:task_error.messageをユーザーに伝えてください

コメント