MRが楽しい

MRやVRについて学習したことを書き残す

UnityでAssetsのファイルを複製する

本日は Unity の技術調査枠です。
UnityでAssets内のファイルをコピーする方法について確認します。

例えば以下の Cube.prefab を複製して少しだけ設定を変更したファイルを作成したいケースがあるとします。
f:id:bluebirdofoz:20180209063312j:plain

Unity 上で Cube.prefab を Ctrl+C -> Ctrl+V してもコピーペーストはできません。
Assets のファイルを複製する場合、Edit -> duplicate で複製する必要があります。
f:id:bluebirdofoz:20180209063337j:plain
ショートカットキーは Ctrl+D キーです。

以下の通り、ファイルが複製されました。
f:id:bluebirdofoz:20180209063356j:plain

複製(Ctrl+D)はそのオブジェクト自身のみが複製され、参照しているオブジェクトは複製されないことに注意します。
例えば、以下のような Sqhere と Cube を持ったオブジェクトファイルを複製します。
f:id:bluebirdofoz:20180209063416j:plain

このとき、複製した側の Sqhere オブジェクトのマテリアルを黄色に変更してみます。
f:id:bluebirdofoz:20180209063449j:plain

すると複製元の Sqhere オブジェクトの色も変わってしまいます。
f:id:bluebirdofoz:20180209063503j:plain
これは複製元も複製後のオブジェクトも、同じ Sqhere オブジェクトを参照しているためです。

マテリアルも自動では複製されないので、複製元と複製後で色を変えたい場合はマテリアルも同じように複製し、その参照先を分ける必要があります。
f:id:bluebirdofoz:20180209063601j:plain

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その49(ウェイトペイントの使い方)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

今回からウェイトペイントを行います。
f:id:bluebirdofoz:20180208030923j:plain
まずは顔や髪などの共通部分のウェイトを設定します。

顔のウェイトペイントから実施します。
まずはポーズモードでウェイトを関連付けるボーンを選択します。今回は頭部ボーンを選択します。
f:id:bluebirdofoz:20180208030940j:plain

その状態で頭部メッシュを選択し、ウェイトペイントモードに切り替えます。
f:id:bluebirdofoz:20180208030953j:plain

この状態だとボーンが邪魔で色が塗りにくいので、選択後はボーンのレントゲン表示を止めるか。
または表示パネルからボーンの表示形式を「スティック」に変えておきます。
f:id:bluebirdofoz:20180208031002j:plain

初期状態だと、ウェイトペイントモードでメッシュ部分は青色で表示されます。
青色はウェイト値が 0 であることを示します。ウェイト値は 1 が最大値で、この値に比例して色が赤色に近づきます。
ウェイトペイントモードではマウスカーソルがブラシの役割となり、右クリックでメッシュオブジェクトを赤く塗りつぶしていくことができます。
f:id:bluebirdofoz:20180208031011j:plain

このとき、ツールシェルフのツールタブでブラシの設定が行えます。
ブラシの半径を大きくしたり、0 か 1 かで塗りたい場合はカーブパネルで「一定」を選ぶこともできます。
f:id:bluebirdofoz:20180208031020j:plain

ウェイト値は頂点に設定されるので、ブラシの利用以外に頂点選択での設定も可能です。
例えば、オブジェクト全体を塗ってしまいたいという場合は、オブジェクトの編集モードで全ての頂点を選択(Aキー)します。
データタブの頂点グループパネルで、頂点グループを作成し、ウェイト値を設定して「割り当て」を実行します。
f:id:bluebirdofoz:20180208031041j:plain
このとき、頂点グループの名前は関連付けを行いたいボーンの名前を設定します。
ブラシで設定を行った場合は、自動で選択していたボーンの名前の頂点グループが生成されます。

すると、選択した頂点にウェイト値が設定されます。
f:id:bluebirdofoz:20180208031052j:plain

塗り終えたら、メッシュのウェイト値とボーンが適切に設定されているか確認します。
実際にボーンを動かして、メッシュが追随するかを確認するのが簡単です。

ボーンが選択された状態になっていると思うので、回転(Rキー)でボーンを回転させてみます。
f:id:bluebirdofoz:20180208031059j:plain
ボーンの動きにメッシュが追随しました。成功です。
(瞳のオブジェクトにも同じようにウェイトペイントを設定しています)

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その48(アーマチュアの関連付け)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

今回からモデルとリグを関連付けさせる「スキニング」を行います。
f:id:bluebirdofoz:20180207021540j:plain
まずはモデルへのアーマチュアの関連付け、ウェイトペイントの準備を行います。

最初にモデルへの関連付けです。
まとめた全てのメッシュオブジェクトを選択し、最後にアーマチュアオブジェクトを追加選択した状態にします。
f:id:bluebirdofoz:20180207021552j:plain

この状態で オブジェクト -> 親 または Ctrl+P キーで「ペアレント対象」ウィンドウを開きます。
メニューから「アーマチュア変形」を選択します。
f:id:bluebirdofoz:20180207021612j:plain

