2013/09/11(水) [n年前の日記]
#1 [cg_tools] 宝石のアニメパターンを作り直し
blender で出力したソレを縮小してアニメパターンにしようと試行錯誤してたのだけど。どう見ても回転してるように見えず。
_ドット絵描こうZ : 第22ドット 『回転アニメについて』 を参考にさせてもらいながら、結局、全部ドット打ちで描き直したり。
こんな感じに。
_赤い飛行石のスプライトシート(24x24 dot x 7 pattern)
Public Domain の画像として置いときます。
一応なんだかごちょごちょ動いてるようには見えるけど、やっぱり回転してるようには見えない…。何がいかんのかなあ…。
作業中は試しにアンチエイリアスもかけていたのだけど、どうも今一つで。こういうのはベタッとジャギッとしてるほうがいいような気がしてきたので、その方向で。
というか、よく動くパターンは、ドットそのままのほうがいいんじゃないかという気もする。セルアニメと同様、視覚情報を意図的に少なくしたほうが動きがよく伝わる場面もあるんじゃないのかしら。
_ドット絵描こうZ : 第22ドット 『回転アニメについて』 を参考にさせてもらいながら、結局、全部ドット打ちで描き直したり。
こんな感じに。
Public Domain の画像として置いときます。
一応なんだかごちょごちょ動いてるようには見えるけど、やっぱり回転してるようには見えない…。何がいかんのかなあ…。
作業中は試しにアンチエイリアスもかけていたのだけど、どうも今一つで。こういうのはベタッとジャギッとしてるほうがいいような気がしてきたので、その方向で。
というか、よく動くパターンは、ドットそのままのほうがいいんじゃないかという気もする。セルアニメと同様、視覚情報を意図的に少なくしたほうが動きがよく伝わる場面もあるんじゃないのかしら。
◎ バナナと星も描いた。 :
プレイヤーキャラの栄養補給には、やっぱりバナナだろうと…。背中にロケットを背負った青い
ネズミ
オポッサムもバナナで栄養補給してた記憶があるし。
星のパターンもあると色々便利。パーティクルにして飛ばしたり。
_バナナスプライトシート(24x24 dot x 3 pattern)
_星スプライトシート(16x16 dot x 4 pattern)
これも Public Domain の画像として置いときます。…星は、背景が黒じゃないと分かりづらい気がする。
バナナもアニメさせないとアイテムとして分かりにくいんじゃないかな、と思って動かしてみたけれど…。まだ回転させたほうがそれらしく見えたのだろうか…。いや、そもそもバナナは動いたりしないものだけど…。
星のパターンもあると色々便利。パーティクルにして飛ばしたり。
これも Public Domain の画像として置いときます。…星は、背景が黒じゃないと分かりづらい気がする。
バナナもアニメさせないとアイテムとして分かりにくいんじゃないかな、と思って動かしてみたけれど…。まだ回転させたほうがそれらしく見えたのだろうか…。いや、そもそもバナナは動いたりしないものだけど…。
[ ツッコむ ]
#2 [haxe] HaxeFlixelをまだ勉強中
Tiled Map Editor のオブジェクトレイヤーの情報も取得できるように修正したり。と言っても、タイル画像を置いたものにしか対応してないけれど。ポリゴン等は、実際使う場面が出てきたら対応しよう…。
アイテムを取ったら消えるように処理を入れてみたり。なんだかゲームっぽくなってきた。
アイテムを取った際に、FlxEmitter を使ってパーティクルを飛ばしてみようとしたのだけど、FlxEmitter.makeParticle() が思った通りに動かなくてハマったり。第一引数に画像を ―― BitmapData を与えれば表示してくれるのかなと思ったら、反映されずに標準画像(default.png)が表示されてしまう。結局、FlxParticle を生成して、その FlxParticle に画像割り当て・アニメパターンを設定して、必要な個数分、FlxEmitter に add していくやり方で表示できるようになった。
本来、Flixel の FlxEmitter には、minParticleSpeed や maxParticleSpeed というプロパティがあるらしいけど。HaxeFlixel の FlxEmitter には存在してないらしい。とりあえずそこは諦める。
Flixel には、 FlxU という、便利なメソッドがまとめられたクラスがあるらしいのだけど。HaxeFlixel には FlxU 自体が見つからなくておかしいなと。情報を検索してみたら、HaxeFlixel は鋭意開発中のライブラリなので、FlxU はバラバラになった状態であちこちに分散してる状態、かつ、結構なメソッドが未実装だそうで。具体的には、FlxU.getTicks() 等が無かったり。仕方ないので、OpenFL 内のメソッドを代用・流用することでどうにかした。FlxU.getTicks() は、flash.Lib.getTimer() を使う、みたいな。
Haxe には sprintf() が無いので、StringTools.lpad(元文字列, 埋め用文字, 全文字数) を使ってどうにかした。
アイテムを取ったら消えるように処理を入れてみたり。なんだかゲームっぽくなってきた。
アイテムを取った際に、FlxEmitter を使ってパーティクルを飛ばしてみようとしたのだけど、FlxEmitter.makeParticle() が思った通りに動かなくてハマったり。第一引数に画像を ―― BitmapData を与えれば表示してくれるのかなと思ったら、反映されずに標準画像(default.png)が表示されてしまう。結局、FlxParticle を生成して、その FlxParticle に画像割り当て・アニメパターンを設定して、必要な個数分、FlxEmitter に add していくやり方で表示できるようになった。
本来、Flixel の FlxEmitter には、minParticleSpeed や maxParticleSpeed というプロパティがあるらしいけど。HaxeFlixel の FlxEmitter には存在してないらしい。とりあえずそこは諦める。
Flixel には、 FlxU という、便利なメソッドがまとめられたクラスがあるらしいのだけど。HaxeFlixel には FlxU 自体が見つからなくておかしいなと。情報を検索してみたら、HaxeFlixel は鋭意開発中のライブラリなので、FlxU はバラバラになった状態であちこちに分散してる状態、かつ、結構なメソッドが未実装だそうで。具体的には、FlxU.getTicks() 等が無かったり。仕方ないので、OpenFL 内のメソッドを代用・流用することでどうにかした。FlxU.getTicks() は、flash.Lib.getTimer() を使う、みたいな。
Haxe には sprintf() が無いので、StringTools.lpad(元文字列, 埋め用文字, 全文字数) を使ってどうにかした。
[ ツッコむ ]
#3 [dtm] SE作成中
アイテムを取る時の音や、走ってる時の音を、FL Studio を使って作成中。
アイテムを取る時の音は、Sytrus や Autogun でベルっぽい音を鳴らしてどうにか。「パキーン」という音を鳴らしたいので、「パ」と「キーン」で、音色や音程を変えてみたりとかそんな感じ。
走ってる時の音については、テンポ(?)の求め方について少し悩んでしまったり。
本当は地形によって足音を変えたほうがいいのだろうけど、HaxeFlixel で、キャラのすぐ下の地形コードを取得する方法はあるのだろうか…。自前でアタリ判定すればそういうこともできるだろうけど。
アイテムを取る時の音は、Sytrus や Autogun でベルっぽい音を鳴らしてどうにか。「パキーン」という音を鳴らしたいので、「パ」と「キーン」で、音色や音程を変えてみたりとかそんな感じ。
走ってる時の音については、テンポ(?)の求め方について少し悩んでしまったり。
- アニメパターンは、20枚で1ループ。なので、片足分なら半分の10枚。イコール、10枚かけて片足が1回着地する。
- 30FPSで表示していて、片足着地に10枚かかるのだから、1秒間に足が着地する回数は、30/10=3回。
- 1秒間に3回着地するのだから、1分間なら、3x60=180回、足が着地する。
- ということは、180BPM(=Beats Per Minute、1分間に何拍か)になるはず?
本当は地形によって足音を変えたほうがいいのだろうけど、HaxeFlixel で、キャラのすぐ下の地形コードを取得する方法はあるのだろうか…。自前でアタリ判定すればそういうこともできるだろうけど。
[ ツッコむ ]
以上、1 日分です。