プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
旗手モデル08
作成中の旗手モデル
槍兵モデルの槍にクロスシミュレーションの旗を加えた。
一見まともそうだが、まだ何か問題があるらしい。



◎シーンファイルのマージ

今回は旗手モデルを作成します。というか、槍兵モデルの槍に旗を加えるだけです。

で、実際にシーンファイルをマージしようとすると、

オブジェクトを作成出来ません。クリーンアップを実行します。

とエラーが発生してマージできません。他のシーンファイルも試してみたのですが、やはりエラーになります。

シーンファイルのマージは、これまで一度も成功したことが無いので、これを機にいろいろ試してみましょう。



◎さっぱりさっぱり

まず、カラッポのシーンを2つ用意してマージすると…エラーになりました。カラッポは良くないのかな?

次に、nullを1つだけ取得したシーンを2つ用意してマージすると…エラーになりました。
なんだよ、これじゃ何もマージできないぞ!(怒)

モデル/カメラ/ライト/Nullの名称を重複しないように変えてもダメ。ドラッグ&ドロップでもやっぱりダメ。ヘルプを読んでも不審な点が見当たりません。

…さっぱり糸口が掴めません。諦めて1から作ります。



◎備忘録

槍兵モデルをベースに作業開始。まずはカーブを描いて、スクリプトでメッシュを作成して、フォースを適用して…あれ?ファンを適用しても動きませんね?

何度も同じ経験をした記憶がありますが、コレの対処法は何故か憶えられないんだよなぁ…ブツブツ。

…ああコレだ!ClothOpのフォースタブの外力係数。自動的にポップアップするメニューに出てこないし、ファンのプロパティにも存在しないから気付き難いのですね。

また忘れそうなので、HPにメモっときました。



◎クロスメッシュの移動

ファンがOKになったので、クロスメッシュの位置を移動します。

旗ポリゴンの座標を移動したい

メッシュの位置を移動しただけだと、(Softimage上は問題無いのですが)XNA描画時に形が崩れてしまいます。それを防ぐためにメッシュの座標を(0, 0, 0)とする必要があるのですが…「ニュートラルポーズの設定」「全ての変換をフリーズ」「リファレンスポーズの設定」などは全てNG。

本来はセンターを移動してオペレータスタックをフリーズするのが正しい手順と思いますが、センター移動時にオブジェクトもコンストレイントで連動してしまいNG。仮頂点を追加して「センターを選択した頂点に移動」とすると、オブジェクトとセンターの座標がその位置に移動するだけで効果が無くNG。全頂点をゴッソリ選択して移動もNG(頂点移動不可)。

各頂点がセンター座標と連動するようコンストレイントで設定済のようですが、これを外すとクロスが動きません。
うげー参った(x_x)



◎考え過ぎ?

…いや待てよ?クロスメッシュを直接XNAで表示するわけではないのだから、クロスメッシュは別の場所でも支障無いのでは?とりあえず試してみましょう。

旗手モデル01   旗手モデル02

クロスの旗パタパタアニメを再生しつつ、槍の位置に連動して旗メッシュが移動しました。槍から離れすぎてしまうのが問題ですが、これを修正できれば見た目はOKっぽいです。難しく考え過ぎだったのかな?(^^;

クロスの初期位置を槍の位置にピタリ合わせれば、槍から離れなくなるんじゃないですかね?

旗手モデル03   旗手モデル04

旗メッシュが槍と連動しなくなってしまいました。何故!?


その後もいろいろ試してみたのですが、試せば試すほど不可解なことが増えるばかりでさっぱり理解できません。
ウッキー!!(サル化)



◎冷静に考えよう

不可解な現象が多数発生する場合は、何かが引き金になっている可能性があります。まずは問題点を絞り込みたいので、試しにクロスメッシュを削除してみました。

旗手モデル05

旗メッシュは槍の動きに素直に連動しました。
(クロスを削除したので旗はパタパタしません)

旗メッシュの位置や、デフォーマであるnullの階層上の位置は正しいようです。やはり問題はクロスですね。nullの位置にクロスを合わせると、旗もクロスも位置が固定されちゃうんだよなぁ…。

…待てよ?クロスにエンベロープを設定して、クロスを槍と一緒に動かせば、旗メッシュも連動するのでは?

旗手モデル06

動きました!こんな単純なことだったのか~!

中途半端に動くものを先に見てしまい、一人で混乱してました。自分で自分にメダパニ状態(汗)



◎お次はXNA

ようやくSoftimageで動くようになりましたが、XNAで動かすと画面乱れまくりでした。キャラクターキーセットを再作成しても現象変わらず。う~ん…。

試しにクロスや旗メッシュを削除しても現象変わらず。さらにnullを削除すると、正常動作しました。ということは、nullの問題ってこと?

しかしnullは画面に描画しないのに、nullがあると画面が乱れるというのもヘンな話です。
ハッ!もしやボーン数オーバーでは?
(ボーン数オーバーはXNAでエラーにならなかったっけ?)

試しにnullを2つだけ残すと正常動作しました。
どうやらボーン数オーバーだったようですね(汗)



◎ボーン数の上限

元の槍兵モデルのボーン数をチェックすると、89でした。
…ゲッ!そんなに多かったっけ!?

クロスの動きを再現するには、少なくとも25ぐらいは欲しい所ですが、現在確実に使用できるボーン数上限は108です。ちょっと足りませんね。

108という数は、ひにけにXNAの記事の内容をそのまま差し引きして導き出した「確実に使用可能な数」です。Softimage付属シェーダで使用中のシェーダ定数から差し引きすると116まで使用できそうなんですが、いまいち自信が無いので保留にしてました。良い機会ですので確認しましょう。

クロスメッシュと旗メッシュを4×4マス(25頂点)で再作成し、シェーダ定数の上限を116に拡張してXNAで動かしました。

旗手モデル07

動きました!ボーン数114で正常動作したので、116までOKだと思います。



◎画像ファイルの自動集約機能

旗の裏側の文字が逆になってしまうのでテクスチャを追加しました。

Flag00A   Flag00B

旗メッシュのクラスタを2つに分割し、裏側のテクスチャを選択して貼り付けようとしたら、画像ファイル名の連番で自動的に集約されました。

2つの画像ファイルが集約された

そのまま裏表に貼ってくれたらありがたいのですが、やっぱり駄目でした。時間経過によるUV差し替えアニメを想定した機能らしいので仕方ないか。



◎実装

とりあえずファイル名を適当に付け変えて回避し、UV座標調整後、フリーズしてXNAに反映させました。



攻撃モーションはおまけです(ゲームでは使用しません)。

攻撃モーションを見るとすぐに気付くと思いますが、旗の向きが不自然です。これは、クロスメッシュのデフォーマに槍を設定した都合により、フォースの向きが槍を基準としているからです。(重力フォースを適用すると、槍の根元に向かって垂れ下がってしまう)

槍を回転させればある程度ごまかせますが、モデルやモーションが増えると深刻な問題になりそうです。何とかしないとまずいなぁ…。



◎次回予告

12月になったので、次回は「11月の総括と12月の目標」です。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。