FC2ブログ

プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


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 |
DATE: CATEGORY:三国志軍記開発
弓兵モデル作成23
開発中の弓兵モデル
矢が正式に追加された。弓や弦との連動を図るが…?



◎1年ぶりの更新

注意事項をHPにまとめました。

SoftimageスキンモデルをXNAで動かす際の注意事項

改めて整理すると、注意事項多いですね。マテリアルやシェーダ関連の注意事項加えたら、もっと凄いことに…(汗)

どれか1つでも満たさないとアニメが崩れます。「まともに動く方が奇跡!」ってのは言い過ぎですが(笑)、「たかが弓1つ加えるだけ」と侮ると、痛い目を見るということがよく分かりました(^^;



◎矢の連動を図る

ブログに書き忘れましたが、矢と矢筒は以前作成しました。今回は矢を弓の動きに連動させます。

まず矢のボーンですが、弓中央ボーンをデフォーマとした場合、以下のようになります。

   弓を引く →
 → 弓中央ボーンのスケールが変動する →
 → 矢の長さが変わる

これでは都合が悪いので、弓中央ボーンとは別に矢ボーンを新規作成します。

そうなると、弓中央ボーンと矢ボーンの動きを連動させる必要がありますが、位置コンストレイントで矢ボーンと弓中央ボーンの根元(ルート)の位置を合わせ、向きコンストレイントで矢ボーンと弓中央ボーンの向きを同一方向に連動させます。

弓兵モデル作成20

弓の向きと連動するようになりましたが、矢の向きが反対ですね。

こういう時はオフセットで調整できるかと思ったのですが、コンストレイントのオフセット値にZ軸:180度などと設定すると、弓が3次元回転しても無条件でZ軸に180度加算されるだけなので、上手くいきません。

そこで、Static_KineStateの回転Z:90を-90に変更すると、

弓兵モデル作成21

弓と矢のメッシュの動きはOKですが、弓ボーンは逆向きになってしまいました。ボーンは表示されないので最悪これでも使えることは使えますが、開発上好ましくないですね。



◎延々と試行錯誤の繰り返し(五七五)

矢の向きを逆にするのは簡単そうで意外と難しく、終いには弓中央ボーンを作り直して向きを反転する方法まで試したのですが、その方法だと弓中央ボーンのエフェクタと中間ボーンのエフェクタの位置を合わせる必要があり、位置コンストレイントを設定しても機能せず上手くいきませんでした。
まぁ仮に上手くいったとしても、ボーンやコンストレイントの構造がより不自然になる気がしますが…。

結局、前項の方式で妥協し、矢ボーンを短くすることで開発への悪影響を減らします。Softimageでは狙い通りに動くようになったので、XNAで試すと…?

弓兵モデル作成22

矢だけでなく弓まで変な位置に出現しました。いつの間にか以前の状態に戻ってしまったようですが、何が悪いのでしょうか?



◎3つ目の要因

冒頭のHP記事に沿って一通りチェックしましたが、問題は無さそうです。他に心当たりと言えば、デバッグ用のダミーメッシュを削除したことぐらいですが…えっ?ダミーメッシュを再作成してエンベロープを設定したら、直りましたよ?

そうか、そういうことだったのね…。

前々回のブログで、弓の追加に50時間もかかった原因を2つ挙げました。しかしさらにもう1つあったようです。それは弓中央ボーンにエンベロープが設定されてなかったこと。
どうやら、階層に非デフォーマボーン(エンベロープ未設定ボーン)が含まれると、SoftimageとXNAの両方で悪影響が出るようです。

 →非デフォーマボーンはリファレンスポーズ対象外であり、
  アクターのリセットを実行すると、向きが不定になる

 →非デフォーマボーンはPublisjhの対象外??(未確認)

途中からデバッグ用にダミーメッシュを追加しましたが、あれが回避策になってました。それを知らずに今回削除してしまったので、再び崩れたわけですね。
(冒頭HPと前々回ブログに本件を追記しました)

弓兵モデル作成23

とりあえずアニメが崩れない状態になりました。しかし、矢はXNAで動きません。XNAはチェインルート未サポートのため、チェインルートに位置コンストレイントを設定しても無視されるようです。



◎次回予告

やり方を変えないとダメっぽいですね。というわけで、次回も矢の連動を図ります。

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

| BLOG TOP |
DATE: CATEGORY:三国志軍記開発
三国志12
三国志12
三国志シリーズの最新作。今回は秘策と技法があり、秘策は1度発動すると消えてしまうが効果絶大。技法は秘策ほどの効果はないが一度獲得すれば永久に効果を得られる。オンライン対戦も可能。



◎3月の目標達成度

・活動時間月120時間以上

実績:52h(達成率:43%)


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

実績:34h(達成率:70%)


・中距離戦の実装(40h)
・攻撃任務改修(8h)

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


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

実績:18h(達成率:100%)


3月も悪いのですが、4月は月間目標を掲げることすらできませんでした>_<



◎作業時間分析

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

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

○良かった点
・XNA連携失敗の原因を究明し、問題を解消した

○悪かった点
・活動日より休みの方が多い
・4月中旬に2週間休止した
・XNA連携確立だけで50h以上かかった

改めて振り返ると…サボリ具合がハンパないですね(--;

そしてもう一つ驚くべきことは、弓を追加するだけで50h以上かかったという事実。常識では考えられません><



◎サボリまくった理由

以前槍兵を作りました。旗に持ち替えて旗手も作りました。ならば弓兵も簡単に作れるはずです。実際、モデリングだけなら5分とかかりませんでした。

ところが、アニメを付けてXNAで動かそうとすると、全然上手くいきません。

  原因調査 → 判明? → 修正 → XNAで崩れた →
→ 原因調査 → 判明? → 修正 → XNAで崩れた …

延々とこの繰り返しです。地獄で石を積み上げては崩される作業を延々と繰り返すような気分になり、やる気が失せてサボリまくり(ーー;



◎何が悪かったのか?

今回は、技術的に新しい要素は無く、既に会得したスキルだけで作れると思ってました。だから「出来て当たり前」と思っていたのですが、この認識が甘かったですね。

槍兵や旗手のXNA連携は達成したものの、試行錯誤で会得したスキルは‘あやふやな知識と経験’に過ぎず、上手くいかない時は、原因に心当たりが多すぎて絞り込めません。やむなく心当たりを全て試したものの、それでも原因が特定できず、悩みまくりました。

結局今回は問題点が複数存在し、全て修正しないと効果がありませんでしたが、そういう時に‘あやふやな知識と経験’では全く歯が立ちませんでした。

反省点は下記2点。

・己のスキルを過信しないこと
 →現状は初心者レベル(弓追加に50hかかるレベル)

・あやふやな部分を減らすこと
 →ノウハウをHPにまとめること



◎歯の治療中です

差し歯が取れて化膿し酷い状態になったので、4月中旬から歯医者に通い始めました。

治療中は麻酔が効いてて痛くないです。しかし治療後は違和感が酷く鈍痛も続き、日常生活に支障はないが考え事は難しい状態に陥りました。何日か経つと徐々に慣れますが、次の治療でまた違和感&鈍痛復活。そのパターンが2週間続きました。じっとしてると余計酷く感じるので、体を動かしたり車を運転したり(10年ぶり?)して気を紛らわせてました。

引っ越したので、以前と異なる歯医者に通ってますが、ハズレっぽいなぁ…(--;



◎サボリ対策

中途半端は効果が無いようなので、やはり週単位のペナルティルール(アニメ/ゲーム禁止)に戻します(反動は覚悟の上)。
これに先立ち、レコーダーのHDDを増設しましたw


それと、月間目標は一旦ハードルを下げます。しかしそれすらも達成出来ない時は、翌月から最終手段に踏み切ります。

「自分の金を親に預けて、目標達成した場合のみ返してもらう」

この手法は、開発を完全に仕事と見なし「お金を主目的にゲームを作る」ことを意味します。これでは既存のゲーム会社と何ら変わらないので、極力避けたかったのですが、サボリ癖が治らなければ仕方ありません。



◎社会問題の論文

原発について記述しました。あとがきも追加しましたので是非ご一読ください。
(本文2頁+あとがき1頁)

原発ありきの弊害について



◎進捗状況チェック

5月にサボリ癖が治ったか様子を見て、6月に年間スケジュールを作る予定です。



◎4月(27~30)の目標

・XNA連携のノウハウ整理(8h)

・弓兵モーション作成(8h)

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



◎5月の目標

・活動時間月100時間以上

・弓兵モーション作成(16h)

・弓兵画像抽出登録(8h)

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

・攻撃任務改修(8h)

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

最終手段を使わなくても済むよう頑張ります(^^;



◎次回予告

次回は、XNA連携のノウハウをまとめてHPにUPする予定です。

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

| BLOG TOP |

copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