클립 파일 편집하기

이제 알버트 로봇을 움직이기 위한 명령을 입력해 보도록 하자.

01. 바퀴 움직이기

그림 1의 타임라인 모션 에디터에는 알버트 로봇의 좌우 바퀴의 속도를 제어하기 위한 Left WheelRight Wheel 트랙이 있다. Left WheelRight Wheel 트랙의 데이터는 -100부터 100까지의 값을 가진다. 우선 왼쪽 바퀴의 속도를 제어하기 위해 그림 1과 같이 Left Wheel 트랙에서 마우스 왼쪽 버튼을 더블 클릭하여 제어점을 생성한다.

그림 1. Left Wheel 트랙의 제어점 생성

생성된 제어점을 마우스로 선택하면 그림 2와 같이 로보이드 스튜디오의 화면 오른쪽에 있는 프로퍼티 뷰에 선택한 제어점의 속성이 표시되는 것을 확인할 수 있다.

그림 2. 제어점에 대한 프로퍼티 뷰

그림 2의 프로퍼티 뷰에서 Frame에는 0을, Value에는 30을 입력해 보자. 여기서 Frame은 타임라인 모션 에디터에서 제어점의 위치를 나타낸다. 한 프레임은 20ms의 시간을 가지므로 시간 축 상에서 1초의 위치에서 명령을 내리기 위해서는 1000ms / 20ms, 즉 Frame을 50으로 설정하면 된다. Values는 각 제어점의 데이터 값을 나타내는데, Left Wheel 트랙의 경우에는 왼쪽 바퀴의 속도 값이다.

같은 방법으로 그림 3과 같이 Right Wheel 트랙에도 제어점을 생성해 보도록 하자. 생성된 제어점을 선택하고 프로퍼티 뷰에서 마찬가지로 Frame에는 0을, Values에는 30을 입력한다. 이때, Values는 오른쪽 바퀴의 속도 값이며, 알버트 로봇이 똑바로 직진하기 위해서는 왼쪽과 오른쪽 바퀴의 속도를 같게 입력해야 한다.

이와 같이 타임라인 모션 에디터를 사용하여 모션 클립을 편집하면 그림 3과 같이 파일 이름 옆에 "*" 기호가 표시되고, 파일을 저장하면 "*" 기호는 없어진다.

그림 3. Right Wheel 트랙의 제어점 생성

이제 생성한 제어점들을 복사해 보도록 하자. 우선 복사하고자 하는 제어점들을 그림 4와 같이 키보드의 Ctrl 키를 누른 상태에서 마우스 클릭으로 선택하거나 마우스를 드래그하여 선택한다

그림 4. 복사할 제어점 선택

이 상태에서 키보드의 Ctrl 키와 C 키를 동시에 눌러 선택한 제어점들을 복사한다. 메뉴바의 Edit > Copy 메뉴를 선택하거나 도구바의 Copy 버튼을 눌러도 된다. 제어점들을 복사한 후에는 키보드의 Ctrl 키와 V 키를 동시에 눌러 그림 5와 같이 복사한 제어점들을 붙여 넣는다.

그림 5. 복사한 제어점 붙여 넣기

이제 새로 추가된 제어점들을 50 프레임으로 이동시키도록 하자. 이동할 제어점들이 선택된 상태에서 프로퍼티 뷰의 Frame에 50을 입력하면 그림 6과 같이 제어점들이 이동한다.

그림 6. 이동한 제어점

지금까지의 작업을 정리하면 다음의 표와 같다.

트랙 첫 번째 제어점 두 번째 제어점
Frame Mode Value Frame Mode Value
Left Wheel 0 LINEAR 30 50 LINEAR 30
Right Wheel 0 LINEAR 30 50 LINEAR 30

그림 7과 같이 도구바에 있는 실행(Play) 버튼을 눌러 알버트 로봇을 동작시켜 보도록 하자. 이 버튼이 활성화되어 있지 않은 경우에는 타임라인 모션 에디터의 화면을 마우스로 클릭하면 활성화된다.

그림 7. 도구바의 실행 버튼

모션 클립이 실행되고 있는 동안에는 그림 8과 같은 윈도우가 나타나는데, 모션 클립의 실행을 멈추고 싶으면 X 버튼을 눌러 윈도우를 닫으면 된다.

그림 8. 종료 버튼

프로그램의 실행 결과는 어떠한가? 정말 1초 동안 주행했을까? 정답은 '아니다'이다.

프로그램을 실행한 후 1초(50 프레임)가 되었을 때, 두 바퀴의 속도 값은 30이라는 점에 주목해야 한다. 즉, 알버트 로봇에게 두 바퀴의 속도를 30으로 하라는 명령을 내린 이후에 속도를 0으로 하라는 명령을 내린 적이 없다. 따라서 알버트 로봇은 두 바퀴의 속도를 30으로 계속 유지하게 되는 것이다.

