2017-06-28 5 views
2

私の無知を許してください。だれでもmaya fluidをexportする方法を知っていますので、three.jsにインポートできますか?Mayaの液体をエクスポートして、three.jsのゲームにインポートできるようにします

私はマヤに新たなんだと私はちょうど私が作っているゲームに私の最初のモデルを作った、以下を参照:

enter image description here

endgineからアフターバーナー効果はMayaの流体を使用して作成されます。私は航空機や武器を輸出するのに問題はありませんが、私はthree.jsゲームでどのように流体を使用するか分かりません。私は無益なことなしにこのトピックに関する情報を見つけるために何時間もの研究をしました。参考文献や援助があれば幸いです。

EDIT:私が受けている手順と受け取ったエラーのアップデートです。本当にこれが有意義で解決可能であることを願っています。私はこれらのエラーに関連してオンラインで良い情報を見つけることができません。

ステップ1:流体をポリゴンに変更する(すべて正常に動作します) ステップ2:作成されたジオメトリ>編集>キー>ベイクシミュレーション、以下のオプションのスクリーンショットを選択します。 (すべての作品は、予想通り)

enter image description here

ステップ3:(ない、テクスチャ(Mayaのソフトウェアを)ファイルに変換> hypershaderで私fluidShape2を選択して、ハイパーシェードの編集を行うポリゴンのステップへの流体から生成されたジオメトリを選択します

ここenter image description here

はMayaが吐き出すエラーです:期待どおりに動作しない、ここで

はhypershaderとポリゴンのスクリーンショットです)エラーが出ますアウト:それはhypershaderで fluidShape2ノードのように思える私に

// Error: file: /Applications/Autodesk/maya2017/Maya.app/Contents/scripts/others/copyConvertSolidTx.mel line 93: Cannot convert a texture connected to initialShadingGroup

は実際にはシェーダではなく、作成したポリゴンは本当にlambert1が割り当てられます。私は先週、Mayaを使い始めたと考えても、本当にわかりません。

EDIT#2:

[OK]をので、ここでは、fluidShapeは、表面材料として設定示すスクリーンショットです。ここで

enter image description here

流体のシェーディング属性のスクリーンショットです。あなたは色を見ることができるように

enter image description here

は黒であり、このオブジェクトのための唯一の照明は、それが生成するものです。外部からは全く光が当たっていません。

Render Statsでもキャスト/レシーブシャドウはチェックされていません。

質問:ファンデーションを焼く方法はありますか?

EDIT#3:

あなたの10ステップのプログラムに従った後、私は私が以前と同じ結果を持っています。前後のスクリーンショットです。緑色の飛行機が火の後ろに追加されて、それが第2の状態にあることをより容易に示す。適用される10個のステップとポリゴンとして

enter image description here

:流体として

ここ

enter image description here

は、属性エディタです:

enter image description here

enter image description here

私はあなたが同じ結果と私のたびに数回与えた10の手順を繰り返した:そして、ここではhypershaderを通じて適用された材料です。

+0

私は答えにステップバイステップの説明を追加しました。 – andy

+0

これはMaya 2017固有のものかどうかわかりませんが、fluidShapeをinitialShadingGroupのサーフェスシェーダにドラッグしていたMMBは機能しませんでした。生成されたポリゴンに新しいBlinnマテリアルを割り当て、fluidShapeを影響を与えるBlinnマテリアルのアトリビュートにリンクすると機能します。 –

+0

現在のものが動作しない場合は、他の方法を試してください。おそらく、新しいシェーダをメッシュ(Lambert2)に割り当てるか、Arnold Rendererモジュールを無効にする必要があります。 – andy

答えて

1

エクスポートする前に、流体をポリゴンに変換する必要があります。

ここにテスト用のMELスクリプトがあります。スクリプトエディタで実行します。アトリビュートエディタにシェイプノードのタブを選択し、出力メッシュエリアのメッシュの解像度を変更後、

Fluid to Polygons - Convert -

Modify:、メニューからポリゴンに流体を変換する流体コンテナを選択し、選択するに

// opening nuke explosion example 
file -import -type "mayaAscii" -ignoreVersion -ra true -mergeNamespacesOnClash false -namespace "Nuke" -options "v=0;" -pr "/Applications/Autodesk/maya2016.5/Maya.app/Contents/Examples/FX/Fluid_Examples/Explosions/Nuke.ma" ; 

