Google

2016年11月30日水曜日

RuntimeSTLLoader:頂点カラーとプレハブ化

前回はSTLフォーマットに埋め込んだカラー情報の件でした。
RuntimeSTLLoader ver1.3.0のアップデート記事は今回がラストです。

前回も書きましたが実はこのカラー表現、テクスチャを使用していません。
テクスチャでもいいのですが、簡易に使って頂くプラグインとしては価格も処理時間もコストが上がりすぎる危険性があったので避けた次第だったりします。

ではどうやって色を出すかと言うと、「頂点カラー」を使用しているのです。

この方式は頂点に対して色を付けるため、山の頂点が1つの色で塗りつぶされ、他の色に向かう部分はグラデーションが掛かるのが普通です。
また、カラーをそのまま使うのではなく、テクスチャのブレンド情報等に使ったりもします。

頂点単位で色を決めるのでこういうデモが多いですね。

こんなふうに複数のテクスチャの濃度を反映させたりして使うのが最近の普通です。
しかし当プラグインではグラデーションを適用させず、ポリゴン単位でカラーを反映させるようにしました。
これによってバー○ャ1のようなポリ単位でのカラー表現が可能となっています。
あ、元々Unityでは頂点カラーをそのまま表示できない点も売り文句となっております。エンジニアにとっては常識かも知れませんが一応。


テクスチャが普通の時代にバーチ○1とは、、、と思うかも知れません。
が、入り組んだ構造の中にスプレー噴射できる3Dプリンタができるにはまだ時間が掛かるのと、ゲーム以外の業務用途ではそれなりに需要があったりもする訳です。
実際、海外からの質問が多いので毎回翻訳どうしようという感じです。


そしてカラー版を作ってみて初めて気づいた点が一つ。
RuntimeSTLLoaderで作成したオブジェクトは、Unity Editor上で作業するという条件付きでプレハブ化することが可能という機能(というかUnityの機能ですが)を掲げていたのですが。
なんとカラーSTLをプレハブ化すると、そのままカラー情報までプレハブとして扱ってくれる事が判明したのです!
プレハブ化したらカラーが消えるのではと想定していたので嬉しい誤算でした。


兎にも角にも扱い辛いSTLもプレハブになってしまえば後は簡単。
このプラグインでSTLを毎回ロードするもよし、プレハブ化して便利に使うもよしかと。

同梱のデモアプリにはプレハブ化ボタンが元々あるので、実験開始してみましょう。
今回も被験体はTINKERCADからパクって来ました。

当プラグインに同梱されている「TestScene」というデモをUnity Editor上で起動して、、、、

TINKERCADから落としたファイルをプロジェクトに入れ込み、
プロジェクト一覧上で右クリすると、デモ上で簡単にロードする事が可能です。
ボックスにSTLのパスが入ったのでこのボタンを押すだけで表示されます
カラフルなSTLが表示されましたね。
版権は、、、、ゲフンゲフン。
「ド」の文字が間違っているのでセーフということでw

サイズが大きいのでGameObjectが複数に分割されているのが解ります。
このデモをUnity Editor上で実行中に、STLが表示された状態で、という条件の元で、
この赤丸のボタンを押すとプレハブ化してくれます。
このようにプレハブとMeshが複数生成されます。
このプレハブをシーンにドラッグ&ドロップすると、カラー付きでGameObject化!
どうやらプレハブに情報が残ってくれているようです。
シーンのヒエラルキーを見るとちゃんと構成されているのが解ります。
と、いう事で商品宣伝はこれぐらいで。

RuntimeSTLLoaderのご利用、弊社へのご用命のほど、よろしくお願いします。

0 件のコメント:

コメントを投稿