プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵攻撃モーション02
開発中の弓兵モデル
弓兵の走行モーションと攻撃モーションが完成した。それぞれ開始モーションとループモーションがあるようだ。



◎動作環境の問題

前回コメントに記述しましたが、Maya体験版はPCが動作環境を満たさないので諦めました。

今後はモーションを簡略化し、RockDeBone2をメインツールに戻す予定ですが、弓兵はXNA連携まで作ってしまったので、Softimageによるモーション作成を続行します。



◎走行モーション作成

下半身は槍兵のモーションを流用するので、上半身のみ作成します。

作業中、任意フレームのSRT値を他フレームに手軽にコピーしたくなり、しばらく試したのですが、出来そうでなかなか出来ません。ヘルプを読んでも具体的に書かれておらず、可能か不可能かはっきりしません。

結局、x/y/z値と3回コピペする(数が多いと面倒)か、DopeSheetでまとめてコピペして対応しました。

DopeSheet

また、流用元モーションの都合で、中間のフレームを削除する必要が生じました。Animation Editor等で再生対象外領域を指定できそうですが、それだとXNAで無視されそうなので、FCurve Editorで後半フレームのキーをコピペして対応しました。

FCurveEditor   弓兵走行モーション01

走行モーション完成!^^
XNAでも無事再生されましたw



◎攻撃モーション作成

モーションを作成する際、モデルの初期ポーズを決め、初期ポーズから始まり初期ポーズで終わるように統一すると、ゲーム内で他のモーションへスムーズに移すことができます。

そんなわけで、攻撃モーションも初期ポーズから射るよう作り始めたのですが、途中でちょっと不安になりました。

これだと一射目はループモーションとして使えないので、二射目を作成する必要があります。一射目を「攻撃開始モーション」として活用できれば良いのですが、メインプログラム側にパフォーマンス的な余力があるでしょうか?

…途中まで作っちゃったので、とりあえず最後まで作りましょう。ビジュアルシーンとかで使えるかもしれないし^^;



◎弦の影?

モーションの作成が完了し、XNAで動作テストすると、アニメは正常に再生されますが、後方で弦らしきもの(?)が動きます。

弦のようなもの

弦自体は正常に動いているので、これは弦の影かもしれません。影はXNAのプログラムで描画していますが、XNAはスケールをサポートしないので、弦の影の位置の計算がおかしくなったのでしょう。

