작업환경
OS : Windows7 Ultimate K x64
SU : SketchUp 2014 (pro)
SP : SketchyPhysics 3.3.0 Unofficial Release
etc : SP를 제외한 추가 플러그인 없음
컨트롤러 Controller 스크립트.pdf
간단한 스크립트 Script 다루기
스크립트 Script란 전문적인 프로그래밍 언어 외에 간단한 프로그램 명령어를 일컫습니다.
(정확하고 자세한 설명은 직접 찾아보시는 것을 권장합니다.)
스케치 피직스 Sketchy Physics는 기본적인 속성 Property과 상태 State, 형태 Shape 외에도 스크립트 Script 기능을 제공합니다.
이러한 스크립트 Script를 작성하고 제어할 수 있으므로 다양하고 강력한 기능을 사용할 수 있습니다.
아래에는 기본적이고 간단한 스크립트 Script를 소개하겠습니다.
컨트롤러 Controller 스크립트 Script
SP의 거의 모든 조인트 Joint에는 컨트롤러 Controller를 추가할 수 있습니다.
말 그대로 조인트 Joint를 컨트롤, 조종할 수 있는 컨트롤러 Controller인데 스크립트 script를 이용하여 추가적인 효과도 부가할 수 있습니다.
컨트롤러 Controller 스크립트 Script는 UI의 Controller에서 작성할 수 있습니다.
컨트롤러 Controller 생성
가장 기본적인 조인트를 이용하여 컨트롤러 Controller를 생성해보겠습니다.
물체 Object를 생성하고 슬라이더 Slider 조인트 Joint를 연결합니다.
슬라이더 Slider 조인트 Joint의 경우 컨트롤러 Controller를 생성하기 전에는 따로 컨트롤러 Controller가 없습니다.
피스톤 Piston이나 서보 Servo, 모터 Motor의 경우 컨트롤러가 이미 있습니다.
슬라이더 Slider 조인트 Joint를 올바르게 연결한 경우 슬라이더 Slider 조인트 Joint를 선택하여 UI에 조인트 Joint 설정을 할 수 있도록 합니다.
컨트롤러 Controller를 생성하는 스크립트는 slider() 함수 입니다.
사용법은 위 그림과 같이 Controller에 slider(“컨트롤러 이름”);을 적어 넣으면 됩니다.
위와 같이 UI의 Controller에 slider(“Controller#1”);을 적은 후 시뮬레이션을 실행하면 컨트롤러가 생성되어 보이게 됩니다.
생성된 컨트롤러 Controller를 움직이면 슬라이더 Slider 조인트 Joint에 연결된 물체 Object가 이에 맞춰 움직이게 됩니다.
컨트롤러 Controller 조합
위의 slider() 함수를 이용하여 슬라이더 slider 컨트롤러 Controller를 생성하였습니다.
연결된 하나의 조인트 Joint에 다음과 같이 컨트롤러 Controller를 추가할 수도 있습니다.
slider(“Controller#1”) + slider(“Controller#2”);
위와 같이 컨트롤러 Controller를 추가하면 그림과 같이 컨트롤 판넬 Control Panel에 컨트롤러 Controller가 두 개 생성됩니다.
이 두 개의 컨트롤러 Controller는 하나의 조인트 Joint에 같이 적용이 됩니다.
또한 조인트 Joint에 적용된 움직일 수 있는 거리 등이 생성된 컨트롤러 Controller 수만큼 배가 됩니다.
키 Key 컨트롤러 Controller 추가하기
슬라이더 Slider 조인트 Joint의 컨트롤을 위해 컨트롤 판넬 Control Panel에 슬라이더 slider 컨트롤러 Controller를 생성했습니다.
이 슬라이더 slider 컨트롤러 Controller는 마우스를 이용하여 조절할 수 있습니다.
이러한 슬라이더 slider 컨트롤러 Controller를 제외하고 키보드의 특정 키 Key를 이용하여 조인트 Joint를 조절할 수 있습니다.
SP의 시뮬레이션이 실행 중일 때 특정 키 Key가 눌러지는 것을 감지하는 스크립트 함수는 key() 입니다.
예를 들어 key(“a”)로 작성한 경우 키보드의 A가 눌러졌을 때 이 함수는 1을 반환합니다.
따라서 원하는 조인트 Joint를 선택하고 UI의 Controller에 다음과 같이 작성합니다.
key(“a”);
즉, 키보드의 A키가 눌러졌을 때 슬라이더 Slider 조인트 Joint의 위치를 최대 위치(컨트롤러 Controller의 1의 위치)에 위치 시킵니다.
위의 키 Key 컨트롤러 Controller 옵션은 다른 키보드의 문자도 가능하며 스페이스 키는 space로 가능합니다.
key() 함수는 해당 키가 눌러졌을 때 1을 반환하므로 원하는 위치가 1이 아닐 때에는 다음과 같은 요령으로 작성합니다.
key(“a”) * 0.5;
위와 같이 스크립트를 작성하면 키가 눌러질 때 마다 최대 위치의 절반으로 움직이게 됩니다.
이와 비슷한 기능을 하는 편리한 스크립트는 키보드의 방향키를 이용할 수 있는 rightx가 있습니다.
다음과 같이 스크립트를 작성하면
키보드의 x축 방향의 키인 오른쪽/왼쪽 키를 이용하여 조인트 Joint를 조절할 수 있습니다.
이 스크립트 함수를 적용하면 조인트 Joint는 최소/최대 위치의 중간으로 기본적으로 위치하고 방향키의 좌우 키를 이용하여 움직일 수 있습니다.
키보드의 방향키 중 위/아래 키를 이용하기 위해서는 righty를 적용하면 됩니다.