「ボクセルポリゴンな日々」 - UnityでMakersとVRをつなぐ挑戦 -

Unityプログラムで3DCGアセットデータをVRや3Dプリンターで利用可能にする最新技術や関連最新情報を紹介します。

「【論文】MMDから俺の嫁を3Dプリンター出力するプログラムを開発してみた」に関する追記事項

2013年11月24日 13時07分04秒 | 3Dプリンター



先週金曜日「第5回ニコニコ学会βシンポジウム 研究してみたマッドネス」に向けた論文用ビデオ(1~2分以内)を提出するために、ニコニコ動画にその映像をアップロードした所、少なからぬ反響がありました。

といっても現時点で大騒ぎするほどの視聴数でもありませんが、しかしながら視聴者の中で技術的な内容に注目するだけでなく「3DCGデータが作者の了承なしに立体出力されるのはいかがなものか?」と言った意見が散見されましたので、このブログにてその懸念に対する私自身が考えている対応策についてご説明致します。


まず、その前に「何故3DCGデータを3Dプリンターで出力できるようになったのか」について簡単に説明します。

動画のコメントの最後に秀逸なご指摘(ラスターベクターの3D版かな?)がありましたので、その流れで説明しますと。

「2Dグラフィックにおけるベクター→ラスター変換の発想を3DCGデータに応用した」


というのが正解です。

ここで線画イラストをデジカメで撮影した場合を想定してみてください。

線画の中でまっすぐ引かれた線は、デジカメで撮影すると沢山の画素の中に線の横断情報が収められます。

水平な線や垂直な線は問題ありませんが、少しでも傾いた線になると昔のデジカメならばガタガタの階段状になることがありました。

それはデジカメの解像度が低かったため斜め線が段差となって見えるためでした。

最近でもiPad Retinaがアピールしている所は、「解像度が上がって線や文字が見やすくなった」と言ってますが、正にこの問題です。


これを3DCGデータから3Dプリンター出力に応用するとはどういうことか?

3DCGデータは「レンダリング」という処理を経て2D画像データに変換されています。

この時ポリゴン情報として構築されていた3DCG形状モデルデータは、全て画面上の各画素の色情報に分解されます。

この色情報分解処理の際、後で描かれたポリゴンが先に描かれたポリゴンより前にあるのか後ろにあるのかを判定するために、ポリゴンのXYZ座標情報から各画素に対応する「Z値」を描画直前に計算します。

そのZ値はグラフィックカードの画像バッファの中のZバッファに格納されます。

このZバッファを取り出して各画素毎の高さ情報に変換して、画素毎にZ値分の直方体を作って並べると、図のようなヒストグラムができあがります。



この直方体はそれぞれ閉空間になっています。

勿論これでは見栄えが悪いので色々処理を行って今回のプログラムを開発してますが、動作の基本原理はここに示した通りです。



ここで説明したように、今回の3DCGデータ→3Dプリンター出力変換処理は原型となるポリゴンデータ情報からは全くかけ離れた形状データを生成します。

基本的にはポリゴン情報はラスター化の時点で画像バッファに吸収されます。その点でこの変換処理はイメージベースと言えます。

ということで、元のポリゴン情報をそのまま利用して3Dプリント可能な情報に変換されるわけではありません。

しかも、現状では必ずレリーフ形状に変換されるため、裏側の形状は再現されません。

また、プログラムの表示ウィンドウの範囲内でしか3Dプリンター出力可能な形状データに変換できないという弱点があります。



・・・・・

しかし、それでもポリゴンで表現された形状が不完全とはいえ3Dプリンターで出力可能になる事には変わりありません。

そのため、変換後のデータをそのまま自作品を偽って有償配布する不逞の輩が出るであろうことは想像に固くありませんでした。

そこで一計を案じ、現在配布中のプログラムには出力物に全て「TEST」の刻印を入れるようにしました。

