BlenderでUnity用モデルを作るときのまとめ

# 概要

Unity用モデルを作るときのBlenderの操作メモ。
記入時点では、以下のバージョンを利用。

Blender: 2.74
Unity: 5.2.1f1

# 導入

他で色々あるので割愛。以下は特に参考になったもの。

基本操作、モデリング、UV : http://www.blender3d.biz/
ボーン、ウェイト、アニメーション : http://nvtrlab.jp/blog/column_group/group1

# 設定

ペンタブ有、テンキー無の場合を前提とする。

- UserPreference
    - Input
        - Emulate 3 Button Mouse : On （マウス中央クリックのエミュレート）
        - Emulate Numpad : On （テンキーのエミュレート）
        - Drag Threhold : 10px (ドラッグ判定距離。ペンタブの誤操作防止用）
        - Select With : Left（頂点などの選択の左右クリック反転）
    - Input / ショートカットキー割当
        - loop select : Ctrl + LMB （エミュレート有効化によりデフォルトの設定が使えなくなるため）
    - Interface
        - Zoom To Mouse Position : On （マウス位置でズーム）
        - Rotate Arround Selection : On （選択位置で回転）
        - International Fonts
            - Language : 日本語
            - Translate : ToolTipのみ（web上の資料が英語の場合が多いため）

# ショートカット

よく使うもののみ。忘れたらSpaceで検索。

## ほぼ共通
記載のような操作が求められる箇所では大体共通。

Command | Description
---- | ----
Ctrl + Z | 元に戻す
Ctrl + Shift + Z | やり直し
Ctrl + C | 選択した内容をコピー
Ctrl + V | コピーした内容をペースト
Enter | 特定操作の決定
Esc | 特定操作のキャンセル
T | ツールパネルの表示/非表示
N | 数値パネルの表示/非表示
X | 選択内容の削除
Alt + LMBドラッグ | 視点の回転（3DView以外は視点移動）
Alt + Shift + LMBドラッグ | 視点の移動
Alt + Ctrl + LMBドラッグ | 視点の拡大・縮小
G | 選択内容の移動
R | 選択内容の回転
S | 選択内容の拡大/縮小
LMB | 選択
Shift + LMB | 複数選択
C | 範囲選択
B | 矩形選択
A | 全選択・全選択解除
Ctrl + L | 選択範囲と連結する箇所を選択
Ctrl + I | 選択範囲の反転
Ctrl + LMB | ループ選択 （デフォルトはAlt + LMB）
H | 選択範囲を隠す
Alt + H | 隠した範囲を表示
Alt + B | 短形選択して非表示/表示

- 元に戻す/やり直しは、ちょっと癖がある。基本は現在のモードで変更した内容だけが戻る
- 移動/回転/拡縮は直後にX/Y/Zを押すことで軸を制限できる。

## 3D View

### メッシュの加工

ショートカット集: gifアニメで一覧化されていて直感的に分かりやすい
http://riotoqll.hatenablog.com/entry/2014/02/10/162604

Command | Description
---- | ----
F | 面、辺の作成
E | 押し出し
Alt + E | 押し出し（押し出しメニューを表示）
V | 切り裂き
Alt + V | 切り裂き（面を補完する）
Y | 切り離し
P | 別オブジェクトに分離
J | 頂点間に辺を作成
G + G | 選択した頂点を辺に沿ってスライド
I | 差し込み
K | ナイフ
Alt + M | 頂点を結合
Ctrl + R | ループカット
Ctrl + B | ベベル
Ctrl + T | 四角形を三角形に
Alt + J | 三角形を四角形に
Alt + S | 収縮、膨張
Shift + D | 複製
Ctrl + J | 複数オブジェクトを結合する
W -> Subdivide | 頂点の細分化
W -> Smooth | 頂点をなめらかに
W -> Remove Doubles | 重複した頂点を削除
Ctrl + E -> Bridge Edge Loops | ループブリッジ
Ctrl + F -> Solidify | 法線方向に押し出し

### Poseモード

Command | Description
---- | ----
Ctrl + C | 選択したボーンのポーズをコピー
Ctrl + V | 選択したボーンにポーズをペースト
Ctrl + Shift + V | 選択したボーンにポーズをX軸で反転してペースト

### メニュー

Command | Description
---- | ----
Ctrl + V | 頂点(vertex) に関するメニュー
Ctrl + E | 辺(edge) に関するメニュー
Ctrl + F | 面(face) に関するメニュー
W | スペシャルメニュー
Space | メニュー検索

### その他

Command | Description
---- | ----
TAB | モード切替
Shift + C | 3Dカーソルを原点に戻す
Shift + TAB | スナップ機能の有効/無効
M | 選択オブジェクトを別のレイヤーに移動
O | プロポーショナルエディットの有効/無効
Ctrl + Space | マニピュレータの表示/非表示

## UV Editor

### Paintモード

Command | Description
---- | ----
S | スポイト

# UV、テクスチャ

## さくっと色塗りまでやる方法

1. 複数のマテリアルに色を付けて、ざっくり色分けする
2. UV -> Smart UV Project で自動UV展開（モノによっては普通にUnwrap）
3. テクスチャ用に透明な画像を用意、UV Editorに表示しておく
4. Render -> Base -> Texture でマテリアルの色をテクスチャに反映
5. 3D viewのTexture Paintモードでぺたぺた塗る

## テクスチャペイントでよく使いそうなブラシ設定

- Tools -> Curve でボケ具合の調整。逆凹の字のカーブにするとベタ塗りできる
- Tools -> Radius : ペンのサイズ
- Tools -> St : 不透明度
- Options -> Project Paint -> Cull : 見えているメッシュにだけ塗る

## 他

- 外部に保存したテクスチャをblender上で編集した場合、blendファイルとは別で保存が必要（Alt + S）
    - 自動保存スクリプトとか作っている人がいた
    - http://blender.stackexchange.com/questions/13407/auto-save-images-along-with-blend

# ボーン、ウェイト

## Rigify

導入: http://qiita.com/edo_m18/items/8151d328f42458f9d92a
より細かな使い方: http://dskjal.com/blender/introduction-to-rigify.html
Rigify Type別の特性: http://ch.nicovideo.jp/tomb_saikaya/blomaga/ar937150

## ボーンを表示したままウェイトを設定する手順

1. ボーンを選択して、Poseモードにする
2. Weightモードにする
3. ボーンをCtrl + クリックすると、ウェイトを追加するボーンを変更できる

## Weightモードでウェイトを付けていない頂点にウェイトが付くことがある

多分、以下でかなり軽減される。

- ペイントマスクを使うようにする
- ツールパネル -> Tools -> Auto Normalizeをオフにする。代わりに全部塗った後にWeight Tools > Normalize Allを使う
- ツールパネル -> Options -> Show Zero WeightsをActiveにする

参考: http://ch.nicovideo.jp/tomb_saikaya/blomaga/ar1013084

## ウェイトを塗った後でRigifyのボーン位置を調整する

generateした後のボーン位置調整はかなり難しそうなので、generate前のバックアップを取っておいて
最新版からウェイトだけをコピーすると良い感じ。

1. generate前のファイルでMetaRigのボーン位置を調整し、generateする
2. 最新版のファイルのオブジェクトを1のファイルにコピぺする
3. コピー元のオブジェクト -> コピー先のオブジェクトの順に複数選択する
4. Weightモードにして、ツールパネル -> Weight Tools -> Transfer Weights を実行する
5. ツールパネル下部の詳細設定でSourceを「All Layers」に変更

## 他

- IKの回転制御はLimit Rotationではなくボーンのメニューから行う
- IKにPoleターゲットを仕込む場合は、ボーンを正しい曲げ方向に微妙に曲げておく
    - Rigifyなどでも基本同じにしておくと、意図しない方向への曲げを防げる

# アニメーション

## キーフレームを別のオブジェクトにコピーする

1. コピー元のオブジェクトを選択する
2. ActionEditor上でコピーするキーフレームを選択し、Ctrl+C
3. 1,2の選択を解除し、コピー先のオブジェクトを選択する
4. ActionEditor上で現在のフレームをコピーしたいフレームまで移動させ、Ctrl+V

## 他

- アクションはNLA Editorで使わない限り、表示中のアクション以外は削除される
    - Unity用の場合、アクションのfake_userを有効（ファイル名右の「F」を押す）にしておくと良い

# Unity向け

## Unity用にRigifyを調整する

http://blawat2015.no-ip.com/~mieki256/diary/201311021.html

## Unity用のアニメーション付きFBX出力

.blendファイルをそのまま読み込ませたり
Binaryモードで出力するとikが綺麗に反映されない/ファイルが大きくなる等の問題が出てしまった。
最終的に以下で対処。

1. アクションの開始フレームを1に揃える
2. アクションの開始/終了フレームに全ボーンのキーを打つ
3. ASCiiモードで出力する

# 他

## 3D Viewの背景色を一時的に変える

ワールド設定を変えるだけ（Propertiesの World -> Horizon Color）

# 解消できていない問題

- Duplicate Linkedで複製したオブジェクトの位置がblendファイルを開き直すとリセットされる
- 左右対称だけど実配置上はxyz軸を中心にできない場合の対処

# 参考リンク

表裏で別々のUVを貼る
http://stonefield.cocolog-nifty.com/higurashi/2011/09/memo-dc5d.html
=> Unityに表示されないので、Unity側のシェーダーでよしなにやるか、マテリアル2つ付けるのが良いかも（調査中）

## 整理中

http://matome.naver.jp/odai/2142353659217305601
http://matome.naver.jp/odai/2142372635919370301
http://ch.nicovideo.jp/hiiragik
http://docs.unity3d.com/ja/current/Manual/BlenderAndRigify.html