プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成09
開発中の弓兵モデル
弓本体に弦が追加され、弓と弦の4本のボーンが全て連動するようになった。Softimage内では問題無く動くようだが、XNAではどうか?



前回の続きです。


◎弦の追加

とりあえず弓本体は出来たっぽいので、今度は弦です。ポリゴンは円柱で作るとして、ボーン構造とコンストレイントが問題ですね。

弓兵モデル作成06

1~5番のボーンを一筆書きのように1本のチェインにまとめ、2番と3番や2番と5番で対称や向きのコンストレイントを設定しようとすると、循環の警告が出ました。ふむぅ…。


その後も試行を重ねて、最終的に全く異なるパターンに辿り着きました。

弓兵モデル作成07   弓兵モデル作成08

・チェインは3本
 →各ボーンの向きに注意
 →先端と終端の位置を揃える

・位置コンストレイントを利用する
 拘束対象:上チェイン終端/下チェイン終端
 コンストレイントオブジェクト:中央チェイン終端

中央ボーンのスケールを変更して長さを変えると、弓と弦が連動します。Softimage上では理想的な動きになりました。

ですが、スケールを利用したアニメがXNAで動くか不安です(ーー;



◎XNAで動くか?

XNAでモデルのボーン数を増やす改修を施した際に、スケールを犠牲にした記憶があります。メインプログラムでスケールアニメ不可なのは確実ですが、画像変換プログラムも同様だったかな??

まずはXNAViewerで試してみましょう。

弓兵モデル作成10

うわ~…位置も動きも滅茶苦茶ですよ。
センター位置の問題とかかな?

ともかく、XNAViewerは(改修してないので)スケールは有効でした。
さて、問題は画像取得ツールで動くか?という点ですが…。

…何も表示されませんでした。
いや、兵士本体も表示されないのはおかしいですね?
何かの設定やパラメータの問題でしょうか?

…どうやら、被写体のスケールとカメラ位置の問題だったようです。しかし、スケールやカメラ位置等のパラメータをいじると、32方向の連画取得がズレてしまいます。そもそも、流用モデルなのに流用元パラメータが通用しないのは何故?

…シーンファイル(Scene_Data.xsi)を置き換えたら上手くいきました。そういえば、シーンファイルも小細工した記憶が…。

苦労してんなぁ > 昔のオレ



◎確証

ツール上で動かすと…何となくアニメしてるっぽいのですが、(ツール上では解像度やフレーム数を制限するので)いまいちはっきりしません。

微調整を繰り返し、何百枚も取得して、ようやくアニメしてる確証を得ることができました。

BowMan01_Attack01_02_025   BowMan01_Attack01_02_034

左図の弦は直線ですが、右図の弦は曲がってます。
(途中の連画もちゃんとアニメしています)



◎次回予告

ひとことで言うと「開発サボって遅れてます」で済む話ですが、それだけだと「たかが弓程度で何故遅れるのか?」と思われそうなので、舞台裏を詳しく記述しました。
(それがブログの主旨ですのでw)

ようやくXNAで動く確証を得たので、次回はXNA上でまともに再生するよう調整します。

スポンサーサイト

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成05
開発中の弓モデル
コンストレイントを設定すると、弓の下半分の向きが反転してしまった。コンストレイントは便利な機能だが、思い通りに動かすにはコツがいるようだ。



◎コンストレイントの疑問

弓の上ボーンを曲げたら下ボーンも同じ角度で曲がるように対称コンストレイントを設定したいのですが、なかなか思い通りにいきません。

ヘルプには

1. 拘束対象のオブジェクトを選択します。

2. [Constrain]>[対称]を選択し、コンストレイントオブジェクトを選択します。
 ・ 基準オブジェクトを使用する場合は、ここで選択します。

または

・ 右クリックして選択操作を終了し、以下のプロパティエディタでシンメトリの基準となるグローバル座標プレーンを選択します。


とありますが、

「1番と2番どちらが被コンストレイントオブジェクトなのか?」
「基準オブジェクトの選択は2番目か3番目か?」
「基準オブジェクトの指定とグローバル座標プレーンの指定は併用不可か?」

など曖昧な表記で疑問が多く、あれこれ試すとさらに思わぬ結果になって、混乱が深まる始末(^^;



◎その他の疑問

コンストレイントオブジェクトや被コンストレイントオブジェクトを確認するコマンドがありますが、

・ボーンを選択して「Constrain>コンストレイントオブジェクトの選択」とすると、反対側のボーンが選択される。その状態で再度実行すると、元のボーンが選択される。

・ボーンを選択して「Constrain>被コンストレイントオブジェクトの選択」とすると、とくに変化はない。反対側のボーンで試しても同じく変化なし。

これではどちらが被コンストレイントオブジェクトなのかわかりません。


また、「アクターのリセット」を実行すると、コンストレイントが機能しなくなります
(但しプロパティには設定情報が残ります)。


Softimageは曖昧で理解不能なことが多いです。「素人にもわかりやすく」という親切心は微塵も感じられません(笑)



◎コンストレイント復活

「アクターのリセット」は、今の私にとって初期ポーズに戻すための必須コマンドです。これが使えなくなると致命的なので、何とかならないかとあれこれ試したら、偶然動く方法を発見しました。

前述の「Constrain>コンストレイントオブジェクトの選択」を2回続けて実行すると、コンストレイントが復活して連動します。

最初は何故これで動くのか理解できませんでしたが、これにはちゃんと理由がありました。

基準オブジェクトを設定した場合、コンストレイントオブジェクトだけでなく、基準オブジェクトも選択してから動かさないとコンストレイントが機能しない

設定手順ではなく操作手順の問題だったんですね(^^;



◎迷走

ところが、これで全て解決とはなりませんでした。

基準オブジェクトとコンストレイントオブジェクトを選択して動かす(回転させる)と、(基準オブジェクトは動かしたくないのに)両方とも動いてしまいます。

…これはつまり、(基準オブジェクトではなくて)2つともコンストレイントオブジェクトになってる、ということですね(爆)


その後もいろいろ試したのですが、試す度に不可解な結果となり、どうしても法則性が把握できません。煮詰まって現実逃避モードに突入する有様(ーー;

コンストレイントは諦めて全て手作業で動かすことも考えましたが、今回の超シンプル動作で諦めるということは、今後全てのモデルでコンストレイント使用不可となることを意味します。さすがにそれはキビシイので、引き続きコンストレイントにチャレンジします。



◎再作成

どこかに変な設定が残ってるかもしれないので、また最初から再作成してやり直すことにしました。

以前は弓を手の位置に移動してからコンストレイント設定しましたが、今回は移動前の原点位置で設定します。

弓兵モデル作成05

拘束対象:弓下ボーン
コンストレイントオブジェクト:弓上ボーン
基準オブジェクト:弓中央ボーン
対称平面:XZ平面

コンストレイント設定しただけで(ボーン動かしてないのに)弓の下半分が反転してしまいました。

何故こうなるのか?原因と対処法を探ります。

仮説A:「チェインルートの傾きが無視されたから」
対処法:弓下チェイン全体を拘束対称とする
 結果:失敗

仮説B:「コンストレイントオブジェクトの傾きが拘束対称に追加される仕様だから」
対処法:コンストレイント設定後にエンベロープ設定する
 結果:成功

仮説C:「拘束対象ボーンが最初から傾いてるから」
対処法:ボーン(チェイン)にリファレンスポーズを設定する
 結果:成功

仮説B仮説Cの対処法が成功しましたが、仮説Bはモデリング作業手順の順番を考えると不自然で使い勝手が悪いので、仮説Cの対処法を採用します。



◎次回予告

長文になってしまったので、続きは次回とします。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
100万人の三国志
100万人の三国志
GREEの携帯電話無料ゲーム。プレイヤーは君主となり、クエストやエピソードをすすめ、配下武将を増やし、合戦で領土を取り合い天下統一を目指す。他プレイヤーと協力して自軍を強化することも可能。



◎2月の目標達成度

・活動時間月120時間以上

実績:46h(達成率:38%)


・小隊毎の被害判定実装(24h)

実績:23H(達成率:100%)


・戦闘モーションの作成(32h)

実績:7h(達成率:10%)


・中距離戦の実装(24h)

実績:未着手(達成率:0%)


・ブログ更新/HP更新(40h)

実績:16h(達成率:)


1月に続き2月もサボリまくり。
活動時間は50h未満><



◎作業時間分析

作業時間集計2012年2月(PDF形式)

○良かった点
・近接戦が完了した
・弓兵モデル作成に着手した

○悪かった点
・月間活動時間が50h未満
・ブログ更新数が少ない

一時は起動すら出来ない状態でしたが、ようやく「小隊毎の被害判定実装」が終わりました。



◎進捗があがらない原因

進捗があがらない原因を追求します。

・進捗があがらない原因は、サボりまくるから。

・サボりまくる原因は、やる気が出ないから。

・やる気が出ない原因は、作業にやり甲斐を感じないから。
 「小隊毎の被害判定実装」は、
 →簡単そうで難しく、既存プログラムの大幅改修を伴う
 →手間暇かかる割に、見た目や機能は殆ど変わらない

やる気が低いと集中力や粘りが低下し、カンも鈍くなるのでデバッグが全然進まず、やる気がさらに低下するという悪循環に陥りました。

この状態でアニメやゲームを禁止しても、他の事(論文、ナンプレ等)に現実逃避してしまい、効果上がらず。
(ペナルティルールは2月中旬に廃止)

大幅改修はいずれ必要になると頭で理解しても、心がついてこなかったことが敗因と思います。



◎進捗状況チェック

現在、三カ月以上遅延してます。

今月中に中距離攻撃を完了させて、4月にスケジュールを見直す予定です。



◎3月の目標

・活動時間月120時間以上

・弓兵モデル作成(32h)

・中距離戦の実装(40h)

・攻撃任務改修(8h)

・ブログ更新/HP更新(40h)

弓兵モデリングが予想以上に難航してますが、今月はとにかく中距離攻撃を完了させることだけ考えましょう。



◎次回予告

次回は弓兵モデルのコンストレイントやモーションを作成します。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成04
開発中の弓兵モデル
他モデルの流用に成功した。走行モーションは左手を修正するだけで大丈夫かもしれない。


前回の続きです。


◎強制終了

よくわからないのは、XNAのビルドに失敗してVisualStudioが強制終了するケースがある、ということ。

VisualStudio強制終了

cnv_scene.cppは、XNA連携用ライブラリと思われます。ライブラリがモデルを読み込む途中でモデルデータ異常→強制終了というのは理解できますが、わからないのは‘槍兵モデルをPublishすると直る’ということ。
異常なのは弓兵モデルじゃないの??


…この現象は悩みまくったのですが、結局マテリアルではなくボーンの問題だったようです。メッシュ確認テスト時はボーン削除前のモデルだったらしく、ボーン削除するとオブジェクト非追加時でも強制終了します。

槍兵モデルで直る理由はよくわかりませんが、操作ミスで槍兵モデルを弓兵モデルとして上書きした可能性が考えられます。…ファイルの更新日を確認した時は、この仮説と違ったはずですが(謎)



◎キーの削除

それにしても、ボーン(チェイン)を削除するとXNA側で失敗するのは何故でしょうか?マテリアルやエンベロープ関連のデータは綺麗に削除されたようですが…そうか!アニメのキーセットを更新する必要があるのかも?
(注:走行アニメの下半身は残したい)


まずキーの削除ですが、

Animation>キーの削除(shift+K)

はエラーで失敗するのでしばらく悩んだのですが、

Animation>キャラクタキーセット>キーの削除

としたら成功しました。違いがわからないというか不親切というか…さすがSoftimage(ーー;



◎キーセットの更新

キャラクタキーセットは、(ボーン削除後に)アニメーションマネージャの「Create Key Set From Deformers」でキーセットを作成し、エクスプローラから古いキーセットを削除しました。

キャラクタキーセット01

その後、アニメーションマネージャで「Update Action Clip」とすると、XNAで無事動きました。…って、あれ?モデルが前後左右上下に揺れて怪しいダンスを踊ってますよ(汗)

どうやら、「キャラクタキーセット>キーの削除」は、キーセット内の同一フレームのキーを全て削除する機能だったらしく、全ボーンの先頭固定キーが削除されて起点が不定となってしまったようです。

…ひょっとして、キーは削除しなくてもキーセットを更新するだけでOKでは?



◎結論

もう一度最初からやり直して確認したのですが、

1 アニメーションマネージャで不要なアクションを削除し、
  更新したいアクションを選択する

2 マウス中ボタンを利用してチェインごと削除する
  →チェインを削除すると(ポリゴン/エンベロープ/
   アニメキーなど)関連オブジェクトは全て消える

3 アニメーションマネージャでアクションを更新する

4 PublishしてXNAで表示する

これだけでXNAで正常に動きました。
これまでの苦労は一体何だったのか…(--;



◎モデリング

ようやく流用元モデルのセットアップが完了したので、改めて弓兵モデルを作成します。

・弓の両端を細くする
・マテリアル設定
・2Dチェイン(ボーン)作成
・階層設定&名称変更
・エンベロープ設定
・リファレンスポーズ設定
・コンストレイント設定

弓兵モデル作成02   弓兵モデル作成03

コンストレイント設定以外は完了しました。

XZ平面に対称のコンストレイントを設定し、上半分を動かすと、下半分も連動します。しかしアニメキーを付加すると、思い通りに動かないし、アクターのリセットを実行すると、コンストレイント設定も消えてしまうようです。

…コンストレイントやモーションの作成は次回以降とします。



◎次回予告

トラブル続出で悩みまくりでしたが、結論がわかると「その程度のこと」だったりします。何ともマヌケな話ですが、世の中そんなものかもしれません。

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

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成01
開発中の弓兵モデル
馬鹿には見えない弓…じゃなくて、
XNAでは見えない弓を持ってるらしい。



◎リハビリ

今回は弓兵モデルを作成します。と言っても、兵士は使いまわすので、モデリングは弓を作るだけです。

慣れた人なら5分とかからず作れそうですが、Softimageは久々なので、使い方を思い出すところから…あれ?モデリング用のプロジェクトってどれだっけ?(爆)

プロジェクト名やフォルダ名を迂闊に変更するとXNA連携が崩れて動かなくなるので、試作名称のプロジェクトが沢山あります(^^;

ようやく目的のプロジェクトを探し出したものの、使い方や手順などろくに覚えておらず、エクスプローラすら開けません。

こんなんで大丈夫でしょうか?(汗)



◎ボーン削除

今回は槍兵モデルを流用するので、不要となるデータを削除します。

・モーションデータ
・槍オブジェクト

モーションデータは、アニメーションマネージャに登録されているアクションを削除するだけで大丈夫そうです。しかし槍オブジェクトは、ボーンがなかなか削除できません。

そういえば、Softimageは機能的にボーン削除不可だったような…旗手モデルの時はどうしたんだっけ?…ああ、槍を旗に持ち替えたので、ボーン削除不要だったのかw

ちょっと待てよ?
ボーンは削除不可でもチェインは削除可じゃなかったか?

…うーん、ボーンもチェインもエフェクタも削除できない。

…いや待て、確かエクスプローラのツリー上でマウス中ボタン選択すれば削除できた記憶が…おお消えた!w

昔の記憶をたぐり寄せて、ようやくオブジェクトを1つ削除しました(笑)



◎モデリング

弓を作ります。

取得>プリミティブ>カーブ>弧で2本の弧を取得し、コンポーネント調整ツールで半月状に閉じます。これの両側に面を作れば弓の完成…ってあれ?2本のカーブから面を作る方法が見当たらないですね?

…しまった!これはメタセコイア方式で、Softimageは違うのでした!(爆)


カーブを4本に分割すれば面を作れそうですが、Softimageで平面オブジェクトを作るのは不自然な気がします。頂点数は増えてしまいますが、やはり立体にしましょう。

パスカーブに沿ったカーブの押し出し01   パスカーブに沿ったカーブの押し出し02

というわけで、「カーブに沿って押し出し」という機能で立体にしました。その後、

・メッシュをフリーズ
・不要となったカーブを削除
・メッシュを階層下に移動
・リファレンスポーズの設定

などの作業を行って、モデリングは完了です。



◎故障?

プリセットからドラッグ&ドロップで茶色に設定。
問題は、XNAで描画するためにマテリアルマネージャでレンダーツリーを細かく設定する必要があるということ。

…いや、プリセットの場合は不要だったかな?とりあえずXNA Viewerで正常に表示されるか確認しましょう。

…おや?動きませんよ?どうなってんの??

パッドのランプは点滅しますが、デバイスとして認識されません。他のUSB機器は一応使えるので、パッドの故障かもしれません。

仕方がないので、昔改造したキーボード操作可能版を使って動作テストを試みたのですが、プログラムが悪いのかモデルが悪いのか、まともに動きません。まいった!><


その後あれこれ試したところ、パッドが動かない原因が判明しました。xbox360用パッドをPCに繋げるためUSB変換ケーブルを経由してますが、ケーブル間の接続が緩んでたらしく、繋げ直したら正常に動作しました。

…なんか無駄に苦労した気がしますが、とりあえず動いて良かった(^_^;



◎メッシュの問題

ところが、XNAViewerで弓が表示されませんでした><

弓兵モデル作成01

XNAで描画されない原因は、サーフェイスかマテリアル設定と思います。しかしサーフェイスメッシュはXNAではポリゴンとして描画された気がしますが…試してみましょう。

・シーンマテリアルでポリゴンメッシュ作成
 →XNAで描画される

・シーンマテリアルでサーフェイスメッシュを作成
 →XNAで描画されない

XNAはサーフェイスメッシュ不可ですね。
私の記憶違いでした(^^;

ところが、弓をポリゴンメッシュで作り直しても、XNAで描画されません。…何故じゃ~~!!



◎次回予告

話が長くなったので、今回はここまで。

というわけで、次回は今回の続きです。

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

| BLOG TOP |

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