ヘッドレスクライアント/サーバー
Headlessクライアント/サーバーは、グラフィカルユーザーインターフェイスを除くNeosコマンドラインビルドであり、サーバーなどのレンダリングが不要なシナリオ(サーバーとして使用する場合など)で効果的に実行できます。Neos Proユーザーと、 Gunterレベル以上のすべての Patronsは、ヘッドレスクライアント/サーバービルドにアクセスできます。 Discordチャネル #headless-clientを参照するか、管理者に連絡してアクセスコードを取得してください。
インストール
方法1
Steamを使用する場合:
- Steamに移動し、Neos Propertiesを開いて、BETAsタブに移動します
- コードを使用してベータ版ブランチを有効化します。
- ヘッドレスクライアント(headless-client)ブランチに切り替えます
方法2
SteamCMDを使用する場合:
- 次のコマンドをSteamCMDに貼り付けます:
app_update 740250 -beta headless-client -betapassword your_code
設定
- Steamがアップデートを完了したら、インストールフォルダインストールフォルダを開きます。 ヘッドレスクライアントは、"Headless Client"サブフォルダにあります。
- Config/DefaultConfig.jsonファイルを使用して、スタートアップワールドを構成したり、サーバーにアカウントをログインさせたりすることができます(メインのNeosアカウントは使用しないでください)。 使用、変更できる構成の例を次に示します。
{ "comment": "", "tickRate": 60.0, "maxConcurrentAssetTransfers": 4, "usernameOverride": null, "loginCredential": null, "loginPassword": null, "startWorlds": [ { "isEnabled": true, "sessionName": "", "customSessionId": null, "description": null, "maxUsers": 12, "accessLevel": "Anyone", "hideFromPublicListing": false, "tags": [ "test1", ], "mobileFriendly": false, "loadWorldURL": "", "saveAsOwner": null, "loadWorldPresetName": null, "forcePort": null, "keepOriginalRoles": false, "defaultUserRoles": { "User": "Admin" }, "autoInviteUsernames": null, "parentSessionIds": [ "" ], "autoInviteMessage": null, "autoRecover": true, "idleRestartInterval": -1.0, "forcedRestartInterval": -1.0, "saveOnExit": false, "autosaveInterval": -1.0, "awayKickMinutes": -1.0, "autoSleep": true } ], "dataFolder": null, "cacheFolder": null, "allowedUrlHosts": null, "autoSpawnItems": null, "metamovieRoles": null }
loadWorldPresetName
: neosワールドテンプレートに基づいてワールドをロードします。テンプレートは次のとおりです: "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" and "UIX Test"
accessLevel
: アクセスレベルの名前は、ゲーム内とは少し異なります。- "Private": プライベート(招待のみ)
- "LAN": LAN
- "Friends": フレンド
- "FriendsOfFriends": フレンド+
- "RegisteredUsers": 登録ユーザー
- "Anyone": 誰でも
defaultUserRoles
は、ワールドのユーザーとアクセスレベルを定義します。
形式は"USERNAME": "ROLE"で記述します。権限は次の通りです。 "Admin", "Builder", "Moderator", "Guest", "Spectator"
"loginCredential"
は、サーバーを実行するためのNeosアカウントを記述します。自分のサーバーに参加する場合と同様に、サーバーを実行するための別のアカウントを作成することをお勧めします。クライアントとサーバーで同じアカウントを使用して実行しているサーバーに参加することはできません。
"customSessionId"
は、次のようなフォーマットを受け付けます:S-[userID]:[anything]
ここで、[UserID]
はヘッドレス・セッションを実行しているアカウントのユーザーIDで、[anything]
は任意の形式です。
- ネストしたセッションに利用される
"parentSessionIds"
は、これがないとセッションIDが動的になってしまうため、上記のノートを使って親ワールドのカスタムセッションIDを手動で設定することが推奨されます。これにより、公開されているヘッドレスサーバーのリストには表示されないネストされたセッションが可能になります。
- ファイルを実行してクライアントを起動します
ローカルやクラウドワールド保存の設定
ヘッドレスクライアントをローカルストレージサーバーとして機能するように構成するには、ワールドを"saveAsOwner":"LocalMachine"
に設定します。(最初の実行後に一意のstartWorldURL
に置き換えられます)"saveOnExit":true
かautoSaveInterval
が必要です。
ワールドデータをクラウドに保存する場合(有効な専用Neosアカウントが必要です)、 "saveAsOwner" : "CloudUser"
.を設定します。
サーバーがシャットダウン時に未保存の変更を保存できるようにするには、shutdown
コマンドを使用してください。
設定ファイルの例:
{ "tickRate": 60.0, "usernameOverride": null, "loginCredential": null, "loginPassword": null, "startWorlds": [ { "sessionName": "My World 1", "description": null, "maxUsers": 32, "accessLevel": "LAN", "tags": null, "mobileFriendly": false, "loadWorldPresetName": "BasicEmpty", "saveAsOwner" : "LocalMachine", "autoRecover": true, "saveOnExit" : true, "autoSaveInterval" : 240, "forcedRestartInterval": -1.0 } ], "dataFolder": null, "cacheFolder": null }
Cloud Variable を活用した設定
Cloud Variableについて詳細を確認したい場合は、 クラウドバリアブル(Cloud Variables) を確認してください。
roleCloudVariable
: クラウド変数に基づいて役割を自動で割り当てます。- クラウド変数を定義し、その値をユーザーに割り当てることで、与えられた世界でのユーザーの役割を決定することができます。
- 変数は文字列(
string
)型である必要があります。割り当てる値は、与えられたユーザーに与えたい役割の名前と同じです。 - 他のユーザに代わって書き込むことができるクラウド変数(
definition_owner
)を使用することを強くお勧めします。そうしないと、ユーザが自分に高い権限のロールを割り当てることができるかもしれません。 - ユーザーに値が設定されていない場合は、通常の方法でデフォルトロールを決定します。
allowUserCloudVariable
: クラウド変数を使用して常にユーザーをセッションに入れるようにします。- クラウド変数は
bool
型である必要があり、与えられたユーザに対して true に設定されます。 - これは、ユーザーに招待状が送られたのと同じことで、MaxUsers の制限に関わらず、またセッションが Private に設定されていても参加できます(ユーザーは取得する必要があります)。
- 上記と同様のに、自分が適切にコントロールできる正しいクラウド変数を使用するようにしてください。
- クラウド変数は
denyUserCloudVariable
: クラウド変数を介してユーザーの参加アクセスを拒否することができます。- これは
allowUserCloudVariable
と同様に記述しますが、指定されたユーザーの値が true の場合、そのユーザーはアクセスを拒否されます。 - これは常に他の変数よりも優先されます。
- これは
requiredUserJoinCloudVariable
: 参加できるユーザをクラウド変数を利用して制御しますrequiredUserJoinCloudVariableDenyMessage
でカスタムの拒否メッセージを設定できます。allowUserCloudVariable
とは異なり、変数が true に設定されていない場合、そのユーザーはアクセスを許可されません。allowUserCloudVariable
とは異なり、変数を true に設定しても、自動的にアクセスが許可されるわけではなく、他のルール(パブリックアクセス、セッションユーザー制限など)を通過する必要があります。- そのため、セッションの最大ユーザー数の制限を回避せず、またカスタムメッセージを提供してセッションへのアクセスを制御するのに便利です。
コマンド
コマンドの一覧はヘッドレスクライアントコマンドを参照して下さい。