세 번째로 연결된 게임 패드를 나타내는 전역 싱글톤입니다.
플랫폼이 지원하는 각 게임 패드마다 별도의 패드 오브젝트(Pad1, Pad2, ... PadN)가 있습니다.
Xbox One 및 PlayStation 4에서는 Pad 인터페이스가 콘솔의 기본 게임 패드 컨트롤러를 나타냅니다.
Windows에서는 Pad 인터페이스가 연결된 Xbox 컨트롤러를 나타냅니다. 연결된 모든 PlayStation 4 컨트롤러는 대신 PS4Pad1 ~ PS4Pad4 인터페이스로 나타냅니다.
다음 버튼 및 축 이름은 Windows와 Xbox One 모두에서 Xbox One 컨트롤러에 대해 사용할 수 있습니다.
- d_up, d_down, d_left, d_right: 방향 패드입니다.
- start, back
- left_thumb, right_thumb: 엄지스틱을 누르기만 하고 어느 방향으로도 움직이지 않았음을 나타냅니다.
- left_shoulder, right_shoulder
- left_trigger, right_trigger
- a, b, x, y
- left, right: 왼쪽 및 오른쪽 엄지스틱의 방향입니다.
- dpad: 축으로 나타낸 방향 패드입니다.
다음 버튼 및 축 이름은 Playstation 4에서 실행 중인 게임의 PlayStation 4 컨트롤러에 대해서만 사용할 수 있습니다.
- triangle, circle, cross, square
- l1 및 r1: 왼쪽 및 오른쪽 트리거 버튼입니다.
- l2 및 r2: 왼쪽 및 오른쪽 트리거 버튼(아날로그)입니다.
- l3 및 r3: 왼쪽 및 오른쪽 엄지스틱을 누르기만 하고 어느 방향으로도 움직이지 않았음을 나타냅니다.
- up, right, down, left: 방향 패드의 각 버튼입니다.
- options
- dpad: 축으로 나타낸 방향 패드입니다.
- left 및 right: 왼쪽 및 오른쪽 엄지스틱의 방향입니다.
- orientation_forward, orientation_right, orientation_up: 방향 센서의 앞쪽, 오른쪽 및 위쪽 방향입니다.
- acceleration, angular_velocity: 가속도계로 측정된 가속도 및 각도 속도입니다.
- touch_1, touch_2: 터치 패드의 첫 번째 두 터치 지점입니다. Vector3(x, y, id)로 반환되며, 여기에서 id는 이 터치 이벤트를 식별하는 정수입니다. 아무것도 터치하지 않으면 Vector3(0,0,-1)를 반환합니다.
모든 유형의 입력 제어기에는 이름이 정해진 버튼 및 "축" 세트가 내장되어 있어, 사용자가 다양한 방식으로 제어기에게 입력을 제공할 수 있습니다.
- 각 버튼은 지정된 프레임 내에서 누르거나 놓을 수 있습니다. 이러한 이벤트는 pressed() 및 released()를 호출하여 감지할 수 있습니다. 제어기는 해당 버튼에 대해 0에서 1 사이의 값을 생성하기도 하는데, 이 값은 button()을 호출하여 검색할 수 있습니다.
- 각 축은 Vector3 값을 생성할 수 있습니다. 경우에 따라 이 값은 표준화되기도 합니다. 보통 플레이어가 엄지스틱을 미는 방향과 같은 일부 유형의 배율에 따라 축이 나타내는 값이 변하는 경우 표준화됩니다. 예를 들어, 게임 패드의 엄지스틱을 왼쪽으로 완전히 밀거나(1,0,0), 위로 완전히 밀거나(0,1,0), 왼쪽 대각선 위로 미는(0.707107, 0.707107, 0) 경우 등이 있을 수 있습니다. 아니면, 때로는 축이 3D 공간 또는 2D 화면 공간에서 좌표 값을 생성하기도 합니다.
키보드 버튼 k가 눌렸는지 확인하려면 다음 함수를 사용하면 됩니다.
마찬가지로, 2D 화면 공간에서 Windows 마우스 커서의 현재 위치를 확인하려면 다음 함수를 사용하면 됩니다.
또는, 플레이어가 게임 패드의 오른쪽 엄지스틱을 어느 방향으로 미는지 확인하려면 다음 함수를 사용하면 됩니다.
쿼리할 수 있는 버튼 및 축 이름은 제어기 종류마다 다르고, 플랫폼에 따라서도 다를 수 있습니다. 장치에 사용할 수 있는 버튼을 확인해야 하는 경우에는 편집기 상태 막대 또는 게임 프로젝트에서 다음 코드 조각을 실행하여 최신 목록을 검색하면 됩니다. 값을 확인하려는 컨트롤러 이름으로 Mouse를 대체하십시오.
|
컨트롤러가 active 상태, 즉 기대한 대로 연결되어 작동 중인지 여부를 나타냅니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 boolean |
컨트롤러가 활성 상태이면 true를, 그렇지 않으면 false를 반환합니다.
|
|
이 컨트롤러가 속하는 입력 장치 범주를 설명하는 문자열을 반환합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 string |
다음 값 중 하나: gamepad, touch_panel, mouse 또는 keyboard.
|
|
컨트롤러가 이 프레임에 연결되었는지 여부를 나타냅니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 boolean |
컨트롤러가 이 프레임에 연결되었으면 true를, 그렇지 않으면 false를 반환합니다.
|
|
컨트롤러가 이 프레임에서 분리되었는지 여부를 나타냅니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 boolean |
컨트롤러가 이 프레임에서 분리되었으면 true를, 그렇지 않으면 false를 반환합니다.
|
|
컨트롤러의 고유한 이름(예: "Xbox Controller 1")을 반환합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 string |
컨트롤러의 고유한 이름을 포함하고 있는 문자열입니다.
|
대부분의 경우 이 이름은 type()에 의해 반환된 문자열에 추가 카운터가 붙어서 변형된 문자열입니다.
|
이 컨트롤러에 사용되는 하드웨어 장치의 설명을 반환합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 string |
컨트롤러 장치의 유형을 설명하는 문자열입니다.
|
일부 예외는 있지만 이 식별자는 동일 모델의 모든 제어기에서 같습니다(예: xbox_controller, logitech_mx518_mouse 또는 generic_105_key_keyboard). 일부 플랫폼에서는 이 값이 입력 장치 모델에 관계없이 같을 수도 있습니다.
|
패드를 사용하는 사용자의 사용자 ID를 반환합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer? |
패드를 사용하는 사용자의 Xbox Live 또는 PSN ID를 반환하거나, 패드에 연결되어 있는 사용자가 없으면 nil을 반환합니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
Windows를 제외하고, PlayStation 4 및 Xbox One에서 실행하는 게임에서만 사용할 수 있습니다.
이 그룹의 함수는 이 컨트롤러가 추적하는 버튼 및 축으로부터 값을 가져옵니다.
|
플레이어가 현재 프레임에서 어떤 버튼을 눌렀는지 여부를 나타냅니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer? |
플레이어가 이 프레임에서 누른 첫 번째 버튼의 ID를 반환하거나, 아무 버튼도 누르지 않은 경우에는 nil을 반환합니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
그런 경우에는 플레이어가 누른 첫 번째 버튼의 ID를 반환합니다.
|
플레이어가 현재 프레임에서 어떤 버튼을 놓았는지 여부를 나타냅니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer? |
플레이어가 이 프레임에서 놓은 첫 번째 버튼의 ID를 반환하거나, 아무 버튼도 놓지 않은 경우에는 nil을 반환합니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
그런 경우에는 플레이어가 놓은 첫 번째 버튼의 ID를 반환합니다.
|
axis ( id, dead_zone_mode, dead_zone_size ) : stingray.Vector3
컨트롤러의 단일 축에 대한 입력 값을 반환합니다.
|
매개변수 id : | integer | 값을 검색할 축의 ID입니다. |
dead_zone_mode : | integer? | 컨트롤러로부터 읽어 온 값을 반환하기 전에 적용할 데드 존 유형을 지정합니다. 이 값은 dead zone mode 상수 중 어느 값이든 될 수 있습니다. 이 매개변수를 지정하는 경우 dead_zone_size 역시 지정해야 합니다. 이를 생략하는 경우 [InputController.set_dead_zone()]을 사용하여 설정한 기본 데드 존 값이 사용됩니다. ? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
dead_zone_size : | number? | 컨트롤러로부터 읽어 온 값에 적용할 데드 존 크기입니다. ? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
반환하는 항목
데드 존 구성 컨트롤은 비-터치식 인터페이스에만 사용할 수 있습니다.
|
컨트롤러에서 지정된 이름의 축 ID(있는 경우)를 검색합니다.
|
매개변수 name : | string | ID를 검색하려는 축의 이름입니다. |
반환하는 항목 integer |
축의 ID를 반환하거나, 이름이 일치하는 축이 없으면 nil을 반환합니다.
|
|
컨트롤러에서 지정된 ID의 축 이름을 검색합니다.
|
매개변수 id : | integer | 이름을 검색하려는 축의 ID입니다. |
반환하는 항목
매개변수 id : | integer | 값을 검색하려는 버튼의 ID입니다. |
반환하는 항목 number |
0에서 1 사이의 값으로 표현되는 버튼의 현재 값입니다.
|
매개변수 name : | string | ID를 검색하려는 버튼의 이름입니다. |
반환하는 항목 integer |
버튼의 ID를 반환하거나, 이름이 일치하는 버튼이 없으면 nil을 반환합니다.
|
매개변수 id : | integer | 이름을 검색하려는 버튼의 ID입니다. |
반환하는 항목 string |
제어기에 대해 설정된 로케일의 버튼 이름입니다.
|
이는 대개 키보드 컨트롤러인 경우에만 유용합니다.
매개변수 id : | integer | 이름을 검색하려는 버튼의 ID입니다. |
반환하는 항목 string |
버튼의 이름이거나, ID가 일치하는 버튼을 찾을 수 없는 경우 빈 문자열입니다.
|
|
컨트롤러에 있는 축의 수를 반환합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer |
컨트롤러에 있는 축의 수입니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer |
컨트롤러에 있는 버튼의 수입니다.
|
|
플레이어가 이 프레임 중에 지정된 ID의 버튼을 눌렀는지 여부를 나타냅니다.
|
매개변수 id : | integer | 테스트하려는 버튼의 ID입니다. |
반환하는 항목 boolean |
플레이어가 이 프레임 중에 버튼을 눌렀으면 true를, 그렇지 않으면 false를 반환합니다.
|
|
플레이어가 이 프레임 중에 지정된 ID의 버튼을 놓았는지 여부를 나타냅니다.
|
매개변수 id : | integer | 테스트하려는 버튼의 ID입니다. |
반환하는 항목 boolean |
플레이어가 이 프레임 중에 버튼을 놓았으면 true를, 그렇지 않으면 false를 반환합니다.
|
"데드 존"은 제어기로부터 읽어 온 입력 값이 0으로 고정되는 영역을 말합니다.
엄지스틱 등의 제어기가 구식이 되거나 연결이 헐거워지면 플레이어가 제어기를 능동적으로 누르지 않는 상태에서도 "정지" 위치에서 게임 엔진으로 작은 입력 값이 전송될 수 있습니다. 이렇게 되면 캐릭터나 카메라가 계속해서 회전하거나 미끄러지는 등의 시각적 아티팩트가 발생할 수 있습니다.
데드 존은 입력 값에 최소한의 임계값을 적용함으로써 이 문제를 줄여줍니다. 이 임계값보다 낮은 값은 플레이어의 의도적인 입력이 아닌 노이즈로 간주됩니다.
|
그 크기 값이 원의 반지름으로 해석되는 데드 존을 지정합니다.
|
|
데드 존이 사각형 상자가 되게 하는 방식으로, 각 좌표 축을 따라 그 크기 값이 독립적으로 적용되는 데드 존을 지정합니다.
|
사각형 안쪽으로 들어오는 입력 값은 무시됩니다.
|
데드 존을 전혀 지정하지 않습니다.
|
엔진이 컨트롤러로부터 읽어 온 원시 입력 값을 제공합니다.
|
이 컨트롤러에서 지정된 축의 현재 데드 존 설정을 반환합니다.
|
매개변수 id : | integer | 데드 존 값을 검색할 축의 ID입니다. |
반환하는 항목 integer |
지정된 축에 대해 컨트롤러로부터 읽어 온 값에 액세스할 때 적용할 데드 존 유형을 지정합니다. 이 값은 dead zone mode 상수 중 어느 값이든 될 수 있습니다.
|
number |
컨트롤러로부터 읽어 온 값에 적용할 데드 존 크기입니다.
|
|
컨트롤러의 단일 축에 대한 기본 데드 존 값을 설정합니다.
|
매개변수 id : | integer | 기본 데드 존을 설정할 축의 ID입니다. |
dead_zone_mode : | integer | 컨트롤러로부터 읽어 온 값을 반환하기 전에 적용할 데드 존 유형을 지정합니다. 이 값은 dead zone mode 상수 중 어느 값이든 될 수 있습니다. |
dead_zone_size : | number | 컨트롤러로부터 읽어 온 값에 적용할 데드 존 크기입니다. |
반환하는 항목
함수 호출 시 어떠한 데드 존 설정도 지정하지 않고 axis()를 호출하여 축에 대한 컨트롤러의 입력 값을 검색할 때 이 기본 데드 존 값이 호출됩니다.
엔진에는 기본 럼블 효과 시스템이 내장되어 있어, 지원되는 장치에서는 특정 강도 및 지속 시간으로 럼블 펄스를 재생할 수 있습니다.
럼블 효과 시스템을 사용할 때에는 rumble_effect()를 한 번만 호출하면 럼블 효과를 시작할 수 있습니다. 엔진이 럼블을 조절해주고, 지속 시간이 끝나면 페이드 아웃시킵니다. 재생에 럼블 효과가 여러 개 적용되어 있으면 해당 효과가 추가됩니다.
럼블 효과는 신디사이저 음표에 아날로그식으로 작용합니다. 럼블 효과는 ADSR-envelope 내에서 재생되는 사인파입니다(http://en.wikipedia.org/wiki/Synthesizer#ADSR_envelope 참조).
럼블을 보다 상세하게 컨트롤해야 한다면 set_rumble() 메서드를 대신 사용해도 됩니다. 이 메서드를 사용하면 각 모터의 럼블 강도를 직접 설정할 수 있습니다. 이 메서드를 사용하는 경우 럼블의 페이드 아웃과 원하는 변경 사항 적용을 직접 처리해야 합니다.
rumble_effect()와 set_rumble()을 모두 사용하면 해당 값이 추가됩니다.
이 범주의 함수는 콘솔 게임 패드처럼 럼블 모터가 포함된 입력 제어기에만 유용합니다.
럼블 모터의 이름은 다음과 같습니다.
- left
- right
- left_trigger(Windows가 아닌 Xbox One에서 실행할 때에만 사용 가능)
- right_trigger(Windows가 아닌 Xbox One에서 실행할 때에만 사용 가능)
PlayStation 4에서 실행하는 PlayStation 4 제어기에 대해서만 럼블 설정을 사용할 수 있습니다. Windows에서 PlayStation 4 제어기를 사용할 때에는 안 됩니다.
|
지정된 럼블 이벤트가 지정된 모터에서 재생 중인지 여부를 나타냅니다.
|
매개변수 motor_id : | integer | 테스트하려는 럼블 모터의 ID입니다. |
ID : | integer | 럼블 효과의 ID입니다. |
반환하는 항목 boolean |
지정된 ID의 럼블 이벤트가 rumble_effect() 호출을 통해 생성되었고, 해당 효과가 여전히 재생 중이라면 true를, 그렇지 않으면 false를 반환합니다.
|
|
이 유형의 컨트롤러가 지원하는 럼블 모터 수를 검색합니다.
|
매개변수 | 이 함수는 어떠한 매개변수도 수용하지 않습니다. |
반환하는 항목 integer |
컨트롤러의 럼블 모터 수입니다.
|
|
지정된 모터에서 새로운 럼블 효과를 시작합니다.
|
매개변수 반환하는 항목 integer |
새로 생성된 럼블 효과의 ID입니다.
|
|
지정된 이름을 가지는 럼블 모터의 ID를 검색합니다.
|
매개변수 motor_name : | string | ID를 검색하려는 럼블 모터의 이름입니다. |
반환하는 항목 integer? |
럼블 모터의 ID를 반환하거나, 해당 모터가 없으면 nil을 반환합니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
|
지정된 ID를 가지는 럼블 모터의 이름을 검색합니다.
|
매개변수 motor_id : | integer | 이름을 검색하려는 럼블 모터의 ID입니다. |
반환하는 항목
|
지정된 모터에서 새로운 럼블 효과를 시작합니다.
|
매개변수 motor_id : | integer | 활성화하려는 럼블 모터의 ID입니다. |
value : | number | 설정할 럼블의 강도로, 0(럼블 없음)에서 1(최대 강도) 사이의 값으로 표현됩니다. |
반환하는 항목
럼블은 set_rumble()을 다시 호출하거나, rumble_effect()를 호출하여 그 강도를 변경할 때까지 같은 강도로 계속됩니다.
|
이 컨트롤러에 대해 럼블 엔진을 활성화할지 여부를 지정합니다.
|
매개변수 do_rumble : | boolean | 이 컨트롤러에 대해 럼블 엔진을 활성화하려면 true를, 럼블을 비활성화하려면 false를 사용합니다. |
반환하는 항목
매개변수 motor_id : | integer | 비활성화하려는 럼블 모터의 ID입니다. |
반환하는 항목
매개변수 motor_id : | integer | 비활성화하려는 럼블 모터의 ID입니다. |
ID : | integer | 럼블 효과의 ID입니다. |
반환하는 항목
대신 해당 함수의 _id 버전을 사용하십시오.
|
더 이상 사용되지 않습니다.
|
매개변수 name : | string | ID를 검색하려는 축의 이름입니다. |
반환하는 항목 integer |
축의 색인을 반환하거나, 이름이 일치하는 축이 없으면 nil을 반환합니다.
|
축은 색인이 아닌 ID로 참조되어야 합니다. 대신 axis_id()를 사용하십시오.
매개변수 name : | string | ID를 검색하려는 버튼의 이름입니다. |
반환하는 항목 integer |
버튼의 색인을 반환하거나, 이름이 일치하는 버튼이 없으면 nil을 반환합니다.
|
버튼은 색인이 아닌 ID로 참조되어야 합니다. 대신 button_id()를 사용하십시오.
|
더 이상 사용되지 않습니다.
|
매개변수 motor_name : | string | ID를 검색하려는 럼블 모터의 이름입니다. |
반환하는 항목 integer? |
럼블 모터의 색인을 반환하거나, 해당 모터가 없으면 nil을 반환합니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
럼블 모터는 색인이 아닌 ID로 참조되어야 합니다. 대신 rumble_motor_id()를 사용하십시오.
이 범주의 함수는 PlayStation 4 패드에 대해서만 사용할 수 있습니다.
PlayStation 4 사용자는 패드에 로그인할 수 있습니다. 게임이 싱글 플레이 게임으로 지정되어 있지 않은 한 사용자는 언제든 로그인하고 로그아웃할 수 있습니다. 따라서 변경 사항을 폴링하려면 기본 루프에서 user_id()를 호출해야 합니다.
|
컨트롤러의 조명 막대를 지정된 색상으로 설정합니다.
|
매개변수 color : | color | 조명 막대의 새로운 색상입니다. |
반환하는 항목
게임을 PlayStation 4에서 실행 중인 상태에서 PlayStation 4 패드에만 사용할 수 있습니다.