그렇다면 어떻게 정확하게 1초 동안만 주행할 수 있을까? 답은 의외로 간단하다. 1초를 주행한 후에 속도를 0으로 하라는 명령을 내리면 된다. 즉, 49 프레임까지 속도를 30으로 유지하고 마지막 50 프레임에서 속도를 0으로 하면 된다.

이를 위해 그림 6의 마지막 제어점들(50 프레임에서의 제어점들)에 대한 프로퍼티 뷰에서 Frame을 49로 설정하고, 그림 9와 같이 Left Wheel 트랙과 Right Wheel 트랙에 제어점을 하나씩 추가한다. 추가된 제어점들에 대한 프로퍼티 뷰에서 Frame은 50으로 설정하고, Value는 0으로 설정한다.

그림 9. 추가된 제어점 (49 프레임에서의 제어점들은 가려져 있다)

이를 정리하면 다음의 표와 같다.

트랙 첫 번째 제어점 두 번째 제어점 세 번째 제어점
Frame Mode Value Frame Mode Value Frame Mode Value
Left Wheel 0 LINEAR 30 49 LINEAR 30 50 LINEAR 0
Right Wheel 0 LINEAR 30 49 LINEAR 30 50 LINEAR 0

이제, 알버트 로봇이 1초 동안 앞으로 달린 후 정지하는 프로그램이 완성되었다.

02. 모드 이해하기

앞에서 프로퍼티 뷰를 통해 제어점의 속성을 변경할 때 그림 2와 같이 프로퍼티 뷰에 Mode 속성이 있는 것을 살펴볼 수 있다.

모드에는 LINEAR 모드와 SUSTAIN 모드가 있는데, LINEAR 모드는 이웃하는 두 제어점의 데이터를 선형 보간하여 제어점 사이의 데이터를 자동으로 생성하는 것이고, SUSTAIN 모드는 현재 제어점의 데이터 값을 그 다음 제어점 바로 전까지 유지하는 것이다. 그림 10에서 두 가지 모드의 차이를 알 수 있다.

그림 10. LINEAR 모드(왼쪽)와 SUSTAIN 모드(오른쪽)

앞의 예의 경우에는 SUSTAIN 모드를 사용하면 두 개의 제어점만으로도 같은 동작을 수행할 수 있다. SUSTAIN 모드는 제어점의 데이터 값을 그 다음 제어점 바로 전까지 유지한다는 것을 기억하자.

이때, 마지막 제어점의 모드는 어느 것으로 하여도 상관 없다. 마지막 제어점은 그 다음 제어점이 없기 때문에 LINEAR 모드와 SUSTAIN 모드가 같은 데이터 값을 가진다. 즉, 마지막 제어점의 데이터 값을 가지는 것이다.

트랙 첫 번째 제어점 두 번째 제어점
Frame Mode Value Frame Mode Value
Left Wheel 0 SUSTAIN 30 50 LINEAR 0
Right Wheel 0 SUSTAIN 30 50 LINEAR 0

알버트 로봇의 속도를 점점 증가시키거나 감소시킬 경우에는 LINEAR 모드를 사용하여 프로그램 하여야 한다.

트랙 첫 번째 제어점 두 번째 제어점
Frame Mode Value Frame Mode Value
Left Wheel 0 LINEAR 30 200 LINEAR 0
Right Wheel 0 LINEAR 30 200 LINEAR 0

각 제어점의 Value 값을 변경하여 후진, 제자리 돌기, 피봇 턴, 라운드 턴 등을 구현해 보도록 하자.

03. 스피커로 소리 출력하기

알버트 로봇의 스피커로 소리를 출력하는 트랙은 Audio 트랙과 Voice 트랙이다. Audio 트랙과 Voice 트랙은 스피커로 소리를 출력한다는 점에서 비슷한 기능을 수행하지만, Audio 트랙은 소리만 출력하고 Voice 트랙은 소리를 출력하면서 동시에 오디오 파형에 따라 립싱크로 입의 움직임 데이터를 같이 출력한다는 점이 다르다. 이때, 같은 트랙에서든 다른 트랙에서든 스피커로 출력되는 오디오 데이터의 구간이 겹쳐지는 경우에는 여러 개의 소리가 동시에 출력된다.

Audio 혹은 Voice 트랙에서 제어점을 추가하고자 하는 위치에 마우스를 더블클릭하면 그림 11과 같은 대화상자가 나타난다.

그림 11. 오디오 파일 설정 대화상자

