前のトピックを表示 :: 次のトピックを表示 |
投稿者 |
メッセージ |
過密市長
登録日: 2004.11.23 記事: 33 所在地: TOKIO
|
|
トップに戻る |
|
|
ラグ太郎
登録日: 2004.06.21 記事: 930 所在地: 北九州市
|
Re: アニメプロップ 日時: Thu Oct 11, 2007 11:14 pm
|
|
|
過密市長さん、今晩は。
膨大な量の和訳、大変お疲れ様でした
早速ざっと読んでみましたが、「ちょっと試してみます」といって気軽に試せるようなものではないようで 、まずは時間が空いたときにチュートリアルに従ってやってみたいと思います 。
それでは。
_________________ Tomorrow is anotherday, believe it.
Ragutaro |
|
トップに戻る |
|
|
Mas'71
登録日: 2006.04.24 記事: 129 所在地: Chiba-city JAPAN
|
お疲れ様です! 日時: Fri Oct 12, 2007 3:57 pm
|
|
|
過密市長さん、こんばんは。
おお!
こほどのボリュームの翻訳作業。本当にお疲れ様でした!
理屈では簡単そうでも、実作業となると大変で、それを言葉で説明するのは更に大変。
これはアニメーションPROPに限らず、色々な意味での教科書になり得ます。
いつかは必ずやってみたい分野なので、本当にありがたく利用させて頂きます!
で、よくよく考えるとG-MAX(3DSmax)は、CGアニメソフトとしても有名な部類のものなんですよね? 3DSMaxの不要な機能を削除したとは言え、Gmaxにもタイムラインが堂々と残っているところを見ると、もう少しSC4でも開拓されていてもおかしくないのでしょうが…
|
|
トップに戻る |
|
|
過密市長
登録日: 2004.11.23 記事: 33 所在地: TOKIO
|
Re: アニメプロップ 日時: Mon Apr 14, 2008 12:31 am
|
|
|
[ アニメその後 ]
Denham氏のアニメプロップ作成法を紹介してから5ヶ月ほど経ちました。
その間、アニメの研究をするとともにアニメツールを作製していました。
リアルライフが超忙しい状態でなかなか先に進みませんでしたが、概ね完成するところまで到達しました。
現在、バグ取りやマニュアルとサンプル作りを進めていますが、とりあえず経過を報告しておきます。
Denham氏のアニメ作成法の流れは、
------------------------------------------------
1. BATアニメ作成。
2. BATエクスポート(1シークエンスが20フレームなら、20×2=40回エクスポート)。
3. 作成された.SC4ModelファイルからFSHを抜き出す。
4. 全てのFSHファイルをBMPに変換。
5. BMPファイルを256×256のビットマップに貼り付け。
6. 256×256のビットマップをFSHに変換。
7. AVPファイル、ATCファイルを修正。
8. FSH,AVP,ATCファイルをDATファイルに挿入。
9. Exemplarファイルを修正。
10. アニメプロップ完成。
------------------------------------------------
となっていました。
この方法で実際にアニメを作ろうとすると大変な作業になります。
しかも、不確実な部分が含まれていて、失敗する可能性もあります
この方法を解析していてわかったことは、
------------------------------------------------
a. BATエクスポートで作成される画像は、昼景(α無しピクチャ)と夜景(α付ピクチャ --- 全体は照明された昼景ピクチャで、αでマスクすると照明された部分のみ残る)である。
b. BATエクスポートで作成される画像は最大256×256ピクセルで、それよりも大きい画像の場合は、256×256画像の組み合わせである。また、画像が組み合わされた場合、この組合せの順番を知らせる情報はSC4Modelファイルの中には存在しない。
c. ここでの対象となるアニメーションは、Simcity1.dat, Simcity2.dat 内でAVPファイルで参照されるビットマップ型アニメーションである。使用される画像は、昼景-α付ピクチャ(一部α無し)であり夜景は存在しない。画像のサイズは推定127×127ピクセルが最大である(符号付1バイト)。
d. ビットマップ型アニメーションは単純な動きを繰り返す小物、単独や群集人物、広告、信号灯などに使用される(AVP型)。大きなアニメ、遅いまたは複雑な動きのアニメ、交通やイベント系のアニメなどは、3D骨格を持つポリゴン型アニメ(S3D型)が使用される。他に噴水や煙があるが形式は不明。
e. ロットエディタで配置可能なプロップも上の3タイプが使い分けられている。
f. ビットマップ型アニメーションでは夜景がないものの、ビデオスクリーンや信号灯では、Exemplar の Self-illuminated プロパティが上手く働いている。これがTrueの場合、夜間になっても夜景のマスクが掛からず、ビデオスクリーンや信号灯は明るく表示される。信号灯の場合Self-illuminatedがTrueだと、信号灯以外の部分にも夜景のマスクが掛からないが、暗い色を使うことで逃げている。
g. 建物の背面に隠れる場合などの前後関係は Exemplar の Occupant Size のみで把握される。また、Denham氏が困惑した画像表示の原点はこの Occupant Size の平面中心であり、gmaxの3D原点(0,0,0)がエクスポートされた各視点画像のどの位置にあるかがわかれば、画像の位置合わせは容易である。
h. Denham氏はテクスチャ無しのモデルをエクスポートして、疑似αを作成している。
------------------------------------------------
などでした。
次に、Denham氏の作製法を改良し、また、自動化を考えてみました。
過密式フローは、
------------------------------------------------
1. BATアニメ作成。
2. BATエクスポート(1シークエンスが20フレームなら、20回エクスポート)。
3. 【自動化】作成された.SC4ModelファイルからFSHを抜き出す。--- DBPF解凍
4. 【自動化】全てのFSHファイルをBMPに変換。--- FSH(DXT1,DXT3)toBMP変換
5. 【自動化】BMPファイルを256×256のビットマップに貼り付け。
6. 【自動化】256×256のビットマップをFSHに変換。--- BMPtoFSH(DXT3)変換
7. 【自動化】AVP、ATC、Exemplur各ファイルを作成。
8. 【自動化】各ファイルをDATファイルに組み込む。--- DBPF圧縮
9. アニメプロップ完成。
------------------------------------------------
となりました。
自動化に使用する言語はVB6・・・公表を考えているので、せめて.netを使おうかと思ったのですが、慣れていないのでやめました。C++は疲れるし、我が灰白色の脳細胞には他の言語を仕込む余地もなく、コンパイルすればネイティブで結構早く動くので、使用言語はVB6としました。
DBPF(.DAT)ファイル解凍と各ファイルの構造は http://www.modthesims2.com/wiki.php?title=SC4FormatsListを参考にしました。BMPとDXT3の相互変換はDLLで提供している人がいたので、それを使うことにしました。
ということで、命名規則無視、コメント無し、パブリック変数の多用など悲惨な作法なれど、ソースは絶対公開しないぞとの決意の元、ツールの作製開始。
しかし、作製を進めながらも、FSHのDXT3圧縮画像をBMPに戻し、さらにそのBMPをDXT3に再圧縮すると画像が劣化しないだろうか、BATのMAXスクリプトも改造できればもっと便利になるのにな・・・などと思っていたところに、フォースでBATエラーの質問。
回答するためにMAXスクリプトを調べてみると、delete old file… なる行を発見。
この行をコメントアウトしてからモデルをエクスポートしてみると、なんと、仮ファイルがごっそり消されずに残っているではありませんか!
しかも、仮ファイルは劣化の心配のないTGAファイルです。
ズーム毎、視点毎に、20枚(夜景有りなら、さらに20枚)づつそろってます。
この画像を使わない手はないし、MAXスクリプトも改造できそうだな・・・
欲が出てきましたね。ここで、急ぎ作戦変更。
新しいフローを立てることにしました。
新過密式フローは、
------------------------------------------------
1. BATアニメ作成(夜景も対応)。
2. 【自動化】BATエクスポート(1シークエンスの全フレームエクスポート…ひたすら待てばよい!)。
3. 【自動化】作成された.SC4ModelファイルからOccupantSizeを取り出す。--- DBPF解凍
4. 【自動化】作成されたTGAファイルをBMPに変換 --- TGA解凍、TGAtoBMP変換
5. 【自動化】アニメーション調整(動作確認、フレーム数調整、簡易な影合成など)
6. 【自動化】BMPファイルを256×256のビットマップに貼り付け。
7. 【自動化】256×256のビットマップをFSHに変換。--- BMPtoFSH(DXT3)変換
8. 【自動化】AVP、ATC、Exemplar各ファイルを作成。
9. 【自動化】全ファイルをDATファイルに組み込む。--- DBPF圧縮
10. アニメプロップ完成。
------------------------------------------------
となりました。gmaxの自動起動から始まってロットエディタを起動する直前まで、ほぼ完全自動化です。
TGA to BMP変換が増えたものの、DXT to BMPが減ったので、なら、BMP to DXTも組んでしまえということにしました。扱うファイルの数が多いので、DLLでもファイルのオープン・クローズがネックになるのです。しかし、解凍方法は簡単に見つかるのに、圧縮方法はなかなか見つかりませんね。ネットを捜しまくってやっと発見しました。しかも、比較的理解しやすいC++のソースを!
ポインタ変数の扱いに注意し、クラスの分解(1回しか使わないものが多いのでインライン化)など不便化?に悪戦苦闘しながらも、どうにかコーディング完了。
夜景はプロップをもう一つ用意し、夜間マスクを掛けた昼景と合成して使用します。夜間マスク(RGB減色)の値はMAXスクリプトの中から偶然発見しました。昼景と夜景の切換えはExemplarで Resource Key Type 4 と Nighttime state Change を利用して実現しています。
アニメの標準サイズは、DXTファイルが4×4ビットの圧縮なので4で割れないサイズの場合、隣り合った画像にゴミが出ることがあるため、124×124としました。また、画像位置を決めるデータが+127〜-128の範囲であることから、画像4枚の組合せで248×248も可能となりました。124×124で直径約18mの球内、248×248では約35mの球内で動くモデルの表示が可能です。
248×248はプロップ4つの組み合わせなので、画像に継ぎ目が入ったり、昼夜の切替り時や混雑した都市ではアニメの同期が崩れます(同期の崩れは、視点を変えれば通常は修復されます)。これらはSC4の仕様なので仕方ありません。とはいえ、SC4マップの中で自分のアニメプロップが動いているのは面白いものです。
以上、長々と経過を書きましたが、残る作業はあとどのくらいかな・・・、
なんとか5月連休前にはリリースしたいところです・・・
|
|
トップに戻る |
|
|
Mas'71
登録日: 2006.04.24 記事: 129 所在地: Chiba-city JAPAN
|
Re: アニメプロップ 日時: Sun Apr 20, 2008 12:00 am
|
|
|
こ、、、これは!
素晴らしい!の言葉では言い表せない程のツールになりそうですね!
翻訳だけでも大変なご苦労でしたでしょうに、その解析からとうとうツール一本化にまで
達してしまわれるなんて、それは凄い事だとしか言い様がありませんね!
これはBAT経験者には眉唾でもあり、新たに課せられる新たなミッションになりそうです!
が…。
単体もろくな作品が作れない自分が、アニメーションまで出来るのか?
自分が使いこなせるとでも思っているのか?
なんて言う愚問が眼前をちらついていますが
またこれでBATの可能性が飛躍的に伸びますね!
完成を楽しみにしています!
頑張って下さい!
|
|
トップに戻る |
|
|
過密市長
登録日: 2004.11.23 記事: 33 所在地: TOKIO
|
開店しました! 日時: Mon Jun 01, 2009 10:58 pm
|
|
|
引用: | [ アニメその後 ]
なんとか5月連休前にはリリースしたいところです・・・ |
・・・が1年後の連休明けの梅雨入り前になるとは
待っていた人がいたらごめんなさい、でも、どうにか開店に漕ぎ着けました。
アニメツールはBABという名前になりました。
SC4Dで公開しています。
ラグ太郎さん、長期のサイト維持管理ありがとうございます。
おかげ様で、ここで4年以上暖めていたものを形にすることができました。
ここでMODとの接触がなかったらまったく違ったシム人生を送っていたでしょう。
本当にありがとうございます。そして、これからもよろしくお願いいたします
|
|
トップに戻る |
|
|
|