これで選択した全てのメッシュオブジェクトはアーマチュアオブジェクトへのペアレントが設定されます。
同時に「アーマチュア」モディファイアの付加も行われます。
f:id:bluebirdofoz:20180207021620j:plain

次にウェイトペイントの準備です。
ウェイトペイントについてもボーンと同じく、左右対称とするため、Xミラーの機能を有効にしておきます。

オブジェクトモードでアーマチュアを選択し、ポーズモードを選択します。
f:id:bluebirdofoz:20180207021629j:plain

次に頭部のメッシュオブジェクトを選択し、ウェイトペイントモードに切り替えます。
f:id:bluebirdofoz:20180207021636j:plain

ウェイトペイントモードになり、メッシュが青色に変わったらツールェルフのオプションタブから「Xミラー」にチェックを入れておきます。
f:id:bluebirdofoz:20180207021647j:plain

次回からウェイトペイントを実施します。

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その47(ボーンの複製とペアレントの作成)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

ボーン作成の続きです。
f:id:bluebirdofoz:20180206082217j:plain
今回は手や揺れ物のボーンを作成していきます。

まず、手首の先から押出で非接続の子ボーンを作成します。
ボーンも複製が可能です。Shift+Dキーで5本のボーンを複製作成します。
f:id:bluebirdofoz:20180206082226j:plain

次に揺れ物ボーンの作成です。体以外に、動く必要がある部分にはボーンを設定しておきます。
本モデルではリボンが揺れ物に当たります。
f:id:bluebirdofoz:20180206082238j:plain

腰の部分のリボンにもボーンを設定しておきます。ここでも前後の紐で複製(Shift+Dキー)を使うと楽です。
f:id:bluebirdofoz:20180206082247j:plain

最後に武器ボーンを設定します。
武器は動く部分がないので、持ち手の部分にボーンを一つ設定します。
編集モードで Shift+A キーで新規ボーンが作成できます。
f:id:bluebirdofoz:20180206082256j:plain

作成したら、武器を右手で持たせるため、右手のボーンと親子関係で接続しておきます。
武器ボーン、右手の手のひらボーンの順に選択し、Ctrl+P キーで「ペアレントを作成」ウィンドウを表示して「オフセットを保持」を選択します。
f:id:bluebirdofoz:20180206082308j:plain

すると武器ボーンが右手の手のひらボーンの子関係に設定されます。
f:id:bluebirdofoz:20180206082318j:plain
以上でボーンの作成は完了です。次回はモデルとリグを関連付けさせる「スキニング」という工程に入ります。

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その46(X軸ミラーで左右対称なボーンの作成)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

ボーン作成の続きです。
f:id:bluebirdofoz:20180205003613j:plain
今回は腕と足などの左右対称なボーンを作成していきます。

モデリングのときと同じく左右対称なものを作成するときはミラーリング機能を使います。
ボーンの作成では編集モードの時に、ツールシェルフのオプションに現れる「X軸ミラー」にチェックを入れます。
f:id:bluebirdofoz:20180205003636j:plain

この状態で Shift+E キーで押出を行うと、X軸で対称なボーンが自動生成されます。
f:id:bluebirdofoz:20180205003645j:plain

また、このとき生成されたボーンはそれぞれ「~_L」「~_R」という名前が付けられます。
これは左右対称であることを示すボーンの命名規則なので、きちんと命名できているか常に確認するようにします。
プロパティウィンドウのオブジェクトデータ画面の表示パネルで「名前」にチェックを入れると、3Dビューにボーン名が表示されます。
f:id:bluebirdofoz:20180205003655j:plain

同じ手順で足のボーンも作成します。
f:id:bluebirdofoz:20180205003705j:plain

このとき、下半身ボーンから足の付け根までボーンを伸ばすことになりますが、人間の動きにこのボーンは必要ありません。
ボーンを選択してDELキーで削除してしまいます。
f:id:bluebirdofoz:20180205003717j:plain

削除すると、下半身ボーンから足の付け根のボーンまでの間に点線が表示されるようになります。
これは足の付け根ボーンの親が直接下半身ボーンに設定され、ボーン間の接続は切り離された状態であることを示しています。
f:id:bluebirdofoz:20180205003731j:plain

こういった親子間の接続状態を切り離したボーンの作成は、関係パネルの「接続」チェックを外すことでも行えます。
しかし、「接続」チェックを外す方法だと、左右対称なボーンには変更が自動では反映されません。
髪ボーンの作成で、更にもう一つの方法である「ペアレント解除」を試してみます。

ボーンの左右対称の押出を行い、片方のボーンを選択した状態で Alt+P キーで「ペアレントをクリア」メニューを表示します。
「コネクト解除」を選択すると、左右対称なボーンを含めて接続状態が切り離されます。
f:id:bluebirdofoz:20180205003746j:plain

後は手足と同じように押出で先のボーンを作成します。
f:id:bluebirdofoz:20180205003757j:plain

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その45(リグの作成)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

今回からモデルを動かすための構造を作成する工程(リギング)を行います。
f:id:bluebirdofoz:20180204232409j:plain
まずはボーンの作成から着手します。

