仕様?不具合?インポート画面での複数選択

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

投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/8/8 15:57
ahbl  新米   投稿数: 3
2.67bをMacで使い始めた、3D初心者です。
ひとつ質問があります。FAQやマニュアル、フォーラムの検索はしたつもりですが、
もしどこかにありましたら申し訳ありません。

File > Import > Wavefront(.obj)にて開く画面ではマウス左クリックで
選択色になりますが、この時Shiftを押していると、複数のファイルを
選択した状態になります。ところが、その状態でImport OBJを押すと、
選択状態のうちの一つ?しかインポートされていないように見えます。

実は当方、数百のOBJを一つの空間に配置する必要があり、もしこれが
仕様だと困ったことになってしまいます。

なにか操作が違う、または他の方法がある、などありましたら、お教え願えませんでしょうか。

投票数:11 平均点:6.36
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/8/9 12:33
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
現状のスクリプトインターフェイスでは最後に選択されたファイルがインポート対象になるはずです。
以下のスクリプトをPythonコンソールで実行すると指定された.objファイルを読み込みます。
これを必要な数だけスクリプトファイルに列記して一括実行すれば必要なファイルを読み込むことが出来るはずです。

bpy.ops.import_scene.obj(filepath="c:/tmp/untitled.obj")

他にパラメータの指定が必要であればimport_obj.pyにインターフェイスが書かれているので参考にするといいと思います。

def load(operator, context, filepath,
         global_clamp_size=0.0,
         use_ngons=True,
         use_smooth_groups=True,
         use_edges=True,
         use_split_objects=True,
         use_split_groups=True,
         use_image_search=True,
         use_groups_as_vgroups=False,
         relpath=None,
         global_matrix=None,
         ):
例えばglobal_clamp_sizeのデフォルトは上記インターフェイスでは0.0ですが、これを0.5にするのであれば以下のようにスクリプトを変更してください。
bpy.ops.import_scene.obj(filepath="c:/tmp/untitled.obj", global_clamp_size=0.5)

インターフェイスで=が付いているパラメータは省略された時のデフォルト値です。
変更したい部分だけを列記すればいいです。

調べる時間も惜しいと思われるので以下のようなスクリプトを作成してBlenderのTextエディターでRun scriptを実行してください。

import bpy

bpy.ops.import_scene.obj(filepath="c:/tmp/untitled.obj")
bpy.ops.import_scene.obj(filepath="c:/tmp/untitled2.obj")

どの程度の容量のobjファイルを対象としているのかはわかりませんが
それなりにメモリー容量が必要になると思います。

ちなみにBlenderに実装されているスクリプトに関しては次のところを参考にするといいと思います。
Blender Scripts Catalog

但し常に最新になっているとは限らないので注意が必要です。

ここからは蛇足です。
私も遠い昔にMacは使用していましたが、今のMacがどのようになっているのかはわかりません。
従って以下の内容はwindows環境がベースです。
スクリプトを作るに当たって手順が分からなければ一読して下さい。

-フォルダに含まれるファイル一覧をテキストファイルに出力する。
-マクロ機能のあるエディターで上記のテキストファイルを整形する。
私はSakura Editorをよく使用します。(これはMac版もあります)
Sakura Editorのマクロ機能とは、一連の操作手順を記録し自動実行させる機能のことです。
お手本を見せるから憶えてね! みたいなものです。
投票数:10 平均点:5.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/8/9 20:54
ahbl  新米   投稿数: 3
完全無欠猫さん

さっそくありがとうございます。とは言え、せっかくのご指摘の点を
完全には理解できていません。

これは、
1) 既述のメニューだと、現在は「複数選択されていても、最後の
ものしかインポートされない」という仕様だ
2) しかし、ファイル群をテキストにして、スクリプトとして実行
すれば、複数ファイルはインポートできる

という理解で合っていますでしょうか。

また、ファイル群をテキストにする、というのはなんとかできそうですが、
それを「Pythonコンソールで実行する」というのは、Blenderの
機能としてそのスクリプトをどこかにペーストして実行ボタンを押す
ような感じでしょうか(それが「Blenderのテキストエディタ」という意味
なのでしょうか…)。根本的なところですみません、チュートリアルで
スクリプト実行について見つけられませんでした。

投票数:6 平均点:1.67
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/8/10 9:35
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
認識はその通りです。

wavefrontのインポートのスクリプトは1つのファイルしか処理しないようになっています。
そこで、Pythonでwavefrontのimport処理を複数回呼び出すことで必要な数のimportをするということです。

BlenderのText Editor画面で生成、整形したテキストを貼り付けてください。
貼り付けたらRun Scriptボタンがあるので押して下さい。

コンソール画面を表示しておけば処理経過がログ出力されるのでわかるはずです。
投票数:3 平均点:3.33
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/8/12 18:40
ahbl  新米   投稿数: 3
完全無欠猫 さま

本当にありがとうございます、お教えいただいた方法そのままで、200個超の
objファイルを連続読み込みすることができました!!

投票数:2 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013/9/3 17:22
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
今更ですがファイルを添付しておきます。
また、そのような状況があるのか知りませんが・・・毎回コマンドリストを作るのは大変だと思うので・・・。

やっつけなので要らない部分を消してなかったり、なんじゃこりゃ的な部分がありますが悪しからず・・・。
添付ファイルを解凍するとpyファイルが入っています。
BlenderのText Editor画面で読み込んでRun Scriptで実行してください。

ファイル選択画面が出るのでobjファイルの保管されているフォルダを指定してください。
別にファイルを選択しなくてもフォルダが指定されていれば構いません。
指定されたフォルダ内の.objファイルを全てimportします。

使用制限
フォルダにはimportする.objファイルのみを入れておく事。

フォルダは無視しますので多層構造でも大丈夫です。

注意事項
windowsのフォルダ指定になっていますのでMac用にスクリプトを書き換えて使用してください。

汚いスクリプトですが使えそうなら使ってください。
:download:multiple_file_import.7z

投票数:6 平均点:3.33

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

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

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

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


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