2015年7月4日土曜日

[NDS]Command System - CS Commander マクロの書き方その1

マクロを書き始める前に
まずCS Commanderの時間の概念からお話します。





Intoroの後に続く時間の指定ですが、これは
そのコマンドを発動してから何秒後に次のコマンドを発動させるか
という記述です。

Intoroを3秒動かしてIntoro2を2.2動かしてScene1へ飛ぶという
考えをしがちですが、それは間違いです。

正しくはIntoroを動かしてから3秒後にIntoro2がスタートし
2.2秒後にScene1へJumpします。

ですから、
CS Commanderの場合は、次のコマンドを発動させる必要がなければ
時間の記述は不必要です。

まずこの概念を必ず正しく覚えてください。

では実際にCS Commanderを編集していきましょう

まずFormationのコマンドから登録していきます。

BassでもSheetでもどちらでもいいのですが、今回は2枚のシートが全て同じ時間に
同じ動きをするように作成したので、わかりやすいSheetからPos情報を出力します。


シートをタッチして出てきたダイアログから「Output」をタッチしてください。
するとチャットログに今まで登録してきたPos情報が出てきます。
このログですが
=の左部分がポジションを登録した時に付けたコマンド名
=の右部分が位置情報と時間です。

それをノートに書いていきます。


①の部分はカテゴリの名前です。
わかりやすいようにPositionsといれました。
この部分はHUDの


一番上、青い部分の「A」という名前がついているところに出てきます。
次に、Formation Sheetの登録したポイント全てを書き込んでいきます。
Animatorの場合、Animatorにマクロが組んであるので
コマンドを登録してそれを発言するだけで連続してアニメが作動しますが
ポイントはここでマクロを組んでいくので、使用するポイント全てを
発言する様に登録しておかなければなりません。

=の左部分がボタン名になります。(コマンド名)上の画像の「Button1~10」の部分になります。
=の右部分が発言内容です。

3行目の部分を見てください。
Ready=8456|Ready

[ボタン名」=チャンネル|ポジションを登録した時に付けたコマンド名

という記述になっています。
(わかりやすいようにボタン名とコマンド名を同じにしてあります。
ボタン名を違う名前にしてもOKです。日本語でも大丈夫です。)

このチャンネル名ですが
Baseをタッチしてみてください。出てくるダイアログにチャンネル名が
それぞれ書いてあります。


今はSheetを動かすマクロを記述しているので
このSheetチャンネルを使用します。
(Animatorを動かす場合もSheetに付随するのでSheetチャンネルでOKです。)

※ステージやオブジェクトを移動させない場合は
Systemチャンネルを使用してもOKです。
詳しくはチャンネルの項目をご覧ください。

手動でチャットに打ち込んで発言して動かす場合は
/8456 Ready
と発言していましたが、ここでは
8456|Readyと記述します。

Outputして出てきたログのコマンド名を全て同様に書き込んだら
Animatorを見てください。

左がAnimatorのノート 右がCommanderのノートです。


Animatorで付けたコマンド名とポジションで付けたコマンド名が
同じ部分があります。(青いラインの部分)

今回は曲の切り替わりと同時にシートを動かしたいので
コマンド名を同じにしてあります。
こうする事によって、ポジションのコマンド名が発言されて
シートが移動すると同時に
Animatorのコマンド名も発言される事になるので
コマンド名以降からのアニメが発動されます。
ですから
ダンスの切り替わりとぴったり同時にシートが動く事になります。

通常、Animatorの記述は、アニメ名と時間を並べただけで
最後までアニメが流れていきますが、曲の切り替わりで
コマンドを付けて分けている理由はここにあります。

これによって、シートとアニメとの連動だけではなく
シーン毎に手動で修正をすることができます。

右のCommanderのノートを見てください。
青いラインが付いてない部分があります。
ここは、アニメが流れている最中にシートのみ動く部分です。
アニメとは連動していません。

次にマクロを書いていきましょう。

多分ここからが初心者には一番躓く部分だと思います。


①の部分は先ほどと同じです。カテゴリ名になります。
②の部分がボタン部分の記述になります。
=の左部分がボタン名です。
=の右側がマクロのコマンド名です。

Ready1のボタンで[MACRO1]が発動します。
Ready2のボタンで[MACRO2]が発動します。
Startのボタンで[SS]が発動します。

③の部分にこの右側のマクロの詳細を書いていきます。

[MACRO1]はINITです。これはPositionsのところに書いた
INITのコマンドです。
Positionsに書かずにここに直接

[MACRO1]=8456|INIT

と記述してもOKです。

注意※=の左側のコマンド名はカテゴリが違っても
同じものを重複して記述してはいけません。

ですから、PositionsかMACROどちらかのカテゴリに記述します。
(説明の為にわざわざこういう書き方にしてありますが
慣れてくればこちらの書き方をします。できるだけ読み込みを少なくする為です。)

[MACRO1]はReadyです。これも前述と同様です。

[SS]から曲部分がスタートします。

[SS]=Intoro1|24[S1]

意味:[SS]はIntoro1を開始後24秒後に[S1]へ移行する

[S1]=Scene1A|0.5|Scene1B|5|Scene1C|86.1|[S2]

一番厄介な部分ですw
シートが連続して移動します。

Scene1Aを開始後0.5秒後にScene1Bが開始、その5秒後に
Scene1Cを開始して85.6秒後に[S2]へ移行する

ここでもう一度Pos情報を見てみましょう。

Sheetの動きはこれです。


Scene1Aが0.5秒かけて移動
Scene1Bが5秒かけて移動
Scene1Cが0.5秒かけて移動

次にAnimatorのノートを見てみます。わかりやすいようにScene1A部分を拡大しました。


Animatorの[Scene1A]とSheetの[Scene1A]が同時に発動します。
Animatorの”S4D_221Cが6秒流れている間に
[Scene1A]開始後0.5秒後にSheetのScene1Bが5秒、Scene1Cが0.5秒かけて移動します。

[S1]=Scene1A|0.5|Scene1B|5|Scene1C|86.1|[S2]

このScene1Cの後の時間がくせものです。

このマクロの時間の概念を思い出してください。

コマンドを発動してから何秒後に次のコマンドを発動させるか

この場合Scene1Cが発動してから何秒後に[S2]へ移行しなければならないかを考えます。

AnimatorのScene1Aの合計時間は91.6秒です。
Scene1Aが開始して91.6秒後にScene2へ行かなければなりません。
この時、SheetもScene2の位置へ同時に移動します。

ですからScene1Aの合計時間から、Scene1A開始後Scene1Cが発動するまでの時間を
差し引いた時間がScene1Cの後に記述しなければならない時間になります。

91.6-(0.5+5)=86.1

これがScene1Cの後に書かなければならない時間です。

最後の[S2]=Scene2|25.55|Scene3

これはもう簡単ですね。
Scene2の後の時間はAnimatorのScene2~Scene3までの時間の合計です。
Scene3以降の数字がないのは、Scene3を発動してから次へ行くコマンドが
ないので、必要ないからです。

このノートに好きな名前を付けて、Commanderへ入れます。
次に一番下段の真ん中にあるノート読み込みボタンをタッチしてください。
先ほど名前を付けたノートの名前が出てきます。
それをクリックすると読み込みが始まります。
読み込みが完了すると、記述したボタンが出てきます。


ここまでが基本的なマクロの書き方になります。
今回はAnimatorとSheet Posを連動させているので割りとわかりやすく
書いていますが、AnimatorとSheet、全くバラバラに動かす書き方もあります。
また、ステージやエフェクトをこの中に組み込んで
全て同時に操作してしまう書き方もあります。

この辺りは時間の計算やマクロの書き方がかなり複雑になってくるので
また次回詳しく説明していきたいと思います。


そしてこのブログを参考にされる場合ですが
できれば、同じようにCSやAMを動かしながら読み進んでください。

同じようにやっていけば、必ずできます。
慣れてくれば本当に簡単です。
基本ができるようになったら、次のステップへ進んでください。

もしもわからない場合、気兼ねなくIMで質問してください。
その時、どこがわからないのか、何をしようとして出来なかったのかを伝えてください。
そうすればどこで躓いてるのか判断できます。

中級~上級テクニックで「こういうことをやりたいんだけれどどうすればいいか?」
というご質問には出来る限りお答えいたします。

0 件のコメント:

コメントを投稿