モーション付きのモデルのunityへの出力

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/1/22 13:14
tueda  新米   投稿数: 1
タイムリーな話題なので補足しておきます。

BlenderからUnityへ持って行くには、BlenderでFBX形式でエクスポートしてUnityで「Import New Asset」を行うのが基本です。
自分で試した限り現在の最新バージョンBlender 2.61、Unity 3.4で何の問題もありません。

実はUnityには上記の手順を自動でやってくれるスクリプト(Unity-BlenderToFBX.py)が付属していてBlenderがインストールされていれば.blendファイルを直接インポートすることができます(裏でUnityがBlender起動してます)。
Unityに含まれているUnity-BlenderToFBX.pyは少し古く2.61に対応していないのでこちらから最新版をダウンロードして取り替える必要があります。
私はさらにオプション指定の仕方をこんな感じに修正しています。
		io_scene_fbx.export_fbx.save(FakeOp(), bpy.context, filepath=outfile, 
			global_matrix=Matrix.Rotation(-math.pi / 2.0, 4, 'X'),
			use_selection=False,
			object_types={'ARMATURE', 'EMPTY', 'MESH'},
			use_mesh_modifiers=True,
			use_anim=True,
			use_anim_action_all=True,
			use_default_take=False,
			use_anim_optimize=True,
			anim_optimize_precision=6,
			batch_mode='OFF')
指定できるオプションはここにあります。

テクスチャーが行方不明になるのは仕様です。あとから手動でテクスチャーをインポートしマテリアルに設定します。
それはめんどうなので.blendをインポートする前にAssetフォルダー直下に使用するテクスチャーを全部インポートしておくと
.blendをインポートした時に自動でセットしてくれて楽です。

ゲームで使うためにArmatureに複数のアクションを指定している時は注意が必要です。
Blender上でアクションは全て「F」(Save this datablock even if it has nousers)を押して強制的に保存される状態にしておます(こうしないと自動インポートした時にカレント以外消えてなくなる)。
上記のスクリプトは、デフォルトテイクは要らないのでOFF(use_default_take=False)、全てのアクションを使用をON(use_anim_action_all=True)に設定します。
これで全てのアクションが取り込まれUnityのアニメーションクリップになります。

FAQ: Getting skinned animated models from Blender to Unity3Dあたりが参考になります。

まだそれほどヘビーには使っていないのですが、私は今のところこれで.blendファイルを自動で一発インポートできています。
WindowsXP 32bit, Blender 2.61, Unity 3.4です。



投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/1/21 0:36
jijibibi  半人前   投稿数: 26
返信有難うございます!
回答を参考に色々いじっているうちに、何とかなって来ました。

まず、blenderファイルは今までAsset以下の階層に保存しても読み込まなかったのですが、いろいろなバージョンを試しているうちに(おそらく)何かのスイッチが入り、読み込めるようになっていました。公式ページの方に載っていた2.56を一度使ったからかもしれません。以後は2.6でも読み込みます。そのお陰で、fbxでエクスポートする必要もなくなりました!

次に、読み込んだファイルですが、どうやらarmatureモディファイアを適用すると変になるようです。メッシュがarmatureの子オブジェクトという扱いになるせいか、やはりメッシュオブジェクトの名前のついたオブジェクトは空になっています。あと、skinned mesh renderはarmature直下のボーンに与えられているのを見つけました。すみません、確認のし忘れでした……
このあたりはblenderの仕様でしょうか。blenderファイルが読み込めるようになったので、あとは単に、チュートリアルと違うのが気になるだけといえばそうなのですが。

ひとまず、これでどうにかなりそうです!ありがとうございます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/1/20 17:47
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
Unityはちゃんと使ったことはないですが・・・
Blendファイルとエクスポートしたfbxファイルを使用しているプロジェクトの
Assetsフォルダに入れれば認識されると思います。
この際にBlenderがファイル拡張子と紐づいていないと、Blenderが見つからないと警告されます。
(これはwindowsの場合でMacの場合はわかりませんが・・・)

Blender2.49bでやってみましたが、正しくArmatureとMeshは認識されていました。
Exportする際のパラメータもデフォルト?でいいと思います。
選択されたオブジェクトを選択していれば、Exportする前に全て選択状態にしておく必要はあると思います。

Unity公式ページのここ辺りに出ていました。

How do I import objects from my 3D app?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012/1/20 13:46
jijibibi  半人前   投稿数: 26
……で詰まってしまいました。

1 blenderでボーンを仕込みアニメーションをつけたモデルを作成
2 fbxでunityプロジェクト内にエクスポート
3 ……するとモデルデータがarmatureというオグジェクトでプレビューされ、もうひとつのオブジェクト(名前はblender上でボーンを仕込んだオブジェクトと同じ)は空っぽ。そしてどこを開いてもskinned mesh render コンポーネントが見当たらない、という状態になってしまいます……

ひとまず2.49aと2.6と最新リビジョンで試して見ましたが、skinned mesh renderは出て来ませんでした。
うまくエクスポートする方法はありませんか?

使用環境はMac OS 10.6.8 iMacです。
何卒よろしくお願いいたします。
投票数:0 平均点:0.00

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki