THE PSP攻略+α ~SONYへの挑戦状~

PSP関連ブログ?いいえ、ただのゆとりブログです

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

NScripterに登録型アニメーションを実装してみる 

登録型アニメーション(こんな言葉は存在するのだろうか)、簡単に言えば命令でスプライト番号とアニメーションの種類などを指定すれば、あとは勝手にアニメーションしてくれるというもの。
ONSでよく使われる、ループ内で経過時間から移動量を計算してamspで動かす方法だと、実装方法によるが1つのスプライトのみだったり、アニメーション中は処理が止まったりするものが多い。
今回私が実装したいものは、複数のアニメーションを好きなタイミングで登録し、好きなタイミングで動かせるという、かなり自由なアニメーションである。
   
 
というのも、少し前に掲示板にて複数のスプライトを同時にアニメーションさせる方法が話題に上がったので、モジュール化すれば今後の役に立ちそうだし、作ってみることにした。

まず、1つのスプライトしか動かせない大きな理由は、NSのタイマーは1つしかないということ。
大体はresettimerで初期化し、gettimerで経過時間を取得する。
まあ、複数のタイマーを使いたければ、Windowsプログラミングなんかで"タイマーを実装"するときと同じようにすれば良いだけの話。
OSが起動してからの時間を変数Aに取得し、その時点からの経過時間を計算したければ、再度時間を取得して変数Aの値を引けば経過時間が出る。
gettimerだけ使えば"複数のタイマーを作る"ことができるというわけだ。

次に、アニメーション中は他の動作が止まり、アニメーションが止まるまで進めないのは、アニメーションさせるループに飛ばしてるからである。なんというそのまんま東…
ループに飛ばしてるというところがミソで、"ループしないアニメーション処理"をする命令を作ってやれば好きなタイミングでアニメーションさせることができる。
結局は"視覚的に動くアニメーション"にしたければループ処理内で実行する必要があるが、決め打ちなスクリプトではなく、その時に応じた他の処理も一緒にループ内に収めることが可能なので、クリック待ちをしながらアニメーションさせたりすることができる。
システムカスタマイズによるテキスト送りのクリック待ち部分に組み込めば、文章をまたいでアニメーションを持続させることもできる。(テキスト表示中は止まってしまうが)
まあ、ONSがLuaに正式に対応すれば、アニメーション部分に組み込めば解決するのだが…


というわけで、早速作ったがファイルを分割してたり、ブログに貼るにはちと長いので、7zに固めたものを公開所に置いておいたので、興味のある人はDLしてみてください。
アニメーションの種類を自分で追加できたり、アニメーション用のwait命令、delay命令などを実装してるので、カスタマイズ性も高く、組み込みやすい気がします。(当社比)
個人的にはアニメーションの種類を追加するとき、内部の分岐スクリプトを弄らずにラベルを追加するだけで、そのまま使える部分とか色々凝ってる気がします。
ONSが正式にLuaに対応したらLuaのアニメーションを利用した奴を作るかも。

あと、NSのシナリオファイル名について一応補足しておく。
ファイル名の番号は一桁でも二桁でも良い。
例) 0.txt 00.txt
そして、連番にする必要はない。若い番号から順番にすべて読み込まれる。
例) 00.txt 05.txt 12.txtというファイルがあってもすべて読み込まれる。
また、0.txtを定義、1.txtをシナリオと分けるのが主流になりつつあるが、定義部分を分割したり、シナリオを元ファイルごとに分割すればデバッグ時などに見やすくなる。
上の仕様と合わせれば00.txt~09.txtは定義分、10.txt~19.txtはAルート、20.txt~29.txtまではBルートという感じに予約しておけば、ファイル名が番号でも中身が分かりやすくなる。
ファイルがバラけるとPSPに入れるときに見辛いという人は私みたいに0.txtに全部収めるというのもありっちゃあり。個人の好きなように。


