헤드리스 클라이언트/서버

From Neos Wiki
Revision as of 07:54, 30 August 2021 by Mirpasec (talk | contribs) (Created page with "* 중첩 세션에 사용되는 <code>"parentSessionIds"</code>는 동적인 세션ID를 사용자 정의하에 수동으로 지정하는데 사용됩니다. 이것으로 공...")
Jump to navigation Jump to search
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 설정이 우선순위가 더 높습니다.
    • 이 변수는 최대 허용인원 및 관련 메세지 수동설정등을 이용하여 세션을 제어하는데 사용할 수 있습니다.

명령어

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