dslclib.src.expression_controller module#

class dslclib.src.expression_controller.ExpressionController(ip: str | None = None, port: int = 20000)#

ベースクラス: dslclib.src.base.BaseClient

Ericaの表情をコントロールするクライアント. ソケットにコマンドを送ることでEricaの表情を動かす.

パラメータ:
  • ip (str, optional) --

    ipアドレス.

    デフォルトはNoneであり,Noneが与えられた時,127.0.0.1(ローカルホスト)を指定し, もし,docker内でこのモジュールが立ち上がっていた場合,自動でそれが認識され,host.docker.internalを指定する.

    host.docker.internalは,docker内からローカルホストのポートに接続するために必要である.

  • port (int = 20000) -- ソケット通信を行うポート.

サンプル

>>> client = ExpressionController()
ipがNoneだったため、127.0.0.1をipアドレスとして設定します。
>>> client
Socket(
    ip   = 127.0.0.1
    port = 20000
)
>>>
express(expression: str | None = None, valence: float = 0, arousal: float = 0, dominance: float = 0, real_intension: float | None = None) None#

Ericaの表情を支持するメソッド. ExpressionTypeを用いることで,簡単に指示を行うことができる.

ExpressionTypeに事前定義されたビルトインの表情を指示する場合は,expressionに表情のidを与える.

独自の表情を指示する場合は,valence, arousal, dominance, real_intensionを与える.

パラメータ:
  • expression (str, optional) -- ビルトインの表情を指示する場合に入力する. ExpressionTypeを用いることで,簡単にビルトインの表情を指示することができる.

  • valence (float, default = 0) -- ExpressionTypeにない独自の表情を指示する時に与える.

  • arousal (float, default = 0) -- ExpressionTypeにない独自の表情を指示する時に与える.

  • dominance (float, default = 0) -- ExpressionTypeにない独自の表情を指示する時に与える.

  • real_intension (float, optional) -- ExpressionTypeにない独自の表情を指示する時に与える.

class dslclib.src.expression_controller.ExpressionType(MouthA: Literal['mouth-a'] = 'mouth-a', MouthI: Literal['mouth-i'] = 'mouth-i', MouthU: Literal['mouth-u'] = 'mouth-u', MouthE: Literal['mouth-e'] = 'mouth-e', MouthO: Literal['mouth-o'] = 'mouth-o', Normal: Literal['normal'] = 'normal', FullSmile: Literal['fullsmile'] = 'fullsmile', Smile: Literal['smile'] = 'smile', Bad: Literal['bad'] = 'bad', Angry: Literal['angry'] = 'angry', EyeClose: Literal['eye-close'] = 'eye-close', EyeOpen: Literal['eye-open'] = 'eye-open', EyeUp: Literal['eye-up'] = 'eye-up', EyeDown: Literal['eye-down'] = 'eye-down')#

ベースクラス: object

Expression

Ericaの表情を事前定義したデータクラス. ExpressionType()とインスタンス化する必要はない.

Angry: Literal['angry'] = 'angry'#
Bad: Literal['bad'] = 'bad'#
EyeClose: Literal['eye-close'] = 'eye-close'#
EyeDown: Literal['eye-down'] = 'eye-down'#
EyeOpen: Literal['eye-open'] = 'eye-open'#
EyeUp: Literal['eye-up'] = 'eye-up'#
FullSmile: Literal['fullsmile'] = 'fullsmile'#
MouthA: Literal['mouth-a'] = 'mouth-a'#
MouthE: Literal['mouth-e'] = 'mouth-e'#
MouthI: Literal['mouth-i'] = 'mouth-i'#
MouthO: Literal['mouth-o'] = 'mouth-o'#
MouthU: Literal['mouth-u'] = 'mouth-u'#
Normal: Literal['normal'] = 'normal'#
Smile: Literal['smile'] = 'smile'#