影ならあまり気にしなくてもいいかな?
とりあえず無視しましょう(^^;



◎複数モーションに影響するキー操作

後で気付きましたが、いつの間にか走行モーションで弦が動きます。走行モーションで弦を動かした覚えはありませんが、操作ミスか何かでしょうか?
…あれ?攻撃モーションと同じ位置にアニメキーが打たれていますね?何か嫌な予感…(ー_ー;

走行モーションに弦のアニメキーは不要なので削除すると、攻撃モーションの弦のアニメキーも削除されました。
…やっぱり!!>_<

ある特定のボーンにアニメキーを追加/削除すると、複数のモーションに影響するようです。槍兵モデルでも「編集対象外のモーションがいつのまにか崩れる」現象に悩まされましたが、あれはやはり気のせいじゃなかったのね(ーー;

この問題を放置した場合、1つのモデルに複数モーションを持たせられなくなるので、通常は致命的と言えるでしょう。
しかし三国志軍記では連画を準備するだけでOKなので、とりあえずモーション毎に個別保存して回避します。

ちなみに、この問題はSoftimagで発生します(XNAは無関係)。



◎動画

弓兵の走行モーションと攻撃モーションです。



一般兵にしては意外とカッコいいのが出来た!
…と思っていますが、いかがでしょうか?



◎次回予告

次回は、三国志軍記と三国志12を比較して、ゲーム仕様を整理する予定です。

スポンサーサイト

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成31
開発中の弓兵モデル
弓矢のモデリングは5分で出来たが、XNAでのアニメ正常再生実現に50時間を要した。



◎弓兵モデル修正

腕と弓の間の中間ボーンは1本でしたが、このままだといろいろ問題があるので、ボーンを2本にしました。XNAでスケールが反映されない都合上、中間ボーンは原則2本とすべきですね。

で、いよいよ本格的にモーションを作ろうとして気付いたのですが、右利きの場合、弓は左手で持って右手で矢を継ぎますよね?

…というわけで、弓を左手に持ち替えました(^^;

弓兵モデル作成31

矢の中間ボーンを、左手/右手/背中の矢筒(2射目を矢筒から取り出す場合)どこから延ばすべきかでちょっと悩みましたが、矢はアニメキーによる力技で動かすのでどれも大差無いという結論に達しました。



◎アドバイス頂きました

こんな感じで、弓兵モデル開発と企画見直し(三国志12との比較)を並行的に進めていたら、vDogさんからアドバイス(前回コメント)を頂きましたので、それを踏まえて3Dモデルの開発方針を見直します。



◎従来の方針

従来は、

・一騎討ち
・メイン画面のズームアップ
・ビジュアルシーン

等で繊細なCGを演出するために、3Dモデルの正式版を外部発注し、最終的に入れ替える予定でした。
(そのための予算は生活費と別枠で確保済です)

そんなわけでRockDeBone2からSoftimageに乗り換え、何百時間もかけてXNA連携に取り組んできましたが、未だにSoftimageモデルをXNAで正常に再生させる自信が持てません。
ノウハウをHPにまとめたりして少しずつマシになってるとは思いますが、自信を持って外部発注できるようになるには、これまでの倍の時間を要するかもしれません。

この調子では完成まで何年かかるかわからないので、これを機に開発方針を見直します。



◎今後の方針

3Dモデル作成ツールは沢山ありますが、私が知る限りでは、高機能かつ繊細なスキンモデルをXNA向けに出力できるのはMayaとSoftimageぐらいです。このうちXNA公式認定かつ無料なSoftimage Mod Toolを採用したわけですが、実際にXNAで再生させるには、細かい注意事項が無数にあって非常に難易度高いです。

そこでまずMayaの体験版を試して、感触が良ければバカ高い値段に見合うか検討します。

Mayaがダメなら繊細モデルによる演出は当面諦め、3Dモデルは外部発注せずに簡易的なものを自作し、演出はエフェクトや2DCG等でカバーする方針とします。ツールはメタセコイア&RockDeBone2に戻しますが、Softimageを完全にやめるわけではありません。
(Softimageでしか作れないものもあるので、適宜選択する)



◎次回予告

というわけで、次回はMaya体験版でXNA連携できるか試します。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成30
開発中の弓兵モデル
背中の矢筒にも矢が追加された。ようやくモデリングが完了したらしい。



◎原因調査

前回矢が動かなかった原因を探るため、試しに矢のチェインルートをアニメキーで動かすと、(Softimageでは動きますが)XNAでは無視されました。

やはり、(コンストレイント以前の問題として)XNAにおいてチェインルートは無効であり、親ボーンと子ボーンの相対位置は固定(モーション中に移動不可)ということでしょう。



◎対処策検討

XNAで矢ボーンを動かす方法を検討します。

A案:矢を別モデルとして管理する
 →管理が煩雑になる
 →XNAViewerで2モデル同時再生テストは不可
 →改修してテスト可能とした場合、
  (テスト失敗の度に)改修ミス疑惑が付き纏う

B案:中間ボーンを作成する
 →スケールアニメ不可のため、中間ボーンは2本必要

B案は矢1本に計3本のボーンを必要としますが、A案はいろいろ面倒なので、やはりB案とします。



◎第四の原因

矢ボーン再作成に伴い、キャラクターキーセットを再作成しようとしたら、ボタン名称が「Create Key Set From Deformers」であることに改めて気付きました。

 中間ボーン=エンベロープ未設定ボーン=非デフォーマ

よって、中間ボーンはキャラクターキーセットに含まれず、XNAでアニメが崩れます。

…ボタンに書いてあるのに全然気付かんかった!!(爆)

弓や弦の作成に苦戦した第四の原因と言えるかも(^^;

(HPの注意事項に追記しました)



◎実装

矢ボーンが確定し、XNAで自在に動かせるようになりました。

弓兵モデル作成24   弓兵モデル作成25

スケール無しで矢の動きを実現するため、弓と矢の間に中間ボーンを2つ入れました。

弓と弦はコンストレイントで連動します。しかし矢は発射後の軌跡を考慮するとコンストレイントに不向きなので、手動で調整することにします。



◎矢の追加

矢を2本複製して背中の矢筒に入れたら、XNAで矢の位置がおかしくなりました。あれ?メッシュのセンター位置は調整したけど、まだ何か足りないのかな?

…これは結局、「すべての変換をフリーズ」してエンベロープ再設定すると直りました。複製による影響か、或いは従来の手順が間違ってるのかも(^^;

とりあえず動きはOKになりましたが、XNAでは矢羽が片面しか描画されないようです。

弓兵モデル作成26   弓兵モデル作成27

Softimageでは両面描画されるのに(ーー;



◎両面描画の回避

面を複製して反転すれば両面になりますが、その手法は頂点の無駄遣いという気がします。

他に描画効率を上げる手法が存在するとは思います(シェーダ改修等)が、今回は僅か6面分なので、シンプルに面の複製反転で対応しましょう。

メッシュのセンター位置が原点に移動済のため、オブジェクトの中心に戻してから反転します。

1 メッシュ(矢羽)を複製
2 エンベロープ>エンベロープの削除
3 Transform>センターをバウンティングボックスに移動
4 フリーズ前の回転量の逆算値を加算
5 Transform>回転のフリーズ
6 メッシュ回転(必要に応じて5~6を繰り返す)
7 センター位置を原点に戻す
8 Transform>すべての変換をフリーズ
9 エンベロープ>エンベロープの設定
10 エンベロープ>リファレンスポーズの設定

斜めに傾いた面が反転できず悩みまくりました。上位メッシュの回転量が影響して上手くいかないのかと思い、階層から切断したりChldCompボタンを試したりしましたが、結局メッシュのSRTがフリーズ済であることが原因と判明したので、4~5の手順を追加しました。



◎センターが中心にならない?

前項の手順で、矢2本分の矢羽の面を反転しました。しかし残り1本の矢羽が上手く反転できません。位置が微妙にズレてしまいます。

原因を調べると、(前項手順3で)中心からズレた場所にセンター位置が移動してました。

弓兵モデル作成28

‘センターをバウンティングボックスに移動’機能を利用したのに、何故ズレるかは不明。

3次元座標系で傾いた台形の中心座標を算出するのは面倒なので、既に完成した矢を複製して対処します。

弓兵モデル作成29   弓兵モデル作成30

両面対応完了しました。

それにしても、複製反転するだけでここまで難儀するとはねぇ…XNA連携ややこしすぎます(ーー;



◎次回予告

ようやく弓兵のモデリング&ボーン設定が完了しました。
いや~長かったですね~(^^;

次回は、ちょっと趣向を変えて、三国志軍記と三国志12(or三国志大戦)の共通点と違いについて記述します。

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

| BLOG TOP |

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