誰かがこの問題を助けてくれることを願っています。ブレンダーのエクスポートのバッチファイルを実行するプロセスが一時停止する
状況:
私はそれがC#のアプリの内部ティガーなければならないシーケンスとしてブレンダーからアニメーションをエクスポートする必要があります。私はかなりこのブレンダーのwikiの例と同じだPythonスクリプトでブレンダーOBJエクスポーターを使用しています: https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/Wavefront_OBJ
これは私が書いたPythonスクリプトは次のとおりです。その私のほかに
import bpy
import sys
argv = sys.argv
argv = argv[argv.index("--") + 1:] # get all args after "--"
obj_out = argv[0]
bpy.ops.export_scene.obj(filepath=obj_out, axis_forward='-Z', axis_up='Y', use_animation=1, keep_vertex_order=1, use_normals=1, use_materials=0)
次のバッチファイルを書いた:
using System;
using System.Diagnostics;
namespace BlenderToObjs
{
class Program
{
static void Main(string[] args)
{
ProcessStartInfo processInfo;
Process process;
processInfo = new ProcessStartInfo("cmd.exe", "/c \"" + @"C:\blender_export_to_obj.bat" + "\"");
processInfo.CreateNoWindow = false;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
process = Process.Start(processInfo);
process.WaitForExit();
}
}
}
0123:
"C:\Program Files\Blender Foundation\Blender\blender.exe" "C:\Users\holgk\Documents\Some Folders\Test.blend" --background --python "C:\Program Files\Blender Foundation\Blender\convert_blend_to_obj.py" -- "C:\Users\holgk\Documents\Some Folders\Test.obj"
私のC#のコードは次のようになります
ウィンドウのcmdシェルを使用しているとき、すべてが正常に動作します。すべてのフレームに対して、objファイルが作成されます。しかし、私は私のC#アプリケーションを使用しているときに、cmdの行が開いている、ブレンダーが実行を開始し、最初のフレームの約250すべてが正常に動作し、何も起こらず、アプリケーションはまだ出口を待っているが、新しいobjファイルが作成されます。
バッチファイルを書き込む前に、そのpythonスクリプトをプロセスとして直接実行しようとしましたが、同じ問題が発生しましたが、エクスポートのいくつかのフレームの後で「一時停止」/「停止」していました。
私はそれが私のC#プロセスコードと関係があると思っています(cmdシェルを実行すると動作します)が、私は何が間違っているのかわかりません。