ソラマメブログ

  
Posted by at

2009年04月03日

BlenderTips:基本に返ってUV展開方法など

今作ってるものの関係でアニメの作成が先になりそうなので、Blenderでアニメ作成の話題は少しお休みです。


=============================================================================


この記事では、Blenderでスカルプテッドプリム用のメッシュを作成するために提供されている各種テンプレート
を使用することなく、スカルプテッドテクスチャを作成する方法について記述します。

Blenderでスカルプテッドテクスチャを作成することに関した最近の情報は、何らかのテンプレートを利用すること
を前提としている場合がほとんどのようです。実際、テンプレートが前提とする作成方法の範囲内では何の問題
もなくメッシュの作成からテクスチャの書き出しまでが可能です。


それにも関わらず、ここで敢えてテンプレートを使用しない方法について記述するのには、わたしが個人的にテン
プレートを使用しない方法で作成していることが大きな理由になっています。この自分自身の経験上、テンプレー
トを使わないやり方「も」知っていた方がより作成の自由度が大きいと感じています。

そこで、もしテンプレートを使った作成手順に何らかの制限を感じる方がいれば、テンプレートを使用しない作成
手順を提示することがいくらかの役に立つのではないかと考えて、記事にすることにしました。


=============================================================================


ご紹介する方法は、たとえば以下のような作成手順に用いたい方にとって、役に立つだろうと思います。

 ・一個の頂点から始めて、だんだん形状を作り上げていきたい。
 ・大まかな形状を作ってから分割や平滑化を行い、不要な頂点を削除してメッシュを作りたい。
 ・鏡面機能を用いて左右・前後・上下対称のメッシュを作りたい。

などなど。


テンプレートを使用することの最も大きな恩恵は自分でUV展開を行う必要がないということですが、この恩恵を
受けるためにはテンプレートのもともとのメッシュ構造を破壊できないという制限があり、上記のような作成手順
を採ることはできません。

そして、これらの要求を優先すれば、テンプレートの恩恵を受けられず、避けて通れない問題としてUV展開を自
身で行うことが必要になります。

しかし、UV展開を自身で行うことさえできれば、テンプレートからの変形という以外の、さまざまな編集機能をメッ
シュ作成に用いることができるようになるということでもあります。


そこで、ここではこのUV展開を自分で行うという点に絞って解説をしてみたいと思います。

この作業の基本の部分においては、スカルプテッドプリムが導入された当初から存在するamandalevitskyのチ
ュートリアルで記されている、UV展開についての説明部分と同じプロセスを説明することになります。

この手順については、わたし自身の過去の記事で解説をしていましたが、その後より簡潔な操作手順を知るとこ
ろとなりました。Blender2.46以降のインターフェイスの変更によってその手順が使用できなくなったと思っていた
のですが、最新の2.48では操作方法がわかりましたので、新たな情報として記すことにしました。


=============================================================================


まずはスカルプテッドプリム用のメッシュ構造について確認をしておきましょう。

わたしは、スカルプテッドプリムの構造は、しばしば言われている頂点数依存ではなく面数依存ではないかと考
えています。つまり、Blender上では32*32の1024の四角面を構成するようなメッシュとして、スカルプテッドプリ
ム用のメッシュは作成するのがよいと思います(備考:SL内ではすべての面は三角面化されますが、Blenderで
の作成は四角面で考えた方が分かりやすいです)。

このことは、形状によってBlender上での見かけ上の頂点数が変化することを意味しています。

たとえば、平面スカルプでは32*32の四角面を構成するのに33*33の頂点が必要になります。シリンダースカル
プではリングを構成する頂点は平面で言うところの両端が重なることになりますので、32*33の頂点になります。
ただし、この場合にもUV展開を行うことを考えれば、結局は33*33の頂点データを持つことになります。

ややこしい話ですが、BlenderのEditモードで「Face」の数が1024になっていることを確認しておけば、とりあえ
ず問題はないと思います。

面数1024を維持するというのはアスペクト比を変更する場合にも有効ですので、是非覚えておいください。

=============================================================================


ではUV展開の説明に入っていきましょう。その前に、Blenderのインターフェースを少なくとも以下の構成にして
おくと作業しやすいですので、準備しておいてください。

・3Dウィンドウ
・UV/Imageウィンドウ
・Buttonsウィンドウ


展開の準備

UV/Imageウィンドウ内の準備をしておきます。
フィールド内にカーソルを置いて「N」キーを押し、「Image Properties」という小ウィンドウを表示します。

次に、「Edit」モードでスカルプに用いるメッシュの展開準備をします。

平面
平面スカルプ(板スカルプが呼び方として一般的でしょうか?)の展開はメッシュにシームを入れる作業がない分
楽チンです。何もしなくていいです。

球とシリンダー
シリンダーをテクスチャ平面に切り開くための切れ目、シームを1本入れることになります。リングと直交する、つ
まりメッシュの2つの開口部をつなぐ方向の頂点群を1列選択し、「Ctrl+E」から「Mark Seam」を選びます。

トーラス
こちらはシームを2本入れます。2つのリング方向のそれぞれで1列、「Ctrl+E」から「Mark Seam」を選びシーム
を入れます。



UV展開(その1):バージョンで異なる作業

この後、UV展開を実行することになりますが、途中までBlenderの2.44と2.48で操作方法が若干異なります
(2.46では今のところ成功していません)。2.44の方が操作が少ないので若干楽な気がします。


Blender 2.44の場合

