Help us understand the problem. What is going on with this article?

【Blender】3Dモデルを効率よくインポートする方法

How to import 3D models efficiently in Blender.
An alternative to drag-and-drop import of 3D models in Blender.
Blenderで3Dモデルをドラッグアンドドロップインポートする代わりです。
KeyWord: obj fbx drag and drop import efficient

動機

  • Blenderで3Dモデルをドラッグ&ドロップでインポートできないのは不便
  • 私がPhotoshopで様々な素材(jpgやpngなど)をレイヤーを駆使して編集したのと同様に、Blenderでも複数のオブジェクトを比較しながら編集したい。
  • 3Dモデルをスマートにインポートする別の方法はないかと探す旅に出た(前回)。

前回: 【Blender】色々奮闘備忘録(自分用)

動作環境

macOS Mojave, Blender 2.8,
python知識0でもOK.プログラミング経験者なら何となく分かりそう.

スマートな方法

obj2blender.pyをスクリプトを実行する.

スクリーンショット 2019-12-03 22.14.39.png スクリーンショット 2019-12-03 22.15.10.png
obj2blender.py
import os
import bpy

#ex.path_to_obj_dir = os.path.join("C:\Users\Your Name\Desktop\obj2blender.py") #Windows
#path_to_obj_dir = os.path.join("絶対PATH") #Win
path_to_obj_dir = bpy.path.abspath('絶対PATH') #Mac

# ディレクトリ内のすべてのファイルのリストを取得します
file_list = sorted(os.listdir(path_to_obj_dir))

#「obj」で終わるファイルのリストを取得します
obj_list = [item for item in file_list if item[-3:] == 'obj']

# obj_listの文字列をループし、ファイルをシーンに追加します
for item in obj_list:
    path_to_file = os.path.join(path_to_obj_dir, item)
    bpy.ops.import_scene.obj(filepath = path_to_file)

ディレクトリ内にある3Dファイルの数だけシーンにインポートされる.3Dファイルは原点に設定されていることが多いので、モデルのスケールやトランスフォームによるが度々重なる。
続けてインポートする場合は、スクリプト実行の前にモデルを原点から移動させ、シーンコレクションを新規に作成することをおすすめする。

結果

楽園ができました。穏やかじゃないですね。
スクリーンショット 2019-12-02 10.38.19.png

代償

3Dモデルのサイズに応じて、.blendのファイルサイズが大きくなる.
複数のモデルを読み込むことでBlenderの動作がだんだん重くなる.

インポートサポートファイル形式

当(Mac Blender2.79 Blender2.80)環境で検証しました(現状2019/12/2)。
Blender2.79とBlender2.80で試したところどちらも同じような動作でファイルがインポートされた結果になりました。
addon(拡張機能)でImport(インポート)があると、他の3Dファイル形式をインポートできた事を確認しました。
皆さんもぜひ駄目元で試してみて下さい。

できる fbx obj vrm(addon:VRM IMPORTER)
できない dae skp pmx(addon: mmd_tools) 3ds stl glTF
変化なし blend x

今後の課題

  • Blenderが標準でサポートされている他3Dファイル形式への対応.(.blend .dae など)
  • 座標軸の設定 位置をずらして配置
【参考】

[1] Drag and drop importing of .OBJ files

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした