昨今なにかと話題の3Dプリンター。

で、これを使ってミクさんの3Dフィギュアを作れるのか?と思い、いろいろ調べてみたメモです。




データ作成編

ミクさんにポーズを付けてみる(自力編)

ミクさんにポーズを付けてみる(VPD編)

ミクさんにポーズを付けてみる(VMD編)

STLのサンプル

STLのサイズやエラーチェック(エラー修復の仕方)





データ作成編

まず3Dプリンターを使うとして、データの形式は何だと調べてみたら、STLというファイル形式なら3Dプリンターで読めるらしい。

(正式には、Stereolithography形式。オブジェクトの形状は、三つの頂点の座標と法線ベクトルにより定義される三角形ポリゴンなので、メタセコなどでアクセサリを作る場合などでは、面の向きに注意が必要。所謂、反時計回りでポリゴンを作るってやつ)

STLファイルについて

データ作るのに金に糸目はつけない!!という強気の方は「Shade 3D」なんかがあります(そんなに高いもんじゃないですが)。

でも、「まずは、やってみなきゃ分かりません」という慎重派な方には....。

このSTL形式のデータを扱えるフリーのアプリは何かなとあれこれ探したら、「Blender」と「SketchUp」がよさげでした。

このWisteriHillのサイトで何かとお世話になっている3DCGアプリなので丁度いい感じです。

まずミクさんのpmdが読めないと話が始まりません。

これまた調べてみたら、どうも「Blender」が入り口になるみたいです。

「Blender」のインストールですが、一番楽なのは多分KDDIが提供しているSATCHのMMD用コンバーターを使う手です。
これを使うと、Blenderの2.62、249VMDバージョンとPythonの2.6.6を一気にインストールしてくれます。


SATCH SDKの提供終了に伴い、2013年6月30日に各種ライブラリの配布は終了しました...とのこと。

Blenderのインストールに関してはこちらを参照

当サイトではpmdインポートを確認しているのは、Blender 2.62 + Python 2.6.6(Windows)の組み合わせだけです。

お入用ならここからDL。

blender-2.62-release-windows32.exe

python-2.6.6.msi

次にBlenderでpmdをインポートするにはアドオンが必要になります。

MeshIOを使います。

pmdなどのポリゴンモデルを読み込むBlender2.5向けのプラグインですが、2.6でも使えます。

pymeshio-1.8.5.zipをダウンロードします。

解凍したフォルダー(blender25-meshio)をBlenderのアドオン用フォルダーに移します。

MMD用コンバーターのインストールフォルダーの階層ではこんな感じです。
C:\OgreCommandLineTools\Satch Exporter for MMD\Blender\blender-2.62-release-windows32\2.62\scripts\addons


Blenderのデフォルトのインストールフォルダーの階層ではこんな感じです。

C:\Program Files\Blender Foundation\Blender\2.62\scripts\addons

Blenderの2.62を起動して設定を行います。

File -> User Preferences ->Addonsで「Import-Export:meshio.(.pmd)(.mqo)」を探してチェックを入れ、Saveします。



これで、pmdを読み込むことができます。

File -> Importで、MikuMikuDance model(.pmd)とMetasequoia(.mqo)の項目があることを確認。

ミクさんのモデルを読み込むとこんな感じ。



BlenderのExportにはStl形式での出力機能があるのでこれでStlファイルを作成します。

蛇足ですが、Blenderには3ds形式での出力も可能です。これで吐き出せばSketchUpでインポートできます。

こんな感じ。



ちなみに、SketchUpでSTL形式のファイルを出力するには別途プラグインが必要です。

このサイトからskp_to_dxf.rbをダウンロード(ルビー言語で書かれているのでRubyもインストール)。

プラグインを<SketchUpのインストールフォルダー>内のPluginsフォルダーを入れて、SketchUpを起動。

メニュ -> ツールの中に、「Export to DXF or STL」があることを確認。

なお、SketchUpでSTL出力する場合は注意が必要です。
デスクトップなどのようにパスにスペースがある場所には出力できません。

以上です。

PS
Blenderで吐き出すSTLはバイナリ形式ですが、SketchUpはテキスト形式になっています。




ミクさんにポーズを付けてみる(自力編)

pmdモデルの初期状態は、こんな感じです(Aスタンスとか言うそうです)。



このまま出力するのもなんなので、ポーズを付けてみます。

ミクさんの基本モデルをPMDEditorで読み込みます。

PMDViewの右上のメニュの「T」(TransformView)をクリック。



すきなポーズになるように関節やクビなどの角度を調節します。



調節が終わったらメニュの「頂点モーフを正規化して保存」を選びます。



pmdではなくpmxでしか保存できない場合は、とりあえずpmxで保存してその後、
再度PMDEditorで読み込んでpmdで保存しなおします。



VMDViewで読み込んで確認。



以上です。




追加
vpdデータを使ってポーズ(VPD編)

公開されているvpdで「ちょっと変だけど、使いたい」という場合、修正してみましょう。

こういうデータの場合

左腕が胸に貫入してます。



左ひじの角度を変えてみます。



両手首の角度も変だったので変更。



結果のpmdデータです

以上。




追加
vmdデータを使ってポーズ(VMD編)

公開されているモーションデータ(vmd)の中で気に入った部分をポーズとして抜き出してみます。

MMD(MikuMikuDance)を起動。

