메인 콘텐츠로 건너뛰기

VRHandsFrame Mods 및 사용자 확장 사양 (1.0.1)

소개

Steam 창작마당에서 공식 Mod를 설치하면 외부 API를 이용할 수 있습니다. API 키 등의 인증 정보는 직접 취득해 주세요.


Mod를 설치하면 설정 화면 사이드바 하단에 항목이 표시됩니다. 슬라이드 바를 ON으로 하면 내장 기능 대신 Mod가 사용됩니다. Mods 항목이 표시되지 않는 경우 VRHandsFrame 또는 Steam 클라이언트를 재시작해 주세요.

Mods Item


사용자 확장에 대하여

공식 Mod가 지원하지 않는 API를 이용하고 싶은 경우, 다음 두 가지 방법이 있습니다:

  • Extension Object를 기술한 새 json 파일을 추가한다 (권장)
  • 공식 user_extension.json 파일을 편집한다

Extension Object는 사용자 확장의 API 엔드포인트 URL, 요청/응답 파라미터 등의 정보를 정의하기 위한 객체입니다. user_extension.json은 몇 가지 Extension Object 예시를 포함하는 파일입니다.


파일 위치

Steam 창작마당에서 Mod를 설치하면, 앱 시작 시 아래 디렉터리에 필요한 user_extension.jsonmanifest.json 파일이 생성됩니다:

  • 이미지 인식용
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/VisionBaseMod/
  • 번역용
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/TranslationBaseMod/

이 위치에 Extension Object를 기술한 json 파일을 추가해 주세요. 파일 이름은 자유롭게 지정할 수 있지만, Extension Object의 "name" 키 값은 각 Mod 내에서 고유해야 합니다.

** 원본 user_extension.jsonmanifest.json 파일은 삭제하지 마세요! 이 파일들은 필수입니다. **


Mod 이용 가이드라인

  • VRHandsFrame 소프트웨어 사용권 계약을 준수해 주세요. https://store.steampowered.com//eula/2324090_eula_0
  • 다른 사용자의 데이터를 훔치는 방식으로 이용하지 마세요.
  • 호스팅 서비스의 상업적 광고(API 키나 구독 판매 등)에 이용하지 마세요.
  • 타인이 만든 사용자 확장을 이용할 때는 수상한 URL이 설정되어 있지 않은지 주의해 주세요.
  • VRHandsFrame 앱 개발자(Eureka Works)는 이미지 인식・번역 Mod의 이용 과정에서 사용자의 데이터를 저장하거나 열람하지 않습니다.
  • 데이터 취급에 관해서는 각 API 서비스의 이용 약관 및 개인정보 처리방침에 주의해 주세요.

Extension Object

name
required
string

확장의 이름

  • VRHandsFrame 설정 메뉴에 표시됩니다.
  • 이름은 각 Mod 내에서 고유해야 합니다. 다른 Extension Object의 이름과 중복되어서는 안 됩니다.
url
required
string

API 요청을 보낼 대상 URL

required
Key (object)

API 요청의 키가 되는 인증 정보입니다.

  • VRHandsFrame 설정 메뉴에서 붙여넣기・삭제할 수 있습니다.
  • 확장 설정을 공개할 때는 키를 직접 포함하지 않도록 주의해 주세요.
object

API 요청의 선택적 HTTP 헤더

required
Array of APIRequestObject (object) non-empty

API 요청에 필요한 파라미터

  • 요청은 HTTP POST 메서드로 전송됩니다.
  • 여러 종류의 파라미터 요소를 가지는 배열 객체라는 점에 주의해 주세요.
required
APIResponseObject (object)

API 응답으로 기대하는 파라미터

Example
{
  • "name": "OpenAI Vision Sample (gpt-4o-mini)",
  • "key": {
    • "type": "bearer",
    • "value": ""
    },
  • "headers": {
    • "Content-Type": "application/json"
    },
  • "request": [
    • {
      }
    ],
  • "response": {
    • "type": "json",
    • "jsonKey": "choices[0].message.content"
    }
}

API Request Object

type
required
string
Enum: "json" "form" "query"

파라미터 종류

  • json : JSON 형식
  • form : HTTP POST 폼 형식
  • query : HTTP URL 쿼리 파라미터 형식

query 파라미터 객체는 JSON 또는 폼 데이터와 조합할 수 있습니다. 그 경우 배열 요소로 나누어 정의해 주세요.

params
required
object

API 요청 파라미터

이용하려는 API의 사양에 맞춰 파라미터를 설정해 주세요. 다음 문자열은 플레이스홀더로 사용됩니다:

  • $image_png : 인식 대상 PNG 이미지 데이터(Base64 인코딩)
  • $image_jpg : 인식 대상 JPEG 이미지 데이터(Base64 인코딩)
  • $image_data : $image_png과 동일(하위 호환을 위해 유지)
Example
{
  • "type": "json",
  • "params": {
    • "image": "$image_png"
    }
}

API Response Object

type
required
string
Value: "json"
jsonKey
required
string

받고자 하는 텍스트 정보가 저장된 Json 키

Example
{
  • "type": "json",
  • "jsonKey": "choices[0].message.content"
}

user_extension.json

description
required
string

Mod 이름

version
required
string

Mod 버전

required
Array of ExtensionObject (object) >= 0 items

사용자 확장 정의

Example
{
  • "description": "Vision User Extension",
  • "version": "1.0.1",
  • "extensions": [
    • {
      }
    ]
}