まず全ての元となるボーンを作成します。
中央にボーンを作成するため、Shift+Cキーで3Dカーソルを中心に戻し、追加 -> アーマチュア -> 単一ボーンを選択します。
f:id:bluebirdofoz:20180204232421j:plain

そのままだとボーンが体のメッシュに埋まってしまい、位置が分かりにくいです。
プロパティウィンドウのオブジェクトデータ画面から、表示パネルで「レントゲン」にチェックを入れます。
f:id:bluebirdofoz:20180204232434j:plain
これでメッシュに埋まったボーンも見えるようになります。

ボーンから新たな子ボーンを作成してみます。
編集モードに入り、ボーンのテール側を選択した状態で押出(Eキー)を実行します。
f:id:bluebirdofoz:20180204232443j:plain
すると新たな子ボーンが生成されます。

作成された子ボーンを選択して、ボーン画面を開くと親ボーンに最初のボーンが設定されていることがわかります。
f:id:bluebirdofoz:20180204232457j:plain

作成したボーンを移動(Gキー)、拡大縮小(Sキー)を用いて上半身に埋め込みます。
また、押出(Eキー)を行い、頭部、下半身のボーンも作成します。
f:id:bluebirdofoz:20180204232511j:plain
まずは中心部分のボーンを作成しました。次回は腕と足などの左右対称なボーンを作成していきます。


以下、余談です。。

人型のモデルに関しては今回のようにボーンを一から自作するよりも、以前紹介したBlenderで提供されているHuman-Rigを使う手順が手っ取り早いと思われます。
bluebirdofoz.hatenablog.com
nn-hokuson.hatenablog.com
こちらを使えばさらにUnityのHumanoidのRigとも対応が取れますので、UnityChanなどとアニメーションを共有できます。

ただ、後々には人型以外のボーン設定等もトライしてみたいので、今回は書籍に従ったボーン設定を行います。
(下半身ボーンが下を向いているのでMMDのボーン構造に近い形になります)
あくまで勉強が主目的です。

Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]を試す その44(メートル法のサイズ調節)

本日は書籍「Blender標準テクニック[ローポリキャラクター制作で学ぶ3DCG]」の実施枠です。

前回でモデリングの工程を完了しました。
次はモデルを動かすための構造を作成する工程(リギング)に入ります。
この辺りで書籍の丁度半分に到達といったところです。

本日はそのリギングの前準備を行います。
f:id:bluebirdofoz:20180203194101j:plain

まず、後々の作業を効率化するため、オブジェクトを可能な限り統一します。
書籍の指定に従い、以下の6つのオブジェクトに統合(Ctrl+J)しました。
・頭部(ミラーモディファイアなしの部分)
・頭部(ミラーモディファイアありの部分)
・ドレス衣装ボディ
・バトル衣装ボディ
・バトル衣装の機械パーツ部分
・スラスター、武器
頭部(ミラーモディファイアなしの部分)以外のオブジェクトについて、左右のミラーモディファイアを除いてモディファイアをこのタイミングで反映します。
f:id:bluebirdofoz:20180203194110j:plain

次にモデルのサイズ調整です。現実のスケールに合わせたサイズへの調整を行います。
プロパティウィンドウ上段の「シーン」ボタンをクリックします。
画面内の「単位」パネルの「メートル法」をクリックすると、Blender全体の単位表示がメートル法に代わります。
f:id:bluebirdofoz:20180203194119j:plain

今回はキャラクターの身長を160cmと仮定します。
まず、160cmのガイドを設置します。追加 -> メッシュ -> 立方体 で指標用のオブジェクトを追加します。
f:id:bluebirdofoz:20180203194127j:plain

プロパティシェルフのトランスフォームで Z:1.6m の設定を行います。ついでに、位置も Z:0m に変更します。
f:id:bluebirdofoz:20180203194135j:plain
これで大きさの基準となるオブジェクトができあがりました。想像以上に大きく作っていたようです。

後はキャラクターの拡大縮小(Sキー)で大きさを調節します。このとき、拡張の基準がずれないよう気を付けます。
Shift+Cキーで3Dカーソルを中心に移動させて置き、ピポットポイントを3Dカーソルにしておくとよいそうです。
f:id:bluebirdofoz:20180203194143j:plain

レイヤで非表示にしているオブジェクトも全て選択した状態で拡大縮小を行い、サイズを調節します。
f:id:bluebirdofoz:20180203194151j:plain

丁度良い大きさに調節出来たら、現在のオブジェクトの大きさを基準の大きさに設定します。
オブジェクト -> 適用 または Ctrl+Aキー で適用パネルを表示し、「位置」と「拡大縮小」を選択します。
f:id:bluebirdofoz:20180203194200j:plain

以上でリギングの前準備は完了です。
f:id:bluebirdofoz:20180203194214j:plain

モデリングが終了したので、ついでに全てのオブジェクトのシェーディングを「スムーズ」にしておきます。
f:id:bluebirdofoz:20180203194221j:plain