Steamワークショップで公式Modをインストールすると、外部APIを利用できるようになります。 APIキーなどの認証情報は、各自で取得してください。
デフォルトで対応しているAPI (1.0.1):
- Google Cloud Vision (DOCUMENT_TEXT_DETECTION)
- Microsoft Azure AI Vision (Read API)
- *OpenAI Vision Sample (gpt4o-mini)
* ユーザー拡張の例として同梱
デフォルトで対応しているAPI (1.0.1):
- DeepL API
- Microsoft Azure AI Translator
- *Google App Script Sample (VRHandsFrame v1互換)
- *LibreTranslate
* ユーザー拡張の例として同梱
Modをインストールすると、設定画面のサイドバー下部に項目が表示されます。 スライドバーをONにすると、ビルトイン機能の代わりにModが使用されます。 Modsの項目が表示されない場合は、VRHandsFrameまたはSteamクライアントを再起動してください。

公式Modが対応していないAPIを利用したい場合は、以下の2つの方法があります:
Extension Object を記述した新しいjsonファイルを追加する (推奨)user_extension.json ファイルを編集するExtension Object は、ユーザー拡張のAPIエンドポイントURL、リクエスト/レスポンスのパラメータなどの情報を定義するためのオブジェクトです。
user_extension.json は、Extension Object のサンプルをいくつか含むファイルです。
SteamワークショップからModをインストールすると、アプリ起動時に以下のディレクトリへ必要な user_extension.json と manifest.json が生成されます:
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/VisionBaseMod/
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/TranslationBaseMod/
この場所に、Extension Object を記述したjsonファイルを追加してください。
ファイル名は自由ですが、Extension Object の "name" キーの値はMod内で一意である必要があります。
** 元の user_extension.json と manifest.json は削除しないでください! これらのファイルは必須です。 **
| name required | string 拡張の名前
|
| url required | string APIリクエストの送信先URL |
required | Key (object) APIリクエストのキーとなる認証情報です。
|
object APIリクエストの任意のHTTPヘッダー | |
| omitEmptyParams | boolean Default: false 置換後に空文字になったパラメータを送信しない
|
required | Array of APIRequestObject (object) non-empty APIリクエストに必要なパラメータ
|
required | APIResponseObject (object) APIレスポンスとして期待するパラメータ |
{- "name": "OpenAI Vision Sample (gpt-4o-mini)",
- "key": {
- "type": "bearer",
- "value": ""
}, - "headers": {
- "Content-Type": "application/json"
}, - "request": [
- {
- "type": "json",
- "params": {
- "model": "gpt-4o-mini",
- "messages": [
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What is in this image?"
}, - {
- "type": "image_url",
- "image_url": {
- "url": "data:image/png;base64,$image_data"
}
}
]
}
], - "max_tokens": 1024
}
}
], - "response": {
- "type": "json",
- "jsonKey": "choices[0].message.content"
}
}| type required | string Enum: "json" "form" "query" パラメータの種類
queryパラメータオブジェクトはJSONまたはフォームデータと組み合わせることができます。 その場合は配列の要素として分けて定義してください。 |
| params required | object APIリクエストのパラメータ 利用したいAPIの仕様に合わせてパラメータを設定してください。 以下の文字列はプレースホルダーとして使用されます:
|
{- "type": "json",
- "params": {
- "image": "$image_png"
}
}| type required | string Value: "json" |
| jsonKey required | string 受け取りたいテキスト情報が格納されているJSONキー
|
{- "type": "json",
- "jsonKey": "choices[0].message.content"
}| description required | string Modの名前 |
| version required | string Modのバージョン |
required | Array of ExtensionObject (object) >= 0 items ユーザー拡張の定義 |
{- "description": "Vision User Extension",
- "version": "1.0.1",
- "extensions": [
- {
- "name": "OpenAI Vision Sample (gpt-4o-mini)",
- "key": {
- "type": "bearer",
- "value": ""
}, - "headers": {
- "Content-Type": "application/json"
}, - "request": [
- {
- "type": "json",
- "params": {
- "model": "gpt-4o-mini",
- "messages": [
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What is in this image?"
}, - {
- "type": "image_url",
- "image_url": {
- "url": "data:image/png;base64,$image_data"
}
}
]
}
], - "max_tokens": 1024
}
}
], - "response": {
- "type": "json",
- "jsonKey": "choices[0].message.content"
}
}
]
}