こうすることで、刻印のないデータ(すなわち私のプログラムで変換を行ったどうかがわからなくする)を作成することは非常に困難になっています。


勿論、刻印自体も3Dプリンター出力用形状データとなっているため、それを形状モデリングツールに読みこめば修正することが可能です。

しかし現状では100万ポリゴン近いデータを1ポリゴンずつ手で修正する労力がかかります。

勿論その数のポリゴンを修正するとなると、普通の事務用PCでは役不足になってきます。

それでも機材を揃えて労力をかければ修正は不可能ではありませんが、

それだけのリソースを傾けてレリーフから刻印を取り除く作業が金銭価値的に見合うのかどうかという事になってきます。

刻印を取り除いたとしても、元の3DCGポリゴンデータとはかけ離れた変換後の立体出力用データです。

そんなデータに商品的価値があるとは思えませんし、

そんな奇特な行為が可能なスキルをお持ちの方なら、むしろ元のポリゴンモデルを3Dプリンターで出力可能なデータに自力で変換するでしょう。


また、データの修正が難しいなら、物理的に立体出力された物体の刻印を削り取る事も可能です。

しかし、実際にはそちらのほうがはるかにハードルが高いです。

Reprap系のABS出力品の場合プラモデルの修正技法がそのまま使えますが、

しかしこれは実際に手先の器用さと平滑面を出すまで根気良く修正を繰り返す必要があります。

それと、フルカラー3Dプリンターで出力したものの場合、削り落とした箇所は元の色を失いますので削った跡がはっきりわかってしまいます。

このように、物理的な刻印削除も非常にハードルが高く、実際に実行すれば割が合わなさすぎることが直ぐに判ります。


・・・・・

この刻印機能ですが、

よくある「パスワード入力による機能解除」に関しては全く考えていません。

今後新バージョンが出たとしても、この刻印機能はこの先解除されることはありません。


それでは刻印のない3Dプリンター出力は望めないのかというと、はっきり言って作者としては望めないことを宣言しておきます。


但し、MMD等の3DCGモデルの作者さんでもしも希望される方がいらっしゃる場合、

刻印のパターンをその作者さんの了承印となるイニシャルサインに変更したバージョンをお渡しします。

これによって、MMDモデルの作者さんがそのモデルを3Dプリンター出力用に変換して出力することを許可する場合、


「自分のオリジナル刻印がされたモデルに限定する」


事を宣言し、オリジナル刻印付きの3Dプリンター出力用データ変換サービスを行うことで誰が自分の作品を3Dプリンター出力を行ったかを管理することが可能になります。

この「3Dプリンター出力許可を証明する刻印付きデータ変換」はサービスとしてモデル作者が有償で実施しても問題はありません。

そもそもデータ変換サービスには権利とは一切無関係であり、純粋に担当した人間の作業費を請求可能です。即ちこれは労働行為です。

勿論すべてのモデル作者が地震の刻印付きデータ変換サービスに課金を施さなければならないといった義務が生ずるものではなく、金額(無課金も含む)は作者の判断に委ねられます。


逆に、そのモデルを普段から利用しているユーザーやモデル作者のファンの方が、

「モデル作者さんを支援するために有償でのオリジナル刻印付きデータ変換を希望する」

事でモデル作者さんを支援することができると思います。

当然モデル作者さんのオリジナル刻印のない立体出力物(デフォルトの刻印または恋に刻印を削って修正したものを含む)が、

同人頒布物やイベントグッズとして販売・頒布された場合には、外見から容易に無許可品であると判別できることになります。

そしてそれは無許可な3Dプリンター出力物がネットに出回った場合も、無許可であるかどうかを判別する動かぬ証拠となります。


このように、刻印は3Dプリンター出力物を監視するための有効な手段となります。


・・・・・

「こうした刻印機能をつけて、それでもなお3Dプリンターで3DCGモデルデータを出力する意義はあるのか?」と疑問に思う人はいると思います。