파일 탭에서 파일명 오른쪽에 있는 '...' 버튼을 클릭하면 wav 파일이나 mp3 파일을 선택할 수 있다. 음성 변조 영역에 있는 효과를 선택하면 입력된 오디오 파일의 오디오 데이터에 음성 변조 효과를 적용할 수 있기 때문에 음성을 녹음한 오디오 파일의 경우 다양한 변화를 줄 수 있다.

볼륨은 원음의 크기를 100 으로 하였을 때 음량을 조정하기 위한 것이다. 여기서 설정된 볼륨은 프로퍼티 뷰의 Volume 에 바로 적용되며, 나중에 프로퍼티 뷰에서 볼륨을 조정할 수도 있다.

파일로 저장 체크 박스를 선택하면 입력된 오디오 데이터에 여러 가지 효과가 적용된 결과를 wav 파일로 저장할 수 있다.

확인 버튼을 누르면 그림 12와 같이 새로운 제어점이 추가되고, 오디오 데이터의 길이만큼 노란색으로 표시된다. 기존의 제어점을 더블클릭하면 그림 11의 대화상자가 다시 나타나서 새로운 오디오 데이터로 변경할 수 있다.

그림 12. Audio 트랙에 추가된 제어점

음성 합성을 하기 위해서는 그림 13과 같이 음성 합성 탭에서 목소리언어를 선택할 수 있다.

그림 13. 음성 합성 대화상자

사용할 수 있는 목소리는 언어에 따라 달라지는데, 한국어의 경우에는 아람, 종필, 미진의 목소리를 선택할 수 있고, 영어의 경우에는 Microsoft Sam 혹은 Microsoft Anna, 일본어의 경우에는 Aquest Woman 을 선택할 수 있다. 윈도우의 음성 합성 기능을 포함하고 있기 때문에 윈도우에 목소리 데이터를 추가로 설치하면 자동으로 사용할 수 있는 언어와 목소리가 추가된다.

목소리 아래의 네모 박스에 합성할 문장을 입력하고, 오디오 파일을 추가할 때와 마찬가지로 음성 변조 기능과 파일로 저장 옵션을 선택할 수 있다. 한국어의 경우에는 음성 합성이 원격지에 있는 서버에서 실행되고 음성 합성된 결과를 네트워크로 받아오기 때문에 로보이드 스튜디오가 실행되는 컴퓨터가 인터넷에 연결되어 있어야 한다. 영어와 일본어의 경우에는 로보이드 스튜디오가 설치된 컴퓨터에서 음성 합성이 실행되므로 인터넷 연결이 필요 없지만, 일본어의 경우에는 음성 합성할 문장을 반드시 히라가나로 입력하여야 한다.

속도는 음성의 빠르기, 볼륨은 음량, 음높이는 음성의 높낮이를 나타내는데, 목소리에 따라 사용 여부가 달라진다. 확인 버튼을 누르면 그림 14와 같이 새로운 제어점이 추가되고, 음성 데이터의 길이만큼 노란색으로 표시된다. 기존의 제어점을 더블클릭하면 그림 13의 대화상자가 다시 나타나서 새로운 음성 데이터로 변경할 수 있다.

그림 14. Voice 트랙에 추가된 제어점

04. 눈 색상 변경하기

Left Eye 또는 Right Eye 트랙에서 제어점을 추가하고자 하는 위치에 마우스를 더블클릭하면 그림 15와 같이 새로운 제어점이 추가된다.

그림 15. Left Eye 트랙에 추가된 제어점

추가된 제어점을 선택하고 그림 16과 같이 프로퍼티 뷰에서 RGB 값을 입력한다.

그림 16. RGB 값 입력

RGB 오른쪽에 있는 '...' 버튼을 클릭하면 그림 17과 같은 색상 설정 대화상자가 나타나고, 설정할 색상을 선택할 수 있다.

그림 17. 색상 설정 대화상자

05. 그 외의 트랙

Volume 트랙은 알버트 로봇의 스피커로 출력되는 소리의 크기를 설정할 수 있고, Lip 트랙은 입의 움직임을 설정할 수 있다.

Body LED 트랙은 알버트 로봇의 몸통 LED의 밝기를 설정할 수 있고, Front LED 트랙은 앞쪽 LED를 켜거나 끌 수 있다.

Buzzer 트랙은 버저의 음 높이를 설정할 수 있고, Pad Size 트랙은 내비게이션 패드의 크기를 설정할 수 있다.

각 트랙에 제어점을 추가하고 데이터 값을 설정하는 방법은 앞서 설명한 Left Wheel 또는 Right Wheel 트랙과 비슷하기 때문에 쉽게 이해할 수 있을 것이다.

로보이드 스튜디오의 좀더 자세한 사용법은 로보이드 스튜디오의 공식 사이트 http://www.roboidstudio.org에서 매뉴얼을 내려받아 살펴 보기 바란다.