モデルを読み込み()、モーションデータを読み込みます()。



お気に入り部分のフレームへ移動。



ボーンを選択して()、pvdとして保存します。



後の作業は上記のVPD編と同じ。

以上。


こういう作業も「面倒」とお感じの方は....。

写真からモデルを起こしてみました、このページを参照






ネット上では、STL形式のファイルを公開しているサイトが増殖してますねえ。

例えばこんなモデル(これは多分CGアプリでレンダリングした絵)。



このモデルのSTLファイル

BlenderにはSTLをインポートする機能もあるので、読み込んで確認してみましょう。

こんな感じ。



実際にプリントアウトした例。
(USAの各州の境界線と海岸線と国境線を出力してます)



このモデルのSTLファイル






作成したSTLファイルでモデルのサイズやエラーがあるかチェックして、出来れば修復もしてみましょう。

整合性の無いデータを使ったら時間とお金の無駄遣いになるし....。

netfabb Studio Basicを使ってみます。

これは、メッシュデータの編集・修正や、各種のツールを使った構造の最適化や解析、モデル生成が可能なポリゴンエディターです。

Professional版は少々お高いですが、無償のBasic版でも十分やれそうです。

まず、上記のUSAモデルの場合だとどうでしょう。

エラーは出ていません(そりゃそうだ、出力確認済みのデータだもの)。



メニュのView -> Stereographic Viewを選択。

サイズをチェックできます。



HeartRingを読み込んでみます。

右下に赤いエクスクラメーションが出てます。エラーは多分赤く囲った部分だと思われます。



repair(修復)してみます。メニュ右上の赤十字をクリックして状況をチェック。

Holesの項が8になっています。穴が開いてる?

左下の「Automatic repair」をクリック。



DefaultでExecute。



隣のの「Apply repair」をクリック。



修復が実行されます。エクスクラメーションが消えてます。



Updateしてみます。

1Shellになって、Holesのエラーも無くなってます。




ではミクさんのモデルはどうでしょう?

BlenderのSTL出力例です。

見事にエラーが出てます(^^)。

こんなデータを使ったら、わけのわからんミクさんが出力されそうです。



同様に修復してみました。



確かにholeは塞がれているようですが、invalid orientationの値が255のまま、まだまだです。



完全修復ができたら、またレポします。

ん?

今までは「Automatic repair」で「Default」を選んでいたけど、「Simple」に変えたら、Holesもinvalid orientationも消えてしまった...。



でもShellはまだ522。プリンター出力するデータは1Shellでなきゃいけないようで....。



小さなシェルを削除してみましょう。



53になりましたが、まだまだです。



で、netfabb Studio Basicではこれ以上やっても無駄だと分かったので、方針転換。

netfabbにはオンラインの修復サービスがあります(Beta扱いなので今後どうなるか分かりませんが)。

これを使ってみました。

シェルは1になってデータが帰ってきました。



データ上では整合性が取れている....ということでしょうか。



ちなみに、これがサイズのデータ。




ミクさんのSTLに問題があることが分かりましたので修正しました。

このミクさんのSTLです

前のデータではミクモデルの首の部分にポリゴンの欠落というか不足がありました。

こんな感じ。文字どおり「首の皮一枚でつながっている」という状態(^^)。



しゃれにならないのでメタセコで修正しました。



技術不足により、こんな修正しかできませんでした。







でも、このミクさんを出力しても面白くないのでこういうポーズに変更。



このデータをどこかのよさげな出力屋さんに出稿して、その結果がでれば、またレポします。



追加
デジモデさんにデータチェックしていただきました。

こちらの1980円コースを選びました、で結果ですが...。

出力は可能。

ただし、指平均径が0.2mm、ネクタイ厚が0.05mmなど非常に薄く長く弱い構造になっているので、
洗浄や梱包、発送時に確実に破損しますとのこと。

ううーーん、どうしようか?と、思案中。

新たな問題点が発覚。

このミクさんの場合、他にも0.1mm以下の厚みの部分が結構あり、さらにクビの径が0.85mmしかなくここに大質量の頭部とツインテールの髪の応力が集中することになる....。

下手に立たせようなんてしようもんなら、ポキンと折れちゃうよ、ということ。
ツインテールが魅力のひとつなんで、髪...切るわけにいかんしね。
おまけにちょっと首、かしげてるし。

ここはひとつモデルを変えて再チャレンジするか、
反転モデルを作って(鋳型を作るって意味ね)フルメタル・ミクさんにするか、
あるいは頭部と髪を支えるような何かをパーツとして追加するか、
ミクさんが自分の手で頭部を支えるようなポーズに変えてみるか、
他の手を考えます。

追加
方針転換!

低予算でプリンター出力という結果を手にするために、初音ミクモデルは放棄し新たに「クマ音ミク」モデルに変更します。

詳しくはこのページ参照

3Dプリンター用のデータを作ってみる




PS
やりようによっては、こういうネコミミのミクさんも作成できます(工数は増えますが...)。
このネコミミ・ミクさんの作成方法はここで書かれているのとちょっと違うので、また別途レポする予定。






3Dプリンターのデータやプロダクトを共有や販売などが出来るサイトのまとめ(メモ)

TinkerCadを使ってみる

3Dプリンター用データを参考までに見てみる

3Dプリンター用データダウンロード

3Dモデルにモーションをつけてみる



Under construction