私はそれでも3DCGモデルを3Dプリンターで出力できることに意義があると考えています。

それは、こうした技術の進展を進める上で鍵となるのが「コンテンツ」と「キャラクター」の力だということを、過去の技術革新事例で学んでいるからです。

例えば「初音ミク」。

彼女はボーカロイドという楽器システムを、自身のキャラクター性によって一つの確固たる「個性」に変換することに成功しました。

それ故に現在でも彼女に捧げられる楽曲は絶えることがありません。それは、楽器が愛すべき対象と認識された証左です。

さらに彼女は3DCGの世界も大きく変革しました。

彼女をモデリングしてそのデータを無償公開するモデラーが数多く登場したのです。

それまで3DCGモデリングデータは無償公開しないことが暗黙の了解であり、ワイヤフレームモデルのレベルで中身を晒すことはモデリングテクニックの秘密をばらすことと同義でした。

しかし初音ミクモデルは作られ続け公開され続けました。

その究極の転換点を作ったMikuMikuDanceというフリーの3DCGアニメーションツールの登場を契機に、データは爆発的に増え続け、現在も尚その勢いが止まることはありません。


こうした技術の爆発的変革を支える大きな動機付けの一つが、

「そのキャラクターを歌わせたい」
「そのキャラクターを見たい」
「そのキャラクターを動かしたい」
「そのキャラクターを踊らせたい」
「そのキャラクターを演技させたい」

という欲求です。これらの欲求が高まり、技術がそれに答える時、初めて技術革新が成されるのです。


故に今回の3DCG→3Dプリンター出力変換プログラムも、この欲求の延長線上に生まれたものに過ぎません。すなわち、

「そのキャラクターを手に持ちたい」

が基本動機なのです。ざっくり言えば私は単に俺の嫁を取り出したかったがためにこのプログラム開発を開始したのです。

だから、私が開発しなかったとしても、他の人で私のような動機を持った人が開発していたと思います。


但し、私が開発するからにはは、モデル作者さんの恩に報いる手段として活用されるように発展させたいという思いがありました。

それ故に、今後も開発活動を続けていきます。


・・・・・
(2013.11.24 22:08追記事項)

既存の3DCGモデルを3Dプリンターで出力できたからといって、それはMakers的にクリエイティブな意味を持つのか?との疑問を呈する方がいらっしゃいます。

それは3DCGデータについて何らの仕様知識を持ち合わせていない方のご意見だと私は思います。


例えばMMDにおいて、標準添付モデルのミクさんを画面上に読み込んでAスタンスのまま立たせていても何の意味もないと思います。

しかし彼女を動かし、配置を変え、ポーズを変え、表情を変えることで、たとえ背景が白くてもそこにストーリーを感じさせる雰囲気は作り出せます。

即ち、3DCGデータは動かすことにより新たなクリエイションが生じるのです。

3DCGデータには定まった形などはないのです。動かし、表情を変え、背景を変え、ストーリーを盛り込むことで、キャラクターを介して新たな世界を創造できるのです。

この創造行為はMakersそのものだと思います。


そして、動かすことのできる3DCGモデルデータを3Dプリンターに直接出力させられることで、

初めて「無限の表現力を発揮する3Dデータの種」を3Dプリンターは持つことができるのです。

それが新たなMakersを生み出す原動力となること誰でもは容易に想像できます。


問題なのは、3DCGが3DCADのように設計図然として動かないかのような錯覚を流布しようとしている論調です。

その視野狭窄が3Dプリンターの持つ新たな可能性の芽を積んでいるのです。

3Dプリンターの可能性の芽を摘む意見よりも、3Dプリンターの未来について「自分何ら何を作るか?」を積極的に語り,3Dデータを含めて自分オリジナルの作例を披露する。

そうした積極行動を取る先人たちの意見に耳を傾けるべきです。彼等の会話の中には未来が垣間見えます。(^^)