プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:Softimage Mod Tool
徐盛
徐盛
呉の武将。呉軍における主要な戦いのほとんどに参加して武功を挙げた。敵中孤立の状況下で自ら突撃を敢行するほど勇猛果敢な一方、魏の曹丕が大軍を率いてきた際は偽の城壁を建造して退却させるなど、奇計も用いた。



◎リセットがきかない?

槍ボーンを追加するため、まずニュートラルポーズに戻して…ってあれ?リセットがきかない?前回試した時はちゃんとニュートラルポーズに戻ったはず…??

しばらく試すと、コントロールを1つだけ選択した時は、ニュートラルポーズの設定やリセットが問題なく機能するが、Bipedをマウス左ボタンや中ボタンで選択した時は無視されることが判明。

しかしリセット一発で体全体のポーズを初期化できないと不便極まりないし、ヘルプにも複数選択可と書かれています。何でヘルプに書かれてることができないのかねぇ?

…しばらく悩んでいたら、複数選択の方法は他にもあることに気付きました。エクスプローラでBiped配下のcontrols_group配下をごっそり選択する、という方法です。

コントローラを複数選択

この状態でニュートラルポーズを設定したりリセットすると、ちゃんと機能しました。Bipedをマウス中ボタンで選択する方法だと、ルートのBiped階層が優先されて失敗したのかもしれません。というわけで、ヘルプの記述は本当でしたw

