#ifndef INCLUDED_MyStateMotion_h_ // このファイル INCLUDED_MyStateMotion_h_ が定義されていなければ #define INCLUDED_MyStateMotion_h_ // このファイル INCLUDED_MyStateMotion_h_ を定義する #include "Shared/ERS7Info.h" // AIBOの機種(ERS7)に関する部品ファイル #include "Shared/WorldState.h" // 状態を監視するための部品ファイル #include "StateHeader.h" // 状態と遷移に必要な部品ファイル #include "StartCommFromPC.h" // PCから合図を受信するための部品ファイル // クラス Mikuru class Mikuru : public StateNode { protected: StateNode * start_node; // start_nodeは、クラス全体で使用するのでココに定義する StartCommFromPC fromPC; // PCからの合図を受け取るオブジェクト public: // コンストラクタ Mikuru() : StateNode("Mikuru"), start_node(NULL) , fromPC(){} // デコンストラクタ ~Mikuru() { if(issetup) teardown(); } virtual void setup() { // 親クラスStateNodeのsetup()関数を呼ぶ StateNode::setup(); // 伏せノード作成 StateNode * lie_node = new SmallMotionSequenceNode("Lie","lielie.mot"); addNode(lie_node); // 座り姿勢ノード StateNode * sit_node = new SmallMotionSequenceNode("Sit","sitsit.mot"); addNode(sit_node); // 座り準備ノード StateNode * site2_node = new SmallMotionSequenceNode("Site2a","site2a.mot"); addNode(site2_node); // 前奏1 StateNode * zenso1_node = new LargeMotionSequenceNode("Zenso1","1-4-2.mot"); addNode(zenso1_node); // 前奏1.5 StateNode * zenso11_node = new LargeMotionSequenceNode("Zenso11","zemi14-3.mot"); addNode(zenso11_node); // 前奏2 StateNode * zenso2_node = new LargeMotionSequenceNode("Zenso2","zemi2-5.mot"); addNode(zenso2_node); // 前奏3 StateNode * zenso3_node = new LargeMotionSequenceNode("Zenso3","zemi4-3.mot"); addNode(zenso3_node); // なぞなぞみたいに StateNode * amelo1b_node = new LargeMotionSequenceNode("Amelo1b","zemi8-6.mot"); addNode(amelo1b_node); // 地球儀を解き明かしたら StateNode * amelo2b_node = new LargeMotionSequenceNode("Amelo2b","zemi9-3.mot"); addNode(amelo2b_node); // みんなでどこまでも行けるね StateNode * amelo3b_node = new LargeMotionSequenceNode("Amelo3b","u1.mot"); addNode(amelo3b_node); // わくわくしたいと StateNode * amelo5b_node = new LargeMotionSequenceNode("Amelo5b","zemi16-2.mot"); addNode(amelo5b_node); // 願いながら過ごしてたよ StateNode * amelo6b_node = new LargeMotionSequenceNode("Amelo6b","zemi17-1.mot"); addNode(amelo6b_node); // かなえてくれたのは誰なの StateNode * amelo7b_node = new LargeMotionSequenceNode("Amelo7b","u2.mot"); addNode(amelo7b_node); // 時間の果てまで↓ StateNode * zikan1_node = new XLargeMotionSequenceNode("Zikan1","zikan1.mot"); addNode(zikan1_node); // ブーン ワープで↓ StateNode * zikan2_node = new XLargeMotionSequenceNode("Zikan2","zikan2.mot"); addNode(zikan2_node); // ループなこの思いは何もかもを巻き込んだ想像で↓ StateNode * zikan3_node = new XLargeMotionSequenceNode("Zikan3","zikan34b.mot"); addNode(zikan3_node); // 遊ぼう↓ StateNode * zikan5_node = new XLargeMotionSequenceNode("Zikan5","zikan5.mot"); addNode(zikan5_node); // ある晴れた〜魔法以上の↓ StateNode * sabi1_node = new XLargeMotionSequenceNode("Sabi1","1sabi1.mot"); addNode(sabi1_node); // ゆかいが〜不可能じゃないわ↓ StateNode * sabi2_node = new XLargeMotionSequenceNode("Sabi2","1sabi2.mot"); addNode(sabi2_node); // 明日また会う時〜↓ StateNode * sabi3_node = new LargeMotionSequenceNode("Sabi3","asitoki.mot"); addNode(sabi3_node); // 笑いながら〜集めよう↓ StateNode * sabi4_node = new LargeMotionSequenceNode("Sabi4","waraatu.mot"); addNode(sabi4_node); // 簡単なんだよ〜つかまえてみて↓ StateNode * sabi5_node = new XLargeMotionSequenceNode("Sabi5","kanoi.mot"); addNode(sabi5_node); // 大きな夢夢好きでしょ↓ StateNode * sabi6_node = new LargeMotionSequenceNode("Sabi6","ookina.mot"); addNode(sabi6_node); // 1番間奏↓ StateNode * kanso1_node = new XLargeMotionSequenceNode("Kanso1","kanso1.mot"); addNode(kanso1_node); // イロイロ予想が出来そうで StateNode * amelo12b_node = new LargeMotionSequenceNode("Amelo12b","zemi90-1.mot"); addNode(amelo12b_node); //出来ない未来 StateNode * amelo22b_node = new LargeMotionSequenceNode("Amelo22b","zemi9-3.mot"); addNode(amelo22b_node); //それでも一つだけ分かるよ StateNode * amelo32b_node = new LargeMotionSequenceNode("Amelo32b","u1.mot"); addNode(amelo32b_node); // キラキラ光って StateNode * amelo52b_node = new LargeMotionSequenceNode("Amelo52b","zemi16-2.mot"); addNode(amelo52b_node); //厚い雲の上を飾る StateNode * amelo62b_node = new LargeMotionSequenceNode("Amelo62b","zemi17-1.mot"); addNode(amelo62b_node); //星たちが希望をくれると StateNode * amelo72b_node = new LargeMotionSequenceNode("Amelo72b","u2.mot"); addNode(amelo72b_node); // 時間に乗ろうよ StateNode * zikan12_node = new XLargeMotionSequenceNode("Zikan12","zikan1.mot"); addNode(zikan12_node); // ビューン チープで StateNode * zikan22_node = new XLargeMotionSequenceNode("Zikan22","zikan2.mot"); addNode(zikan22_node); // クールな年頃だもん寂しがっちゃ恥ずかしいよ なんてね StateNode * zikan32_node = new XLargeMotionSequenceNode("Zikan32","zikan34b.mot"); addNode(zikan32_node); // 言わせて StateNode * zikan52_node = new XLargeMotionSequenceNode("Zikan52","zikan5.mot"); addNode(zikan52_node); //手と手をつないだら 向かうトコ無敵でしょ StateNode * sabi12_node = new XLargeMotionSequenceNode("Sabi12","1sabi1.mot"); addNode(sabi12_node); //輝いた瞳には不可能がないの StateNode * sabi22_node = new XLargeMotionSequenceNode("Sabi22","2sabi2.mot"); addNode(sabi22_node); //上だけ見ていると StateNode * sabi32_node = new LargeMotionSequenceNode("Sabi32","uedake.mot"); addNode(sabi32_node); //涙もかわいちゃう「変わりたい」ココロから StateNode * sabi42_node = new XLargeMotionSequenceNode("Sabi42","namikoko.mot"); addNode(sabi42_node); //強く思うほどつ・た・わ・る 走り出すよ StateNode * sabi52_node = new XLargeMotionSequenceNode("Sabi52","tuyohasi.mot"); addNode(sabi52_node); //後ろの人もおいでよ ドキドキッ するでしょう? StateNode * sabi62_node = new LargeMotionSequenceNode("Sabi62","usiro.mot"); addNode(sabi62_node); // 2番間奏@↓ StateNode * kansob1_node = new XLargeMotionSequenceNode("Kansob1","kansob1.mot"); addNode(kansob1_node); // 2番間奏A↓ StateNode * kansob2_node = new XLargeMotionSequenceNode("Kansob2","kansob2.mot"); addNode(kansob2_node); // 2番間奏B↓ StateNode * kansob3_node = new XLargeMotionSequenceNode("Kansob3","kansob3.mot"); addNode(kansob3_node); // ブーン ワープで↓ StateNode * zikan23_node = new XLargeMotionSequenceNode("Zikan23","zikan2.mot"); addNode(zikan23_node); // ループなこの思いは何もかもを巻き込んだ想像で↓ StateNode * zikan33_node = new XLargeMotionSequenceNode("Zikan33","zikan34b.mot"); addNode(zikan33_node); // 遊ぼう↓ StateNode * zikan53_node = new XLargeMotionSequenceNode("Zikan53","zikan5.mot"); addNode(zikan53_node); // ある晴れた〜魔法以上の↓ StateNode * sabi13_node = new XLargeMotionSequenceNode("Sabi13","1sabi1.mot"); addNode(sabi13_node); // ゆかいが〜不可能じゃないわ↓ StateNode * sabi23_node = new XLargeMotionSequenceNode("Sabi23","1sabi2.mot"); addNode(sabi23_node); // 明日また会う時〜↓ StateNode * sabi33_node = new LargeMotionSequenceNode("Sabi33","asitoki.mot"); addNode(sabi33_node); // 笑いながら〜集めよう↓ StateNode * sabi43_node = new LargeMotionSequenceNode("Sabi43","waraatu.mot"); addNode(sabi43_node); // 簡単なんだよ〜つかまえてみて↓ StateNode * sabi53_node = new XLargeMotionSequenceNode("Sabi53","kanoi.mot"); addNode(sabi53_node); // 大きな夢夢好きでしょ↓ StateNode * sabi63_node = new LargeMotionSequenceNode("Sabi63","ookina.mot"); addNode(sabi63_node); //決めポーズ StateNode * end_node = new XLargeMotionSequenceNode("End","end.mot"); addNode(end_node); StateNode * endm_node = new LargeMotionSequenceNode("Endm","kime2-2.mot"); addNode(endm_node); // スタートは伏せ姿勢 start_node = lie_node; // PCからの合図(TextMessageEvent)による遷移(伏せ→座り) EventTrans * textTrans = new EventTrans(sit_node,EventBase::textmsgEGID); lie_node->addTransition(textTrans); // 遷移(座り→前奏) sit_node->addTransition(new CompletionTrans(site2_node)); site2_node->addTransition(new CompletionTrans(zenso1_node)); zenso1_node->addTransition(new CompletionTrans(zenso11_node)); zenso11_node->addTransition(new CompletionTrans(zenso2_node)); zenso2_node->addTransition(new CompletionTrans(zenso3_node)); zenso3_node->addTransition(new CompletionTrans(amelo1b_node)); amelo1b_node->addTransition(new CompletionTrans(amelo2b_node)); amelo2b_node->addTransition(new CompletionTrans(amelo3b_node)); amelo3b_node->addTransition(new CompletionTrans(amelo5b_node)); amelo5b_node->addTransition(new CompletionTrans(amelo6b_node)); amelo6b_node->addTransition(new CompletionTrans(amelo7b_node)); amelo7b_node->addTransition(new CompletionTrans(zikan1_node)); zikan1_node->addTransition(new CompletionTrans(zikan2_node)); zikan2_node->addTransition(new CompletionTrans(zikan3_node)); zikan3_node->addTransition(new CompletionTrans(zikan5_node)); zikan5_node->addTransition(new CompletionTrans(sabi1_node)); sabi1_node->addTransition(new CompletionTrans(sabi2_node)); sabi2_node->addTransition(new CompletionTrans(sabi3_node)); sabi3_node->addTransition(new CompletionTrans(sabi4_node)); sabi4_node->addTransition(new CompletionTrans(sabi5_node)); sabi5_node->addTransition(new CompletionTrans(sabi6_node)); sabi6_node->addTransition(new CompletionTrans(kanso1_node)); kanso1_node->addTransition(new CompletionTrans(amelo12b_node)); amelo12b_node->addTransition(new CompletionTrans(amelo22b_node)); amelo22b_node->addTransition(new CompletionTrans(amelo32b_node)); amelo32b_node->addTransition(new CompletionTrans(amelo52b_node)); amelo52b_node->addTransition(new CompletionTrans(amelo62b_node)); amelo62b_node->addTransition(new CompletionTrans(amelo72b_node)); amelo72b_node->addTransition(new CompletionTrans(zikan12_node)); zikan12_node->addTransition(new CompletionTrans(zikan22_node)); zikan22_node->addTransition(new CompletionTrans(zikan32_node)); zikan32_node->addTransition(new CompletionTrans(zikan52_node)); zikan52_node->addTransition(new CompletionTrans(sabi12_node)); sabi12_node->addTransition(new CompletionTrans(sabi22_node)); sabi22_node->addTransition(new CompletionTrans(sabi32_node)); sabi32_node->addTransition(new CompletionTrans(sabi42_node)); sabi42_node->addTransition(new CompletionTrans(sabi52_node)); sabi52_node->addTransition(new CompletionTrans(sabi62_node)); sabi62_node->addTransition(new CompletionTrans(kansob1_node)); kansob1_node->addTransition(new CompletionTrans(kansob2_node)); kansob2_node->addTransition(new CompletionTrans(kansob3_node)); kansob3_node->addTransition(new CompletionTrans(zikan23_node)); zikan23_node->addTransition(new CompletionTrans(zikan33_node)); zikan33_node->addTransition(new CompletionTrans(zikan53_node)); zikan53_node->addTransition(new CompletionTrans(sabi13_node)); sabi13_node->addTransition(new CompletionTrans(sabi23_node)); sabi23_node->addTransition(new CompletionTrans(sabi33_node)); sabi33_node->addTransition(new CompletionTrans(sabi43_node)); sabi43_node->addTransition(new CompletionTrans(sabi53_node)); sabi53_node->addTransition(new CompletionTrans(sabi63_node)); sabi63_node->addTransition(new CompletionTrans(end_node)); end_node->addTransition(new CompletionTrans(endm_node)); } virtual void DoStart() { StateNode::DoStart(); start_node->DoStart(); fromPC.DoStart(); // fromPCオブジェクトをスタート } virtual void DoStop() { StateNode::DoStop(); fromPC.DoStop(); // fromPCオブジェクトをストップ } virtual void teardown() { StateNode::teardown(); } private: // コンパイル時の警告を避けるためのダミー関数 Mikuru(const Mikuru&); Mikuru operator=(const Mikuru&); }; #endif