3Dウィンドウで「F」キーを押し、「UV Face Select」モードに入ります(このとき、仮のUV情報が作成されます)。
どの面でもよいので、右クリックで一度アクティブな面を選択しておき、「A」キーを2回押して全選択します(単に
全選択ではいけません。どこかの面はアクティブである必要あり)。

U」キーを押してUV Calculationメニューを呼び出し、「Follow Active (quads)」から「None」を選択します。
すると、UV/Imageウィンドウに碁盤の目状にメッシュが展開されたと思います。



Blender 2.48の場合

2.48では「UV Face Select」モードがなくなっており、UV Calculationメニューなどの機能は「Edit」モード(Tabキー)
で実行できるようになっています。まずは仮のUV情報を与えてやる必要があります。「Editing」パネルの「Mesh
タブの中にある、「UV Texture」の「New」ボタンを押してください。アクティブな面を選択するには、「Edit」モードの
面選択モードでどこかの面を選択すればOKです。

この後は「「Edit」モードで作業すること以外は2.44と同じで、「A」を2回押してメッシュを全選択し、「U」キーの
UV Calculationメニューから、「Follow Active (quads)」、「None」を順に選択します。UV/Imageウィンドウに碁
盤の目状にメッシュが展開されるのを確認して下さい。



UV展開(その2):各バージョン共通の作業

UV/Imageウィンドウにいったん碁盤の目状に展開されたら、以降はバージョンに関わらず共通の操作になります。

まず、展開されたメッシュの中心と、Imageフィールドの中心を揃えます。

A」キーを押して展開されたメッシュを全選択してください。「Image Properties」の中に「Median X」「Median Y
という値が現れたと思います。この値は、展開されたメッシュの中心の位置を指定しています。
デフォルトのImageフィールドのサイズは256*256になっているようですので、この真ん中である128を、両方に入力
します。展開されたメッシュが移動し、フィールドと中心がそろったでしょうか?

この時点では、展開されたメッシュの大きさがフィールドよりもはるかに大きくなっていると思いますが、今は問
題はありません。

次に、メニューからUVsを選んで「Layout Clipped to Image Size」を選んでチェックを入れます。そして、展開さ
れたメッシュが選択された状態で「S」キーを押すと、展開されたメッシュが画像フィールドの大きさに自動的に縮
小されます(先ほどチェックした機能で、Imageフィールドのサイズに強制的にクリップされたわけです)。

このとき、カーソルを内側に動かしてしまうと展開されたメッシュが縮小されてしまうので気をつけて下さい。


これでUV展開は成功です。


スクリプトにお詳しい方ならこれまでの手順をスクリプトにしたりということも可能なのでしょうか?キーやメニュー
からアクセスできる機能しか使っていないので、これを自動化するようなものはできないものでしょうか?作って
くださる方がいらっしゃればありがたいなあという願望も、今回書いてみた目論見の中にあったりw


=============================================================================


さて、わたしの場合、この後はCattakaさんのJavaスクリプトで最終的なスカルプテッドテクスチャを作成します。
このために残っているBlenderでの作業は、サイズはなんでもよいのでブランクのテクスチャを設定しておき、obj
形式でエクスポートすることだけです。

この記事は文字だけでも漏らしている情報はないはずですが、画像もそのうち追加しようと思います。


Blenderに残ったメッシュは是非カラーマップを作成するのに利用しましょう。
Blenderのレンダリング機能を使えば、工夫次第でメッシュの形状をしっかり反映したいろいろなテクスチャを作成
できます。

これについても以前に記事化していますが、いずれまた機会があれば書いてみたいと思います。  

Posted by Nori at 14:57Comments(3)Blender

2008年03月05日

BlenderTips:尖ったオブジェクトの作成

さて、Blenderスカルプターに向けた小ネタ特集の第2回です^^


今回は、角や刃先といった、いわゆる「エッジ」を強調したオブジェクトを作るにはどうしたらいいかを考えてみます。
初期の頃は「エッジをきかせるのは難しい」と言われてましたが、工夫すればある程度は出せるというのが今の感想です。

Blenderに関して言うと、これはスカルプテクスチャの成り立ちを知る重要なトピックでもあります。
言葉で説明するのは難しいんですが、一口に言うと「Blenderの面がSLでの頂点になる」

はい、わかりにくいですね^^;
では、実際にどうなっているかを見ていきながら、最後にはエッジのきいたスカルプをゲットしましょう。


<追記>
現在では、公開されている外部ツールやBlenderプラグインなどで、このような問題は解決されている場合があります。
代表的なものとして、Cattakaさん謹製のJavaクリプト「conv2sculpt」などがあります。

そのような手段でテクスチャを作成する場合には、ここで紹介する方法を使う必要はありません。
過去にはこんな苦労もあった、という程度で考えていただければと思います^^;
  続きを読む

Posted by Nori at 15:55Comments(2)Blender

2008年03月05日

BlenderTips:鏡面コピー

お友達から問い合わせのあったBlender関連の質問について、書き留めていくことにしました。
Blenderスカルプターのお役に立てると嬉しいです^^


第一回目は鏡面コピーです。
頂点を直接編集する場合も、Sculptモードでこねる場合も、左右を同じように作業するのは大変です。
Blenderにはさまざまな編集効果を備えたModifiresという機能があり、この中のMirror機能を使えば、
片側だけを作っておいて、もう片側に反転させた形を簡単に作れます。  続きを読む

Posted by Nori at 04:59Comments(2)Blender