しかしいちいち複数選択させるなんて不親切ですね。
あ、普通はDefaultPoseで一発だからいいのか(^_^;



◎あっさり?

今度こそ(アクションを保持したまま)ニュートラルポーズにリセットできるようになったので、改めて槍ボーンの追加を試みます。…ってあれ?なんかあっさりできちゃいました(汗)

槍ボーンあっさり追加?

手順は前回と一緒ですが、今回はWeightEditorに槍ボーンがあっさり追加されました。

前回との違いは何でしょうか?
わざわざ古い状態に戻して確認すると、WeightEditorに槍ボーンが追加されるのは、エンベロープ設定時です(チェインにボーンを追加した直後まで不在)。
ではエンベロープの自動設定か手動設定かで変わるのかと試したら、どちらも同じ結果でした(WeightEditorに槍ボーンが追加された)。

う~ん…あと考えられそうなのは、前回はニュートラルポーズが不正でボーンとメッシュの距離が(見た目は合わさっていても、座標上は)離れていたから?

…どうも違う気がしますが、他に思い付きませんし、結果的に上手くいってるようなので、とりあえず先に進みましょう(汗)



◎ビルドエラー

ところが、XNAで動かすと、ビルドエラーになりました。

Error normalizing vertex bone weights. BoneWeightCollection does not contain any weighting values.

このエラーは、ウエイト未設定の頂点が含まれていたり、ウエイト指定先ボーンが不在の場合に発生するようです。以前発生した時はWeightEditorでウエイト調整したら直りましたが、今回は手強い感じです。

試しに槍メッシュを削除するとエラーが発生しなくなるので、槍メッシュのウエイト設定絡みであることは間違いありません。しかし槍メッシュのウエイトを全てNeckとすると、エラーが発生します。新規ボーンをデフォーマとして認識させるには、何か手順が足りないのでしょうか?


…あれ?よく見ると新規ボーンはカラフルです。それに槍以外のメッシュを選択しても、新規ボーンはWeightEditorの列に存在しません。

これはつまり、槍ボーンをデフォーマとして認識してるのは槍メッシュだけという状態ですが、この状態はSoftimage的にはOKでもXNA的にはアウトとか??

試しに槍以外のメッシュを全て選択し、エンベロープ設定コマンドを実行して、槍ボーンを指定しました。すると、全てのメッシュのデフォーマに槍ボーンが追加され、WeightEditorの列項目に存在するようになりました。これで、今までやりたかったことが1つできましたw

しかし、この状態としてもXNAでは相変わらずビルドエラーになりました。残念ながら、先の推測はハズレですね。



◎Shadow_envelope_groupについて

次に怪しいのは、Biped_Shadow配下のShadow_envelope_groupです。この配下に新規ボーン不在なのが良くない気がするのですが、自力で追加するのは難しそうです。

シャドウリグ作成時のオプションでヌル階層を指定してるので、配置すべきノードは多分ヌルだと思いますが、既存ノードをチェックすると、GlobalSRTとリンクしてるようです。

ということは、予めGlobalSRTにノードを追加しておく必要がある??



◎GlobalSRTについて

GlobalSRTは以前から気になっていましたが、未だに謎の階層です。

ヘルプでキーワード検索すると、Behavior関連の説明ばかりです。Behaviorをネットで検索すると、「HTML等で構成されるHTC(HTML Component)ファイルをHTML上で使用する機能」とありました。要するに、IE等のブラウザ向けキャラクタモデル形式(フォーマット)ということでしょう。

Behavior関連の説明がXNA連携に当てはまるか確認すると、一部当てはまる記述もありますが、当てはまらない記述もありました。この様子だと、ヘルプは参考になりません。


ネット上でGlobalSRTを検索すると、何やら難しそうな話ばかり。もうちょっと手軽にできないものかと探っていたら、リグ作成用スクリプトを発見しました。

こちらの記事の2番目「CreateShadowParts」が、今回私が望んでいた機能です。



◎Rig作成用スクリプトの組み込み

今回のスクリプトはアドオン形式なので、組み込みは以前のスクリプトよりも簡単です。

1.スクリプトをダウンロードする
 (デフォルトファイル名はRigTool.xml)

2.ファイルの拡張子を変更する
 (RigTool.xml→RigTool.xsiaddon)

3.ファイル>アドオン>インストールで
 上記ファイルを指定してインストール

4.Softimageを再起動

上記手順を完了すると、Animate>作成>キャラクタに3つのコマンドが追加されます。



◎シャドウリグへのボーン追加

スクリプトの準備が完了したので、いよいよ槍ボーンをシャドウリグに追加します。

1.槍ボーン(2個)を選択

2.作成>キャラクタ>CreateShadowParts

3.Biped_Shadow配下のShadow_envelope_groupを選択

4.右クリックで選択終了(コマンド実行)

しかし実際にやってみると、3.でエラーになります。Shadow_envelope_groupは指定できないようですね。指定先をBiped_Shadow(シャドウリグのルート)とすると、boneとbone1が作成されました。

シャドウリグにボーン追加

これは…ひょっとして、GlobalSRTに格納すべきものでは?(何となくGlobalSRTの中のノードに似てるので(^^;)
というわけで、boneとbone1を以下の深~い所にドラッグ&ドロップで移動しました。

Biped_Shadow→GlobalSRT→UpperBody→SpineStart1→SpineVertebra3→SpineVertebra4→SpineVertebra5→ChestBone1→RShoulder→RBicep→RForearm→RHand

移動後、さらにboneとbone1を個別にShadow_envelope_groupにドラッグ&ドロップしました。

槍ボーンをShadow_envelope_groupにドラッグ&ドロップした

この状態で、槍メッシュを選択してエンベロープ設定を行い、デフォーマにShadow_envelope_groupを指定しました。仕上げにWeightEditorでウエイト設定すると…

シャドウリグへのボーン追加(XNA)

やりました!リグだけでなくシャドウリグにもボーンを追加して、XNAで動かすことができました!ちょっとハードル高そうでしたが、これが出来たのもスクリプトのおかげですね!



◎ニュートラルポーズ禁止!

こちらの記事の後半に「ShadowRigにニュートラルポーズを利用してはいけない」という記述があります。

こちらの記事はFBX出力方式ですが、記事の内容を読むと、dotXSI出力方式にも該当しそうな気がします。前回ニュートラルポーズが失敗したのはこのため??

改めてSoftimageとXNAの掌の向きをチェックすると…
うわっ、90度ずれてる!(前項画像参照)

…dotXSI方式でも、ニュートラルポーズは禁止すべきもののようです(汗)



◎次回予告

Softimageでは私のカンはハズレまくりでしたが、ようやく当たったので嬉しいです!(^^)

階層構造の理解が一気に深まった気がするので、今後カンの的中率が上がっていくことを期待しています!
…ってカン頼みかよ!(笑)


次回は
・ニュートラルポーズ解除調整
・着物の裾ボーン追加
・下半身のウエイト設定
などを予定しています。これでようやくモデル完成かな?

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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