Pepper를 코로 조언을 말해 보자.

4947 단어 Pepper

박스의 내용을 만지다



초보자용. 라고 할까 자신을 위한 비망록.
파이썬은 프로그램 안에서 꽤 문턱이 낮을지도.

 

 

쓰는 것
・박스의 간단한 개조 방법.
・오리지날의 박스 라이브러리의 만드는 방법.

우선 안을 보자.



choregraphe 상자의 내용은 python에 써 있다.
간단한 언어라고는 들지만 프로그램에 익숙하지 않으면 눈이 얼룩져 온다.
그렇다고는 해도, 아무것도 접하지 않는 것은 샤쿠이므로, 우선은 간단한 개조로부터 손을 붙여 본다.
 
 

먹이는 Say Text 상자


우선 캐릭터에 흔히 나타나는 특징적인 어미를 붙여 보자.
 
 
더블 클릭하면 이런 느낌.
import time

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self, False)
        self.tts = ALProxy('ALTextToSpeech')
        self.ttsStop = ALProxy('ALTextToSpeech', True) #Create another proxy as wait is blocking if audioout is remote

    def onLoad(self):
        self.bIsRunning = False
        self.ids = []

    def onUnload(self):
        for id in self.ids:
            try:
                self.ttsStop.stop(id)
            except:
                pass
        while( self.bIsRunning ):
            time.sleep( 0.2 )

    def onInput_onStart(self, p):
        self.bIsRunning = True
        try:
            sentence = "\RSPD="+ str( self.getParameter("Speed (%)") ) + "\ "
            sentence += "\VCT="+ str( self.getParameter("Voice shaping (%)") ) + "\ "
            sentence += str(p)
            sentence +=  "\RST\ "
            id = self.tts.post.say(str(sentence))
            self.ids.append(id)
            self.tts.wait(id, 0)
        finally:
            try:
                self.ids.remove(id)
            except:
                pass
            if( self.ids == [] ):
                self.onStopped() # activate output of the box
                self.bIsRunning = False

    def onInput_onStop(self):
        self.onUnload()

「으」라고 생각하지만, 생각보다 짧다.
우선, onStart 단자에 문자열을 입력하여 말하고 있기 때문에, onInput_onStart에 눈을 돌리면,
 
 
 
    def onInput_onStart(self, p):
        self.bIsRunning = True
        try:
            sentence = "\RSPD="+ str( self.getParameter("Speed (%)") ) + "\ "      
            sentence += "\VCT="+ str( self.getParameter("Voice shaping (%)") ) + "\ "
            sentence += str(p)    #なんか、キミ、怪しくないか?
            sentence +=  "\RST\ "
            id = self.tts.post.say(str(sentence))
            self.ids.append(id)
            self.tts.wait(id, 0)
        finally:
            try:
                self.ids.remove(id)
            except:
                pass
            if( self.ids == [] ):
                self.onStopped() # activate output of the box
                self.bIsRunning = False


어쩐지 sentence +=str(p)라고 하는 핵심적인 일행이 있다.
주위에 어조와 목소리의 높이 등을 컨트롤하는 수식자 같은 것이 건간 붙어 있기 때문에,
이 부분이 본문이라고 예상.
주위를 보면 어쨌든, 문자열의 연산은 +라든지 좋을 것으로 보이기 때문에
            sentence += str(p)

이거
 
 
            sentence += str(p)+"なり。"

로 바꾼다.
 
 
 

그리고 이런 느낌.

개조 완료!
 
 

개조한 박스는 오른쪽 클릭으로 「박스를 편집」해 두자.
이름은 반각 영수 쪽이 안심할 것 같기 때문에 "Say Nari Text"라든지로.

 

 
 

새 상자 라이브러리 만들기



모처럼 만들었고, 여러 장면에서 활용하고 싶다! 라는 욕구가 나오면 오리지널 박스 라이브러리가 필요해진다.
 
 

그럴 때는


오른쪽 하단의 박스 라이브러리 패널을 만져 보면 이런 버튼이.
 
밀어 보면 「무제」라고 하는 섬도 없는 박스 라이브러리가 생긴다.
 
 
 

마우스 오른쪽 버튼을 클릭하거나 F2 버튼을 눌러도 아무 일도 일어나지 않지만,

패널 위쪽을 만져가면 "박스 라이브러리에 이름을 붙여 저장"버튼이 있으므로 눌러 보면 이름을 붙일 수 있다. 예를 들면 "funBoxes"라든지일까.

한층 더 공백 부분을 오른쪽 클릭하면 폴더를 만들 수 있으므로 "gobi"라든지의 폴더를 붙여 어미에 「나시」나 「알요」라든지를 붙인 오리지날 박스를 드래그&드롭으로 점점 추가할 수 있다.


 
물론 추가 후 상자 라이브러리 자체를 저장하십시오!

 
 
 

 
이런 느낌으로 자신의 오리지널 모션이나 처리를 박스화해 나가면, 개발이 효율화할 수 있고, *.cbl라는 확장자로 파일이 되어 있으므로 동료 내에서 교환해 보는 것도 좋을지도 모른다.
 
 
 
 
 

감상



이 정도의 작은 기사라면 비교적 편하게 쓸 수 있을지도.

 
 
 
 

좋은 웹페이지 즐겨찾기