投稿者 トピック: obj.fieldをうまくアニメーションさせる方法はあるのでしょうか?  (参照数 2983 回)

caty

  • 各駅停車
  • *
  • 投稿: 8
PAk128 102.2.2をplayしている者です。
自分オリジナルの産業チェーンを作成し
その中で「水田」のfieldを考えました。
春 田植えが終わり 水を満々にたたえた
水田の水面がゆらゆら揺れるような状態
また、夏 稲が生長した田の表面を
風が渡ってゆくシーン…
というようなものを表現すべく
PNG画像を作成したのですが
思ったように画像がアニメーションしてくれません。

Obj=field
name=rice-field
Image[0]=tanbo.0.3 # winter
Image[1]=tanbo_base-1.0.0 # spring
Image[2]=tanbo_base-2.0.0 # spring
Image[3]=tanbo_base-3.0.0 # spring
Image[4]=tanbo_base-4.0.0 # spring
Image[5]=tanbo_base-5.0.0 # spring
Image[6]=tanbo_base-6.0.0 # spring
Image[7]=tanbo_base-7.0.0 # spring
Image[8]=tanbo_base-8.0.0 # spring
Image[9]=tanbo.0.1 # summer
Image[10]=tanbo.0.2 # fall
--------------------

参考までに自分で作成したdatファイルの内容を
貼っておきますが
これだと“spring”の間、ゲーム上での
3ヶ月の間に画像が8枚切り替わるだけなので
「水面がゆらゆら…」というような状態には
なりませんでした。
ここから考えるとゲーム上の時間で一時間の間に
例えば8枚、1日分で192枚、三か月分で576枚ぶんの
Image[ ]を指定してやる、というようなdatファイルをつくれば
それなりにアニメーションしてくれそうですが
もし、ほかによい方法があるようでしたら
お教えください。
(あくまで今は仮定の数字ですし
 「たとえば」の576枚ぶんの指定でどの程度の速さのアニメーションに
 なるかは見当がつきませんが、それだけのテキスト書きをするのは
 ものすごく大変そうなので…)

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 356
結論から先に書くと、fieldのアニメーションは無理じゃないでしょうか。

ここから考えるとゲーム上の時間で一時間の間に
例えば8枚、1日分で192枚、三か月分で576枚ぶんの
Image[ ]を指定してやる、というようなdatファイルをつくれば
それなりにアニメーションしてくれそうですが

wikiにも書いてありますが、当時からソースコードが変わっていなければ、1年を96以上には分割できないはずです。

これだと“spring”の間、ゲーム上での
3ヶ月の間に画像が8枚切り替わるだけなので

5枚以上の場合、単純に1年を画像枚数で分割するだけだと思っていましたが、そうなりましたか?
冬が1枚、春が8枚などと指定する場所がないので、そうはうまくいかない気がします。

caty

  • 各駅停車
  • *
  • 投稿: 8
ありがとうございました
« 返信 #2 on: 2011/06/26 07:25 »
こんなに早い返信をいただけるとは思ってもいなかったので
質問するために文章にしてみて「とにかくやってみるか…」という気になってしまい ;D
「96まで」という事を知らずに576枚ぶんでdatを作成しましたが
pak化時点でエラーになってしまいダメでした。
(無理に576じゃなく288とかでもよかったんですが)
でも返信いただいたのを見てspringぶんを「88」に減らして作成したdatでpak化してゲーム内で
表示してみたところ
とりあえずはspringの中で「88」ぶん画像は切り替わることがわかりました。
…まあ使える速さのアニメーションにはなりませんでしたが :'(
一晩かけてバカな事をやったな~とも思いますが
こんなところもこのゲームの楽しみのひとつなので
これからもこんな「おばか」な実験?をやるかと思います。
ありがとうございました。

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 356
なんかすごいですね。そんな限界まで試してみた人は他にいないんじゃないかと……

アニメーションの実装自体はそんなに難しくはないんだろうと思いますが、パフォーマンスの低下を理由に要望は却下されているようですね。残念です。
http://forum.simutrans.com/index.php?topic=4354.0