// selecting fluid container 
select -r Nuke:fluid ; 

// converting fluid to polygons 
fluidToPoly ; 

// changing mesh resolution under shapeNode/outputMesh tab in Attribute Editor 
setAttr "Nuke:fluidShape.meshResolution" 3 ; 

。エクスポートに関する有用な情報で

ルック:変換が行われた場合Three.js Maya Export

、デフォルトのMayaシェーダ(Lambert1は)新しいポリメッシュに割り当てられています。流体テクスチャを新しいポリメッシュに再割り当てする必要があります。このためには、ハイパーシェードとMMBの流体テクスチャをポリメッシュのSurface Materialスロットにドラッグアンドドロップします。

enter image description here enter image description here enter image description here

を忘れないでください:

Edit - KeysからBake Simulation

bakeResults -simulation true -t "1:100" -sampleBy 1 -disableImplicitControl true -preserveOutsideKeys true -sparseAnimCurveBake false -removeBakedAttributeFromLayer false -removeBakedAnimFromLayer false -bakeOnOverrideLayer false -minimizeRotation true -controlPoints false -shape true {"nurbsSphere1"} ; 

あなたは:あなたが使用してエクスポートする前にそれを焼く必要があるシーン内のアニメーションを持っている場合任意のタイプのカーブ補間(線形またはベジェ)を必要とせず、すべてのフレームに焼き付けられたキーだけ。 FBXまたはABCファイル形式でアニメーションを書き出すことができます。アニメーションメッシュをOBJシーケンスとしてエクスポートする追加の方法があります:Free OBJ Sequences Import/Export

また、ライトのエクスポートに問題がある場合は、ライトとその影をオブジェクトのテクスチャで焼きます。頂点ごとにアニメーションやテクスチャを書き出すためのより良い方法です。

enter image description here

STEP-BY-STEP命令:

  1. は流体コンテナを選択し、[修正・変換・FluidToPolygonsを適用します。 Viewportでは、Lambert1シェーダを持つポリゴンオブジェクトが表示されます。

  2. OutlinerでFluidObjectを選択し、fluidShape-Output Mesh領域でAE(属性エディタ)でメッシュ解像度とメッシュスムージングの繰り返しを変更します(例:0.5と2)。

  3. その後、OutlinerでPolyObjectを選択し、AEのinitialShadingGroupでタブを選択します。

  4. Windows-RenderingEditors-Hypershadeを開き、FluidTextureを選択し、AEのPolyObjectのinitialShadingGroupのSurface Material SlotにMMBドラッグアンドドロップを使用して割り当てます。

  5. シーンにスポットライトを作成します。テストレンダリングを実行します。ポリゴンが点灯します。

  6. 透明度、不透明度または白熱度を変更するには、OutlinerでPolyObjectを選択し、AEでfluidShapeタブに移動し、Shading areaを選択します。

  7. Maya207のArnold RendererプロパティまたはMaya 2016以前のMental Rayプロパティを使用して、ライト(および必要に応じてシャドウ)をベイクします。

  8. MayaからPoly Meshを出力するには、メッシュを選択し、Edit-Keys-BakeSimulationコマンドを適用する必要があります。

  9. フレームごとにテクスチャのシーケンスを書き出すには、ハイパーシェイドでFluidTextureを選択し、Edit-RenderTextureRangeに適用する必要があります(エクスポートされたテクスチャシーケンスのフレーム範囲を割り当てる必要があります。ファイル形式、例えばTIFF)

  10. OBJシーケンスをエクスポートします。

+0

詳細な対応をありがとうございます!私はあなたの助言に従うと、一度実装されたとして受け入れるように答えをマークします。既に気分がいいです:)もう一度ありがとう! –

+0

私は流体をポリゴンに変換するときに、作成したポリゴンに "InitialShadingGroup"を接続します。 Edit> Keys> Bake Simulationの後に照明を焼き付けようとすると、「InitialShadingGroupに接続されたテクスチャを変換できません」というエラーが表示されます。このエラーに関する情報は見つかりません。これはあなたが遭遇したことですか? –

+0

私は別の問題を意味しました:three.jsはインポートされたライトを認識しません。 – andy

関連する問題