FC2ブログ

RCOmageで行える基本アニメーション-MoveTo編

ここでは、「RCOmageで行える基本アニメーション-MoveTo編」 に関する記事を紹介しています。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
RCOmageを使ったCTFでは様々なアニメーションを表現することが出来ます。
今回はMoveToについて解説したいと思います。
MoveToはPlaneに構成されている物を座標指定で移動させることが出来ます。

まずPlaneから解説したいと思います。
Planeはいわば情報の入った箱のようなもので,その中に画像を組み込んだり,
アニメーションの発動を命令したり,そのオブジェクトの座標を指定したりといった役割をします。
基本構成はこんなふうになってます。





nameはそのままの意味でPlaneの名前を入力します。名前は半角英数であれば何でも構いません。

posX・posYはそのオブジェクトをどこに配置するかの座標指定になります。

width・heightこれはそれぞれ、幅と高さになります。画像をPlaneに組み込む場合は

その画像のサイズ通りにすればその画像がXMB上に現れます。
このとき画像のサイズより大きくしたり小さくしたりすることでリサイズすることも可能です。

onInitはAnimTreeにあるアニメーションの発動をさせるための記述です。
アニメーションを作成していても,OnInitにアニメーション発動記述をしていない場合は
アニメーションが発動しないので忘れないようにしましょう。記述する際は「anim:アニメーション名」といった感じで記述します。
よくanim:を入れ忘れてコンパイルエラーの元になるので注意。

imageはImageTreeに登録された画像をPlaneに適応するのに使います。これもOnInitに似ており
「image:ImageTreeに登録したイメージ名」といった感じで記述します。
これもimage:を忘れないようにしましょう。

ImageTreeやAnimTreeに関しては参考CTFを最後に貼ってるのでそこを見てみれば分かると思います。


その他redScaleとかgreenScaleなどの解説については省略します。
基本的にお約束だと思ってくださいw



では今度はMoveToについて説明します。




objectはPlaneの対象を指定する記述です。例えばPlane名がExampleの場合、
object="object:Example"と指定します。これはMoveToに限らず,殆どのアニメーション命令で使うので
絶対覚えておきましょう。


durationは実行完了までの時間です。これはms(ミリセカンド)つまりミリ秒で指定します。
例えば3秒で完了させる場合は「duration="3000"」という記述をします。
実行完了するまでという表現だと分かりづらいかもしれませんので更に解説しておくと。


78dfbbe580bf0ff7f0f67cc8bbf67172.png


例えばA地点が出発地点としてB地点までオブジェクトを動かす予定で
durationの値を3000に設定したとすると,A地点からB地点へ3秒かけて到着するようなアニメーションになります。


accelModeについては基本的には0x0で構わないので省略。どうしても気になる方はこちら


posX・posY・posZは,その移動させたいオブジェクトの座標指定に使います。
上図で考えてみると,B地点までオブジェクトを移動させたい場合は



というような記述になります。


(ここでDelayが出てきていますが,これは待機時間を表します。
これを除けてしまうと順番を無視してアニメーションが同時発動してしまうため
アニメーションの動作の間に入れます。基本的にdurationと同じ値でいいと思います。)


しかしMoveToを使用する際に注意なのがオブジェクトの初期座標位置です。
つまりそのオブジェクトがどこから移動を始めるか、ということです。図ではA地点をスタートにしていますね。
ループ処理をしない場合はPlaneの座標指定が動作開始地点になりますが,
ループ処理の場合,最初の動作のみ初期座標位置をPlaneから認識するためループ時に
同じ座標に移動することになりオブジェクトは実質停止します。


よってループ処理を行う場合は初期位置指定として到着地点の前に「duration="0"」のMoveToを作っておきます。
座標はMoveTo内のposX・posYで指定します。durationが0ということは瞬時にMoveTo命令が発動する、つまり
初期位置が設定できるというわけです。これでループさせても初期位置からまた繰り返し移動する
アニメーションを表現することが出来ますね。





ちなみにループ処理にはFireEventという命令を使います。FireEventを使うとアニメーション中に
別のアニメーションを開始させることが出来ます。つまり同じアニメーションを指定すれば
最初からアニメーションが実行されループする処理になります。
ただし約束がありFireEvent前には必ずDelayの記述をしてください。これを破るとPSPがフリーズします。





上図のようなアニメーションを作る場合アニメーションはこのような記述になります。





まず,duration0で初期位置をX=-210,Y=0の位置に指定します。
そして3秒間かけて-210から210へと移動する指定をします。
3秒間かけている間に3秒間待機します。別のアニメーションが入る場合はDelay後に記述すれば3秒後に動作します。

最後にFireEvent命令でExampleというアニメーションを発動させます。つまり今行ったアニメーションをもう1度行います。
つまり最初に戻るので,初期位置X=-210,Y=0の指定命令が入り、繰り返されます。



実際にサンプルを作ってみたので実際に試してみてください。コードも入れておきます。
なお6.60と6.39限定です。


XMBが波の時(標準)はMoveToでduration0で初期位置指定していないアニメーションにしています。
壁紙を適応した場合はdurarion0で初期位置指定しているので綺麗にループするはずです。ぜひ御試しあれ。

ダウンロード
スポンサーサイト

関連タグ : RCOmageで行える基本アニメーション,

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://electricvoice.blog40.fc2.com/tb.php/668-ad513caf
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。