記事書いてる途中に爆睡しちゃって日付変わってるよ!!!1
複数のスプライトをアニメーションしたいと言っていたNGSWさんですが、コンバータ(?)絡みでブログを閉鎖という話。
某スレが祭りになってたので最初はネタかと思ったが、付属のファイルに閉鎖を匂わすような文章が…
どうやらコンバータではなく、シナリオデータと画像もろもろをそのまま配布してたとかなんとか。
この事態を未然に防ぐ方法は無かったのでしょうか。。。
と思ってたら昨日再開してますた(´・ω・`)
もうわけがわからん。スレが割れ厨のすくつ(なぜか変換できない)になって活性化してるぐらいわけがわからん。
最近は色々と疲れるようなことばかりである。
他人のせいにするつもりないし、責めるつもりもないが、モチベが著しく低下している。
もう俺は自分の好きなように活動するよ…
Going my way.
というわけで次回、コンバータのあり方について(仮)
放送日は未定。
まずはブログの説明や利用規約を書いたページを作らないと。
趣旨を書いておかないとまた誤解が発生する。
[ 2009/08/28 04:07 ] 未分類 | TB(0) | CM(5)
No.848
この度は、申し訳なかったです。
いろいろご迷惑をおかけしてすみませんでした。
今度は、シナリオも自作画像も同梱しないです。

自分の疑問にツールを作ってくださり、とても感謝です。
今後の参考になります。

ブログ再開の理由はあのツール?を消す為です。

あのスレはもう痛いです。(><)
パスをクラックしたり、再配布禁止なのに再配布とか…

もう疲れたお…


[ 2009/08/28(金) 18:41 ] [ 編集 ]
No.849
久々ですね、掲示板で質問して以来です。
あのあと、早速がんばっていろいろ調べてみてやっと画像を表示できるところまでいきました。
最初は、簡単なノベルゲームを作ろうと思っていた矢先、七次元さんが実装してくれました。すごく感謝しています。
これからも、自分のペースで記事をかいていってほしいです。体を壊さないようにしてくださいね。
[ 2009/08/28(金) 20:48 ] [ 編集 ]
No.850
「そうくつ」じゃないですか?
[ 2009/08/28(金) 21:36 ] [ 編集 ]
No.853
このコメントは管理人のみ閲覧できます
[ 2009/08/30(日) 00:08 ] [ 編集 ]
No.854
>>NGSWさん
迷惑というか、誰にも相談しなかったことが残念です。
自分の力不足さが実感できましたからね…
割れ対策に関しては私も色々考えてますが、予告どおり後ほど記事で考察したいと思います。
ちなみに、zipやrarのパスワードに関しては、強力な暗号化アルゴリズムを使用し(rarは選択できたか覚えてない)、全角文字と半角文字を織り交ぜて、20~30文字程度にすれば、ツールによる総当りでも大分時間がかかります。
全角文字を使うだけでもかなり効果があると思います。
あと、ブラウザの更新機能が上手く動作していなくて、掲示板の書き込みにまったく気付きませんでした…
自分で言っておきながら返事が出来なくて申し訳ないです。


>>ほたるさん
俺なんかやったっけ^^;
私もがんばっていきますので、ほたるさんも開発に励んでください。


>>123456さん
「なぜか変換できない」でググるんだ!


>>853
モチベが0に近かったけど、自分で開発しようと思ってる人がまだスレに居たのでちょっくらやってみた。
久々にONS移植したけど、やっぱりONSの機能じゃ色々ときついなぁ…
そして製品版は祖父地図に売ってないorz
[ 2009/08/30(日) 08:55 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
プロフィール

七次元

Author:七次元
永遠の18才
夢を追い求める学生
プログラミング初心者(笑)
愛用言語はHSP(スイーツ)
プログラマーを目指すものの「C言語?読むだけ^^」「C++?知らんがな。クラスって何?おいしいの?」
というゆとりっぷり。
Delphi入れたりVC++2008入れたり迷走中。
夢はコミケで何かやりたい。一般参加すらしたこと無いけど。
PSP-1000(CFW)持ち。PSP-4000マダー?
よく難波周辺のゲーセンに出没するらしい。
STGも格げーも初心者。
ろ、ロリコンちゃうわ!!!

連絡先:homepage_touroku[a]yahoo.co.jp
(メールはほとんど確認してません。掲示板に書き込むのが確実です)

関連リンク
そふとうぇあこうかいじょ
公開したファイルが置いてあります。

掲示板
連絡やら雑談やら適当にどうぞ。
カウンター



現在の閲覧者数:
ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。