Difference between revisions of "Headless Client/Server/ko"

From Neos Wiki
Jump to navigation Jump to search
(Updating to match new version of source page)
 
(38 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
<div style="font-size:4em;">This file is under deprecation please see [[Headless Client]] for the new file</div>
 +
 +
 
<languages/>
 
<languages/>
 
<b>헤드리스 클라이언트/서버</b>는 NEOS의 커맨드 라인(Console) 버전으로, 서버 등과 같은 그래픽이 배제된 환경하에서 동작합니다.
 
<b>헤드리스 클라이언트/서버</b>는 NEOS의 커맨드 라인(Console) 버전으로, 서버 등과 같은 그래픽이 배제된 환경하에서 동작합니다.
  
이 기능에 접근하기 위한 조건으로 사용자의 페트레온에서의 등급이 '''Gunter''' 이상이어야 합니다. 우리의 디스코드 체널중 '''#headless-client'''에 접속하거나 또는 관리자를 통하여 이 기능에 접근하기 위한 코드를 발급받을 수 있습니다.
+
이 기능에 접근하기 위한 조건으로 사용자의 페트레온에서의 등급이 '''Gunter''' 이상거나 '''Neos Pro''' 를 사용하고 있어야 합니다. 우리의 [https://discord.com/invite/neosvr 디스코드] 체널 리스트에서 '''#headless-client'''에 접속하거나 또는 관리자를 통하여 이 기능에 접근하기 위한 코드를 발급받을 수 있습니다.
 +
 
 
== 설치 ==
 
== 설치 ==
  
* SteamCMD 명령을 사용하는 경우
+
=== 방법 1 ===
:<code>app_update 740250 -beta headless-client -betapassword 디스코드에서_발급받은_코드</code>
+
스팀으로 설치하는 경우:
<br/>
+
* 스팀 내 라이브러리에서 Neos VR을 찾아 마우스 우클릭을 합니다.
 +
* "속성"을 선택하고, 표시되는 속성 창에서 "BETAs" 탭을 클릭합니다.
 +
* 디스코드 체널에서 발급받은 코드를 베타코드 입력창에 입력합니다.
 +
* "headless-client"를 선택합니다.
  
*그래픽 환경에서 설치하는 경우
+
=== 방법 2 ===
# 스팀 내 라이브러리에서 Neos VR을 찾아 마우스 우클릭을 합니다.
+
SteamCMD를 사용하는 경우
# "속성"을 선택하고, 표시되는 속성 창에서 "BETAs" 탭을 클릭합니다.
+
* SteamCMD 로그인 후, 아래의 명령을 복사하여 붙여 넣습니다.
# 디스코드 체널에서 발급받은 코드를 베타코드 입력창에 입력합니다.
+
* <code>app_update 740250 -beta headless-client -betapassword 디스코드에서_발급받은_코드</code>
# "headless-client"를 선택합니다.
 
  
 
== 설정 ==
 
== 설정 ==
# 스팀에서 Neos VR의 업데이트가 끝나면, 로컬저장소 열기를 이용하여 게임이 설치된 폴더로 이동합니다.
+
* 스팀에서 Neos VR의 업데이트가 끝나면, 로컬저장소 열기를 이용하여 게임이 설치된 폴더로 이동합니다.
# 새로 "Headless Client" 폴더가 생성되었음을 확인할 수 있으며, 설정 파일은 그 아래 Config폴더에 있는 DefaultConfig.json 입니다.
+
* 새로 "Headless Client" 폴더가 생성되었음을 확인할 수 있으며, 설정 파일은 그 아래 Config폴더에 있는 DefaultConfig.json 입니다.
# Config/DefaultConfig.json 파일을 열어 설정을 수행하세요. (단, 로그인 설정에서는 Neos VR 메인 계정을 이용하지 말아 주세요.)
+
* Config/DefaultConfig.json 파일을 열어 설정을 수행하세요. (단, 로그인 설정에서는 Neos VR 메인 계정을 이용하지 말아 주세요.)
 +
 
 +
Steam에서 업데이트가 끝나면 '''[https://steamcommunity.com/sharedfiles/filedetails/?id=760447682 설치 폴더]'''로 이동하세요. "Headless Client" 하위 폴더에서 헤드리스 클라이언트를 찾을 수 있습니다. Config/DefaultConfig.json 파일을 수정하여 헤드리스 기동시 자동으로 로그인(부계정을 하나 만들어 이용하세요)하고 특정 월드의 세션을 준비하도록 설정하실 수 있습니다. 아래는 설정파일의 예제입니다.
 +
 
 
  {
 
  {
 +
  "comment": "",
 
   "tickRate": 60.0,
 
   "tickRate": 60.0,
   "usernameOverride": "10 year old ThinkPad",
+
   "maxConcurrentAssetTransfers": 4,
 +
  "usernameOverride": null,
 
   "loginCredential": null,
 
   "loginCredential": null,
 
   "loginPassword": null,
 
   "loginPassword": null,
   "startWorld": {
+
   "startWorlds": [
    "sessionName": "Headless Lounge",
+
    {
    "description": "This one is running on my 10 year old TabletPC. Let's see how well it runs!",
+
      "isEnabled": true,
    "maxUsers": 16,
+
      "sessionName": "",
    "accessLevel": "Anyone",
+
      "customSessionId": null,
    "tags": null,
+
      "description": null,
    "mobileFriendly": false,
+
      "maxUsers": 12,
    "loadWorldURL": null,
+
      "accessLevel": "Anyone",
    "loadWorldPresetName": "SpaceWorld",
+
      "hideFromPublicListing": false,
    "defaultUserRoles": {
+
      "tags": [
       "Gourry": "Admin"
+
        "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": 월드의 기본형을 선택합니다. 사용할 수 있는 유형은 "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" 그리고 "UIX Test". 입니다.
+
* <code>loadWorldPresetName</code> : 월드의 기본형을 선택합니다. 사용할 수 있는 유형은 "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" 그리고 "UIX Test". 입니다.
 +
* <code>accessLevel</code> 항목은 헤드리스에 접근 가능한 유형을 정의하며, 아래의 값중 하나를 설정하시면 됩니다.
 +
** "Private": 비공개 (초대로만 참여가 가능)
 +
** "LAN": LAN(같은 네트워크 망) 사용자만 참여 가능
 +
** "Friends": 헤드리스 계정의 연락처에 있는 사람만 참여가능
 +
** "FriendsOfFriends": 헤드리스 계정의 연락처에 있는 사람의 친구까지만 허용
 +
** "RegisteredUsers": 네오스 계정으로 로그인 한 사용자만 허용
 +
** "Anyone": 참여에 제한이 없음
  
*"defaultUserRoles"는 월드에 참여하는 사람들에게 부여할 기본 권한을 지정하는 옵션입니다. 값은 "사용자명": "권한" 형식으로 작성하시면 되고, "권한"에 입력 가능한 값은 "Admin", "Builder", "Moderator", "Guest", "Spectator" 중 한가지를 넣으시면 됩니다.
+
* <code>"defaultUserRoles"</code>는 월드에 참여하는 사람들에게 부여할 기본 권한을 지정하는 옵션입니다. 값은 "사용자명": "권한" 형식으로 작성하시면 되고, "권한"에 입력 가능한 값은 "Admin", "Builder", "Moderator", "Guest", "Spectator" 중 한가지를 넣으시면 됩니다.
 
4. 클라이언트 실행
 
  
== Configuration for local or Cloud world save ==
+
* <code>"loginCredential"</code> 속성에는 헤드리스 서버를 운용하기 위한 계정 정보를 설정해야 합니다. 동일한 계정으로 서버와 일반 클라이언트를 동시에 접속할 수 없으므로, 별개의 보조 계정을 생성하여 운영하시는것을 추천합니다.
To configure Headless Client/Server to act as a local storage server, set your world to <code>"saveAsOwner" : "LocalMachine"</code> (will be replaced after first execution with it's unique <code>startWorldURL</code>) as well as <code>"saveOnExit" : true</code> and your desired <code>autoSaveInterval</code>.<br />
+
 
If you want the world data saved to the cloud (a valid dedicated neos account will be needed), set <code> "saveAsOwner" : "CloudUser"</code>. </br>
+
* <code>"customSessionId"</code> 속성을 설정하면, 세션 URL의 주소를 <code>S-[userID]:[임의의 문자열]</code> 형식으로 사용할 수 있게 됩니다. 여기서 <code>[UserID]</code>는 헤드리스 서버를 운용중인 계정의 userID 값을 말합니다. <code>[임의의 문자열]</code>은 원하시는 문자열을 입력하시면 됩니다.
Please use the <code>shutdown</code> command to allow the server to save any unsaved changes on shutdown.
+
 
Config file example:
+
* 중첩 세션에 사용되는 <code>"parentSessionIds"</code>는 동적인 세션ID를 사용자 정의하에 수동으로 지정하는데 사용됩니다. 이것으로 공개 헤드리스 서버 목록에 표시되지 않는 중첩세션이 허용됩니다.
{
+
 
 +
* 실행파일을 통해 클라이언트를 시작하십시오.
 +
 
 +
== 로컬 및 클라우드 월드의 저장 설정 ==
 +
월드 정보를 로컬 컴퓨터에 저장하실때는 <code>"saveAsOwner" : "LocalMachine"</code>로 설정해 주세요.(클라이언트 실행 후, 고유한 <code>startWorldURL</code>로 자동변경 됩니다). 또한, <code>"saveOnExit" : true</code><code>autoSaveInterval</code>도 원하는대로 설정하여 주세요.<br/>
 +
 
 +
만약, 월드를 클라우드에 저장하고 싶으실때는 아래의 옵션을 설정하세요.(네오스 계정이 있어야 합니다.)
 +
<code> "saveAsOwner" : "CloudUser"</code>. </br>
 +
 
 +
세부 설정에 따라 다르지만, 일반적으로 <code>shutdown</code> 명령을 통해 저장 및 종료를 수행할 수 있습니다.
 +
 
 +
환경설정 샘플파일
 +
{
 
   "tickRate": 60.0,
 
   "tickRate": 60.0,
 
   "usernameOverride": null,
 
   "usernameOverride": null,
Line 74: Line 129:
 
   "cacheFolder": null
 
   "cacheFolder": null
 
  }
 
  }
 +
 +
== 클라우드 변수 사용 설정 ==
 +
 +
클라우드 변수에 대한 자세한 설명은 [[Coud Variables]]를 확인하십시오.
 +
 +
* <code>roleCloudVariable</code>를 사용하면, 클라우드 변수를 기반으로 role을 자동할당시킬 수 있습니다.
 +
** 이를 이용해 월드에서 클라우드 변수와 값을 사용자에게 부여하고, role을 결정지을 수 있게 합니다.
 +
** 클라우드 변수의 자료형은 string 이어야 합니다. 변수에 저장될 값은, 사용자에게 부여하려는 역할명과 같습니다.
 +
** 클라우드 변수의 권한 설정이, 본인이 아닌 다른 사람이 수정할 수 있는<code>definition_owner</code>로 되어있지 않은지 점검하세요. 이 권한이 있는 경우, 타인이 권한을 직접 조정할 수 있게 됩니다.
 +
** 값이 지정되지 않은 사용자에겐 기본 Role을 할당시키는게 일반적입니다.
 +
 +
* <code>allowUserCloudVariable</code>을 사용하면, 사용자가 세션에 언제나 참여할 수 있도록 합니다.
 +
** 변수의 자료형은 bool 타입 이어야 하고, 지정된 사용자에겐 값이 true 여야 합니다.
 +
** 이 기능은 초대를 받은것과 동일하게 동작합니다. 참여 제한인원과 상관없이, 그리고 비공개로 설정된 경우에도 참여할 수 있습니다.
 +
** 위와 동일한 보안적 주의사항이 요구됩니다. 적절한 권한을 가진 변수를 사용하세요.
 +
 +
* <code>denyUserCloudVariable</code>를 사용하시면, 클라우드 변수를 이용한 세션 참여금지를 설정할 수 있습니다.
 +
** 이 기능은 <code>allowUserCloudVariable</code>와 유사하지만, 값이 True일때 사용자의 참여가 거부됩니다.(즉, 반대로 동작함)
 +
** 이 설정은 유사한 다른 설정보다 높은 우선순위에 있습니다.
 +
 +
* <code>requiredUserJoinCloudVariable</code> 사용시, 클라우드 변수를 통해 사용자 참여를 허용합니다. 변수의 값은 True 여야 합니다.
 +
** 참여 거부 메세지를 requiredUserJoinCloudVariableDenyMessage 속성을 통해 수동으로 설정할 수 있습니다.
 +
** 변수에 지정되지 않은 사용자는 세션에 참여할 수 없습니다.
 +
** <code>allowUserCloudVariable</code> 속성과 달리 참여시 자동으로 권한이 부여되지는 않고, 보편적인 규칙(공개세션 여부, 최대 허용 사용자수 등)하에 참여 가능 여부가 결정됩니다.
 +
** 이 설정보다 <code>allowUserCloudVariable</code> 설정이 우선순위가 더 높습니다.
 +
** 이 변수는 최대 허용인원 및 관련 메세지 수동설정등을 이용하여 세션을 제어하는데 사용할 수 있습니다.
 +
 +
== 명령어 ==
 +
[[Headless Client/Commands/ko|헤드리스 클라이언트의 명령어]] 문서에서 명령어 목록을 확인하실 수 있습니다.

Latest revision as of 16:14, 1 December 2021

This file is under deprecation please see Headless Client for the new file


Other languages:
English • ‎français • ‎čeština • ‎日本語 • ‎한국어

헤드리스 클라이언트/서버는 NEOS의 커맨드 라인(Console) 버전으로, 서버 등과 같은 그래픽이 배제된 환경하에서 동작합니다.

이 기능에 접근하기 위한 조건으로 사용자의 페트레온에서의 등급이 Gunter 이상거나 Neos Pro 를 사용하고 있어야 합니다. 우리의 디스코드 체널 리스트에서 #headless-client에 접속하거나 또는 관리자를 통하여 이 기능에 접근하기 위한 코드를 발급받을 수 있습니다.

설치

방법 1

스팀으로 설치하는 경우:

  • 스팀 내 라이브러리에서 Neos VR을 찾아 마우스 우클릭을 합니다.
  • "속성"을 선택하고, 표시되는 속성 창에서 "BETAs" 탭을 클릭합니다.
  • 디스코드 체널에서 발급받은 코드를 베타코드 입력창에 입력합니다.
  • "headless-client"를 선택합니다.

방법 2

SteamCMD를 사용하는 경우

  • SteamCMD 로그인 후, 아래의 명령을 복사하여 붙여 넣습니다.
  • app_update 740250 -beta headless-client -betapassword 디스코드에서_발급받은_코드

설정

  • 스팀에서 Neos VR의 업데이트가 끝나면, 로컬저장소 열기를 이용하여 게임이 설치된 폴더로 이동합니다.
  • 새로 "Headless Client" 폴더가 생성되었음을 확인할 수 있으며, 설정 파일은 그 아래 Config폴더에 있는 DefaultConfig.json 입니다.
  • Config/DefaultConfig.json 파일을 열어 설정을 수행하세요. (단, 로그인 설정에서는 Neos VR 메인 계정을 이용하지 말아 주세요.)

Steam에서 업데이트가 끝나면 설치 폴더로 이동하세요. "Headless Client" 하위 폴더에서 헤드리스 클라이언트를 찾을 수 있습니다. Config/DefaultConfig.json 파일을 수정하여 헤드리스 기동시 자동으로 로그인(부계정을 하나 만들어 이용하세요)하고 특정 월드의 세션을 준비하도록 설정하실 수 있습니다. 아래는 설정파일의 예제입니다.

{
 "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 : 월드의 기본형을 선택합니다. 사용할 수 있는 유형은 "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" 그리고 "UIX Test". 입니다.
  • accessLevel 항목은 헤드리스에 접근 가능한 유형을 정의하며, 아래의 값중 하나를 설정하시면 됩니다.
    • "Private": 비공개 (초대로만 참여가 가능)
    • "LAN": LAN(같은 네트워크 망) 사용자만 참여 가능
    • "Friends": 헤드리스 계정의 연락처에 있는 사람만 참여가능
    • "FriendsOfFriends": 헤드리스 계정의 연락처에 있는 사람의 친구까지만 허용
    • "RegisteredUsers": 네오스 계정으로 로그인 한 사용자만 허용
    • "Anyone": 참여에 제한이 없음
  • "defaultUserRoles"는 월드에 참여하는 사람들에게 부여할 기본 권한을 지정하는 옵션입니다. 값은 "사용자명": "권한" 형식으로 작성하시면 되고, "권한"에 입력 가능한 값은 "Admin", "Builder", "Moderator", "Guest", "Spectator" 중 한가지를 넣으시면 됩니다.
  • "loginCredential" 속성에는 헤드리스 서버를 운용하기 위한 계정 정보를 설정해야 합니다. 동일한 계정으로 서버와 일반 클라이언트를 동시에 접속할 수 없으므로, 별개의 보조 계정을 생성하여 운영하시는것을 추천합니다.
  • "customSessionId" 속성을 설정하면, 세션 URL의 주소를 S-[userID]:[임의의 문자열] 형식으로 사용할 수 있게 됩니다. 여기서 [UserID]는 헤드리스 서버를 운용중인 계정의 userID 값을 말합니다. [임의의 문자열]은 원하시는 문자열을 입력하시면 됩니다.
  • 중첩 세션에 사용되는 "parentSessionIds"는 동적인 세션ID를 사용자 정의하에 수동으로 지정하는데 사용됩니다. 이것으로 공개 헤드리스 서버 목록에 표시되지 않는 중첩세션이 허용됩니다.
  • 실행파일을 통해 클라이언트를 시작하십시오.

로컬 및 클라우드 월드의 저장 설정

월드 정보를 로컬 컴퓨터에 저장하실때는 "saveAsOwner" : "LocalMachine"로 설정해 주세요.(클라이언트 실행 후, 고유한 startWorldURL로 자동변경 됩니다). 또한, "saveOnExit" : trueautoSaveInterval도 원하는대로 설정하여 주세요.

만약, 월드를 클라우드에 저장하고 싶으실때는 아래의 옵션을 설정하세요.(네오스 계정이 있어야 합니다.) "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
}

클라우드 변수 사용 설정

클라우드 변수에 대한 자세한 설명은 Coud Variables를 확인하십시오.

  • roleCloudVariable를 사용하면, 클라우드 변수를 기반으로 role을 자동할당시킬 수 있습니다.
    • 이를 이용해 월드에서 클라우드 변수와 값을 사용자에게 부여하고, role을 결정지을 수 있게 합니다.
    • 클라우드 변수의 자료형은 string 이어야 합니다. 변수에 저장될 값은, 사용자에게 부여하려는 역할명과 같습니다.
    • 클라우드 변수의 권한 설정이, 본인이 아닌 다른 사람이 수정할 수 있는definition_owner로 되어있지 않은지 점검하세요. 이 권한이 있는 경우, 타인이 권한을 직접 조정할 수 있게 됩니다.
    • 값이 지정되지 않은 사용자에겐 기본 Role을 할당시키는게 일반적입니다.
  • allowUserCloudVariable을 사용하면, 사용자가 세션에 언제나 참여할 수 있도록 합니다.
    • 변수의 자료형은 bool 타입 이어야 하고, 지정된 사용자에겐 값이 true 여야 합니다.
    • 이 기능은 초대를 받은것과 동일하게 동작합니다. 참여 제한인원과 상관없이, 그리고 비공개로 설정된 경우에도 참여할 수 있습니다.
    • 위와 동일한 보안적 주의사항이 요구됩니다. 적절한 권한을 가진 변수를 사용하세요.
  • denyUserCloudVariable를 사용하시면, 클라우드 변수를 이용한 세션 참여금지를 설정할 수 있습니다.
    • 이 기능은 allowUserCloudVariable와 유사하지만, 값이 True일때 사용자의 참여가 거부됩니다.(즉, 반대로 동작함)
    • 이 설정은 유사한 다른 설정보다 높은 우선순위에 있습니다.
  • requiredUserJoinCloudVariable 사용시, 클라우드 변수를 통해 사용자 참여를 허용합니다. 변수의 값은 True 여야 합니다.
    • 참여 거부 메세지를 requiredUserJoinCloudVariableDenyMessage 속성을 통해 수동으로 설정할 수 있습니다.
    • 변수에 지정되지 않은 사용자는 세션에 참여할 수 없습니다.
    • allowUserCloudVariable 속성과 달리 참여시 자동으로 권한이 부여되지는 않고, 보편적인 규칙(공개세션 여부, 최대 허용 사용자수 등)하에 참여 가능 여부가 결정됩니다.
    • 이 설정보다 allowUserCloudVariable 설정이 우선순위가 더 높습니다.
    • 이 변수는 최대 허용인원 및 관련 메세지 수동설정등을 이용하여 세션을 제어하는데 사용할 수 있습니다.

명령어

헤드리스 클라이언트의 명령어 문서에서 명령어 목록을 확인하실 수 있습니다.