Ця сторінка ще не перекладена українською. Показано англійську версію. Переглянути англійською

Спільне рецензування

Підготовка 3D-ресурсів для командного огляду із посиланнями для спільного перегляду.

Огляд робочого процесу

Ресурси для огляду
Моделі для рецензування
Підготовка
Створення бакету для огляду
Завантаження ресурсів
Трансляція в SVF2
Розповсюдження
Генерація URL-адрес перегляду
Створення посилань для огляду
Процес рецензування
Учасники команди
Збір зворотного зв’язку

Підхід CLI

Крок 1: Створення сесії огляду

# Create dedicated review bucket
REVIEW_ID="review-$(date +%Y%m%d-%H%M)"
raps bucket create --key "$REVIEW_ID" --policy transient --region US
echo "Review session: $REVIEW_ID"

Крок 2: Завантаження ресурсів для огляду

# Upload assets for review
for asset in ./review-assets/*; do
  [ -f "$asset" ] || continue
  raps object upload "$REVIEW_ID" "$asset"
  echo "Uploaded: $(basename "$asset")"
done

Крок 3: Трансляція всіх ресурсів

# Translate each asset
raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
  URN=$(raps object urn "$REVIEW_ID" "$key" --output plain)
  raps translate start "$URN" --format svf2
  echo "Translating: $key"
done

# Wait for all translations
sleep 60

# Check status
raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
  URN=$(raps object urn "$REVIEW_ID" "$key" --output plain)
  STATUS=$(raps translate manifest "$URN" 2>/dev/null | jq -r '.status // "pending"')
  echo "$key: $STATUS"
done

Крок 4: Генерація посилань для огляду

echo "# Review Session: $REVIEW_ID" > review-links.md
echo "Created: $(date)" >> review-links.md
echo "" >> review-links.md
echo "## Assets for Review" >> review-links.md
echo "" >> review-links.md

raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
  URN=$(raps object urn "$REVIEW_ID" "$key" --output plain)

  # Check if translated
  STATUS=$(raps translate manifest "$URN" 2>/dev/null | jq -r '.status // "pending"')

  if [ "$STATUS" = "success" ]; then
    # URL-encode the URN for viewer link
    ENCODED_URN=$(echo -n "$URN" | base64 | tr '+/' '-_' | tr -d '=')

    echo "### $key" >> review-links.md
    echo "- [Open in Viewer](https://viewer.autodesk.com/viewer?urn=${ENCODED_URN})" >> review-links.md
    echo "" >> review-links.md
  fi
done

cat review-links.md

Крок 5: Надання доступу команді

# Generate downloadable links for reference files
echo "" >> review-links.md
echo "## Reference Downloads" >> review-links.md
echo "(Links valid for 24 hours)" >> review-links.md
echo "" >> review-links.md

raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
  URL=$(raps object signed-url "$REVIEW_ID" "$key" --minutes 1440)
  echo "- [$key]($URL)" >> review-links.md
done

Конвеєр CI/CD

# .github/workflows/review-session.yml
name: Create Review Session

on:
  workflow_dispatch:
    inputs:
      review_name:
        description: 'Review session name'
        required: true
      assets_path:
        description: 'Path to assets (glob pattern)'
        required: true
      reviewers:
        description: 'Comma-separated reviewer emails'
        required: false

jobs:
  create-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install RAPS
        run: cargo install raps

      - name: Create review bucket
        env:
          APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
          APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
        run: |
          REVIEW_ID="review-$(date +%Y%m%d)-${{ github.run_id }}"
          raps bucket create --key "$REVIEW_ID" --policy transient --region US
          echo "REVIEW_ID=$REVIEW_ID" >> $GITHUB_ENV

      - name: Upload assets
        env:
          APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
          APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
        run: |
          for file in ${{ inputs.assets_path }}; do
            [ -f "$file" ] || continue
            raps object upload "$REVIEW_ID" "$file"
            echo "Uploaded: $(basename "$file")"
          done

      - name: Translate assets
        env:
          APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
          APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
        run: |
          raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
            URN=$(raps object urn "$REVIEW_ID" "$key" --output plain)
            raps translate start "$URN" --format svf2 --wait
          done

      - name: Generate review document
        env:
          APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
          APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
        run: |
          echo "# Review Session: ${{ inputs.review_name }}" > review.md
          echo "Created: $(date)" >> review.md
          echo "Review ID: $REVIEW_ID" >> review.md
          echo "" >> review.md
          echo "## Assets" >> review.md
          echo "" >> review.md

          raps object list "$REVIEW_ID" --output json | jq -r '.[].key' | while read key; do
            URN=$(raps object urn "$REVIEW_ID" "$key" --output plain)
            ENCODED=$(echo -n "$URN" | base64 | tr '+/' '-_' | tr -d '=')

            echo "### $key" >> review.md
            echo "- [View in Browser](https://viewer.autodesk.com/viewer?urn=$ENCODED)" >> review.md

            # Generate download link
            DOWNLOAD=$(raps object signed-url "$REVIEW_ID" "$key" --minutes 1440)
            echo "- [Download]($DOWNLOAD)" >> review.md
            echo "" >> review.md
          done

          echo "## Feedback" >> review.md
          echo "" >> review.md
          echo "Please add your comments below or reply to the review email." >> review.md

      - name: Upload review document
        uses: actions/upload-artifact@v4
        with:
          name: review-${{ inputs.review_name }}
          path: review.md

      # Optional: Send email notification
      # - name: Notify reviewers
      #   if: inputs.reviewers != ''
      #   run: |
      #     # Email notification logic here

Потік конвеєра

Ручний запуск
review_name + assets_path
Налаштування
Створення бакету для огляду
Завантаження ресурсів
Обробка
Трансляція всіх ресурсів
Генерація URL-адрес перегляду
Результат
review.md з посиланнями

Інтеграція MCP

Створення сесії огляду

User: "Set up a review session for the character models with links for the team"
Користувач
AI-асистент
RAPS MCP
APS Cloud
Користувач→AIСтворити сесію огляду
AI→MCPaps_bucket_create(key=“review-…”)
MCP→APSСтворення бакету
loopAI→MCPaps_object_upload(bucket, file)
loopMCP→APSЗавантаження
loopAI→MCPaps_translate_start(urn)
loopMCP→APSТрансляція
AI→AIГенерація URL-адрес перегляду
AI→КористувачПосилання для огляду готові

Відповідь AI:

Створено сесію огляду “Character Models Review”:

ID огляду: review-20240216-001 Ресурси: 5 моделей Статус: Усі транслювано та готово

Посилання для перегляду:

РесурсПереглядЗавантаження
hero_v2.fbxВідкритиЗавантажити
villain.fbxВідкритиЗавантажити
npc_guard.fbxВідкритиЗавантажити
pet_companion.fbxВідкритиЗавантажити
mount_horse.fbxВідкритиЗавантажити

Посилання дійсні протягом 24 годин. Поділіться з командою!

Перевірка статусу огляду

User: "How many people viewed the review assets?"

Відповідь AI:

Статистика сесії огляду (review-20240216-001):

Активність перегляду: (За останні 24 години)

РесурсПереглядиУнікальні глядачі
hero_v2.fbx125
villain.fbx84
npc_guard.fbx63
pet_companion.fbx42
mount_horse.fbx32

Всього унікальних глядачів: 6 Посилання закінчуються через: 18 годин


Шаблони огляду

Форма зворотного зв’язку

# Asset Review Feedback

**Asset:** [Asset Name]
**Reviewer:** [Your Name]
**Date:** [Date]

## Overall Assessment
- [ ] Approved
- [ ] Approved with minor changes
- [ ] Needs revision
- [ ] Rejected

## Criteria Rating (1-5)

| Criteria | Rating | Notes |
|----------|--------|-------|
| Visual Quality | | |
| Polygon Count | | |
| Texture Quality | | |
| Animation Quality | | |
| Technical Specs | | |

## Comments

[Your detailed feedback here]

## Requested Changes

1.
2.
3.

Скрипт очищення

#!/bin/bash
# cleanup-old-reviews.sh

# Delete review buckets older than 7 days
raps bucket list --output json | jq -r '.[] | select(.key | startswith("review-")) | .key' | while read bucket; do
  # Extract date from bucket name
  DATE=$(echo "$bucket" | grep -oE '[0-9]{8}')

  if [ -n "$DATE" ]; then
    BUCKET_AGE=$(( ($(date +%s) - $(date -d "$DATE" +%s)) / 86400 ))

    if [ "$BUCKET_AGE" -gt 7 ]; then
      echo "Deleting old review: $bucket (${BUCKET_AGE} days old)"
      raps bucket delete "$bucket" --force
    fi
  fi
done

Пов’язане