<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>SOU･COLLE</title>
  <id>http://soucolle.jp/</id>
  <link href="http://soucolle.jp/"/>
  <link href="http://soucolle.jp/feed.xml" rel="self"/>
  <updated>2019-05-01T22:00:00+00:00</updated>
  <author>
    <name>Blog Author</name>
  </author>
  <entry>
    <title>BlenderでUnity向けにFBXをエクスポート：アーマチュア（ボーン）編</title>
    <link rel="alternate" href="http://soucolle.jp/workflow_of_export_the_fbx_with_bone_from_blender_to_unity/"/>
    <id>http://soucolle.jp/workflow_of_export_the_fbx_with_bone_from_blender_to_unity/</id>
    <published>2019-05-01T22:00:00+00:00</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;前回（&lt;a href="/workflow_of_export_only_the_mesh_from_blender_to_unity/"&gt;BlenderでUnity向けにFBXをエクスポート：メッシュ編&lt;/a&gt;）から随分と経ちましたが，今回はアーマチュア（ボーン）を含めたUnity向けのFBXエクスポートについてのまとめです&lt;/p&gt;

&lt;p&gt;リグを組む前から注意する点があるので，今回も順を追ってまとめていきます。&lt;br /&gt;
使用バージョンは2.79b。&lt;/p&gt;

&lt;h2 id="準備"&gt;準備&lt;/h2&gt;
&lt;h3 id="手動でアーマチュアをunityの座標軸に合わせる"&gt;手動でアーマチュアをUnityの座標軸に合わせる&lt;/h3&gt;
&lt;p&gt;アーマチュアはメッシュと違い，エクスポート時のトランスフォームを適用する機能がありません。なのでUnityで配置した時に「Transform」の「Rotation X」に-90のオフセット値が加えられてしまいます。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/rotated_armature_with_reset_the_rotation.gif" alt="「Rotation」の値をリセットすると転がるモデルデータ" /&gt;&lt;/p&gt;

&lt;p&gt;これを相殺するため，Blender側であらかじめ「回転 X」に［90］を入力した状態にしておきます。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/stood_armature_with_set_a_90_to_rotation_x.gif" alt="アーマチュアの回転Xに90が入力され，人型のボーンが直立している" /&gt;&lt;/p&gt;

&lt;p&gt;残念ですが，今のところこの対処法しかありません。必ずリグのコントローラーやアニメーションを制作する前に行います。後でこの対処をとるのは困難です。&lt;/p&gt;

&lt;h3 id="ルートボーンを配置"&gt;ルートボーンを配置&lt;/h3&gt;
&lt;p&gt;必ずアーマチュア直下の原点にルートボーンを1つだけ配置します。Unityにインポートすると，このアーマチュア直下のボーンが「Skinned Mesh Renderer」の「Root Bone」として自動でアサインされます。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/top_layer_bone_is_assigned_to_root_bone.png" alt="「Root Bone」に配置したルートボーンがアサインされている" /&gt;&lt;/p&gt;

&lt;p&gt;ルートボーンは垂直か水平にしておきます。自分の場合は，Blenderでボーンを追加した時の標準が上なので，そのまま垂直に上を向かせています（後述する「プライマリボーン軸／セカンダリボーン軸」の設定に関わってきます）。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/set_root_bone_with_vertical_up.png" alt="上向きに配置されたルートボーン" /&gt;&lt;/p&gt;

&lt;h3 id="頂点に影響するボーン数の制限"&gt;頂点に影響するボーン数の制限&lt;/h3&gt;
&lt;p&gt;Unityでは，頂点が影響を受けることのできるボーンの数は，4本までに制限されます。デフォルトでは「Skinned Mesh Renderer」の「Quality」は［Auto］となっていますが，ゲーム制作では，2本に収めるのが一般的なようです。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;ゲームでは通常、ビジュアル品質とパフォーマンスの妥協点となる、2本でのウェイトを使用します - &lt;a href="https://docs.unity3d.com/ja/current/Manual/class-SkinnedMeshRenderer.html"&gt;スキンメッシュレンダラー - Unity マニュアル&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;きちんと負荷を気に掛ける場合は，明示的に設定してコントロールしたほうが良いです。&lt;/p&gt;

&lt;h2 id="エクスポートの設定"&gt;エクスポートの設定&lt;/h2&gt;
&lt;h3 id="メインタブ"&gt;メインタブ&lt;/h3&gt;
&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/main_tab_items.png" alt="メインタブの設定項目" /&gt;&lt;/p&gt;

&lt;p&gt;アーマチュアのトグルをオンにしている以外は，前回のメッシュの時と設定は同じです。画像の通り設定しておけば大体の場面で問題ないかと思います。&lt;/p&gt;

&lt;p&gt;設定がアーマチュアに対して大きく影響がある項目は「拡大縮小」「スケールを適用」です。前述しましたが，メッシュの時に座標を変換するのに使った「！実験的機能！トランスフォームの適用」は，アーマチュアに対しては適用されません。&lt;/p&gt;

&lt;h3 id="アーマチュアタブ"&gt;アーマチュアタブ&lt;/h3&gt;
&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/armature_tab_items.png" alt="アーマチュアタブの設定項目" /&gt;&lt;/p&gt;

&lt;p&gt;アーマチュア専用の設定項目です。重要なのでひとつずつ見ていきます。&lt;/p&gt;

&lt;h4 id="デフォームボーンのみ"&gt;デフォームボーンのみ&lt;/h4&gt;
&lt;p&gt;ボーンの「変形」がオンになっているボーンのみをエクスポートの対象にすることができます。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/deformer_of_bone_property.png" alt="ボーンのプロパティ「変形」" /&gt;&lt;/p&gt;

&lt;p&gt;主な用途は，Unityで使わないコントローラーのボーンなどをエクスポートの対象外にします。ちなみにボーンの「変形」がオフでも，オンの上層にあるボーンはすべてエクスポートの対象に含まれます。リグの構造に注意してください。&lt;/p&gt;

&lt;h4 id="リーフボーン追加"&gt;リーフボーン追加&lt;/h4&gt;
&lt;p&gt;末端の各ボーンごとに，ヘッドの代わりとして子ボーン（ゲームオブジェクト）が追加されます。&lt;br /&gt;
BlenderとUnityのボーンは仕組みが異なり，オフでエクスポートした場合は，末端のボーンにヘッドがありません。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/bone_with_added_for_define_the_bone_head.png" alt="ゲームオブジェクト名に［.end］が追記されたヘッドを示す子ボーン" /&gt;&lt;/p&gt;

&lt;h4 id="プライマリボーン軸セカンダリボーン軸"&gt;プライマリボーン軸／セカンダリボーン軸&lt;/h4&gt;
&lt;p&gt;ボーンの軸（ロール）をインポートする環境向けに定義します。&lt;br /&gt;
アーマチュアの［表示］にある［座標軸］をオンにして，ルートボーンとUnityの座標軸に照らし合わせて設定します。ルートボーンのノーマル座標軸を参考にしてもOKです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2019/05/02_workflow_of_export_the_fbx_with_bone_from_blender_to_unity/images/the_coordinate_axis_of_unity_and_blender.png" alt="UnityとBlenderの座標軸" /&gt;&lt;/p&gt;

&lt;p&gt;今回の場合，軸は上を向いているので，「プライマリボーン軸」をUnityの上にあたる［Y軸］に設定。「セカンダリボーン軸」はUnityの座標軸でいう「-X」を向いていますが，Blenderと異なる座標系を考慮して，反対にあたる［X軸］を設定します。&lt;/p&gt;

&lt;h4 id="アーマチュアfbxノードタイプ"&gt;アーマチュアFBXノードタイプ&lt;/h4&gt;
&lt;p&gt;構造に関する設定のようですが，調べてみても詳細がよくわかりませんでした（Mayaのアトリビュートに関わる設定？）。&lt;/p&gt;

&lt;p&gt;どう影響するかだけ試しましたが，どの項目に変更してもUnityでの影響は何も確認できなかったので，［NULL］のままでも問題は無いと思います。&lt;/p&gt;

&lt;h2 id="おわりに"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;まだリリースされていませんが，本手順をBlender 2.8でも試してみました。エクスポートの設定項目はほとんど変わったところはなく，普通にエクスポートでき，インポートもできました。&lt;/p&gt;

&lt;p&gt;次回まとめるならアニメーションかなと思っています。シェイプキー（ブレンドシェイプ）はエクスポートしたことが無いので，イチから調べつつ書くことになるのでもっと先になります。&lt;/p&gt;

&lt;h3 id="参考"&gt;参考&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="/workflow_of_export_only_the_mesh_from_blender_to_unity/"&gt;BlenderでUnity向けにFBXをエクスポート：メッシュ編&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.unity3d.com/ja/current/Manual/class-SkinnedMeshRenderer.html"&gt;スキンメッシュレンダラー - Unity マニュアル&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.blender.org/manual/en/latest/rigging/armatures/bones/structure.html"&gt;Structure — Blender Manual&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.blender.org/manual/en/latest/addons/io_fbx.html"&gt;Autodesk FBX — Blender Manual&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://help.autodesk.com/view/FBX/2016/ENU/?guid=__files_GUID_FCD71AFF_F753_4D58_B96E_453ED84BF5C4_htm"&gt;Help: FBX Node Attributes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Unity UIのToggleコンポーネントに複数のオングラフィックを設定する</title>
    <link rel="alternate" href="http://soucolle.jp/include_multi_game_objects_in_graphic_of_toggle/"/>
    <id>http://soucolle.jp/include_multi_game_objects_in_graphic_of_toggle/</id>
    <published>2018-12-22T01:00:00+00:00</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;&lt;a href="https://qiita.com/advent-calendar/2018/cluster"&gt;Cluster,Inc. Advent Calendar 2018 - Qiita&lt;/a&gt;の22日目の記事です。&lt;/p&gt;

&lt;p&gt;実用的なネタではないですが，Toggleコンポーネントに関するちょっとした小ネタを。通常，Toggleコンポーネントはオンの時に画像を表示・非表示するだけですが，Maskコンポーネントを併用することで，擬似的に画像以外も対象へ含めることができます。&lt;br /&gt;
&lt;/p&gt;

&lt;h2 id="組み方"&gt;組み方&lt;/h2&gt;
&lt;p&gt;チェックマークではなく，背景の色でオンになっていることがわかるトグルボタンを組みます。&lt;/p&gt;

&lt;p&gt;全体を埋める背景を設定し，ToggleコンポーネントのTargetとしてアサインします。&lt;br /&gt;
Graphicにアサインする画像も同じ要領で設置して，選択されていることがわかるよう色を変更します。ちなみにどちらもImageコンポーネントがアタッチされていなければアサインすることができません。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/22_include_multi_game_objects_in_graphic_of_toggle/images/toggle_button_settings.gif" alt="ボタン全体を埋めるGraphicのトグルボタン" /&gt;&lt;/p&gt;

&lt;p&gt;今回はボタンを対象に含めます。Graphicの対象になっているゲームオブジェクト以下に表示したいボタンを設置します。&lt;br /&gt;
この時点ではトグルボタンをオン・オフしても，Graphicとしてアサインされている画像だけが非表示になり，ボタンは表示されたままです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/22_include_multi_game_objects_in_graphic_of_toggle/images/add_button_in_toggle_button.gif" alt="トグルボタン以下にボタンを追加" /&gt;&lt;/p&gt;

&lt;p&gt;子階層のゲームオブジェクトも非表示の対象に含めるには，Graphicの対象になっているゲームオブジェクトにMaskコンポーネントをアタッチします。&lt;br /&gt;
実行すると，不思議なことに子階層のゲームオブジェクトすべてが非表示になります。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/22_include_multi_game_objects_in_graphic_of_toggle/images/add_mask_component.gif" alt="Maskコンポーネントを追加して擬似的にボタンをGraphicの対象に含めた" /&gt;&lt;/p&gt;

&lt;p&gt;トグルボタンのように複数の状態を持つコンポーネントは他にもありますが，この方法で子階層のゲームオブジェクトを表示・非表示することはできません。&lt;/p&gt;

&lt;p&gt;大体のコンポーネントは，コンポーネント自身のActive切り替えることによって表示をコントロールしているようです。しかし，トグルボタンは例外的にアルファが関係した処理がされているようで，このようにMaskコンポーネントを使うことで子階層を表示と非表示の状態に巻き込むことができました。&lt;/p&gt;

&lt;h2 id="あとがき"&gt;あとがき&lt;/h2&gt;
&lt;p&gt;このネタが実用的ではない理由は，アルファで処理されているだけなので，ボタンのRaycast targetが生きたままだからです。なのでボタンは見えなくともRayをブロックしてしまいます。&lt;/p&gt;

&lt;p&gt;これをそのまま使いたい場合，本実装ではボタンに対してCanvas Groupをアタッチし，一時的にRaycast targetをオフにするなどの実装が必要かと思います。ただそこの実装を入れるくらいならボタンを普通に非アクティブとかにしたほうがきっと楽ですね😇&lt;/p&gt;

&lt;p&gt;リストで選択された項目に，アクションを起こすボタンを表示するUIは，割とあるパターン（というか今回気が付いたのもこのUIを組もうとしたから）なので，プログラムによる実装無しで，仮にパッと動きやフローを確認したい時くらいには使えそうかなと思います。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>BlenderでUnity向けにFBXをエクスポート：メッシュ編</title>
    <link rel="alternate" href="http://soucolle.jp/workflow_of_export_only_the_mesh_from_blender_to_unity/"/>
    <id>http://soucolle.jp/workflow_of_export_only_the_mesh_from_blender_to_unity/</id>
    <published>2018-12-04T15:00:00Z</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;この記事は&lt;a href="https://adventar.org/calendars/2987"&gt;Blender Advent Calendar 2018 - Adventar&lt;/a&gt;に参加しています。本日は5日目。&lt;br /&gt;
前回は&lt;a href="https://twitter.com/sakura_rtd"&gt;sakura🌸(@sakura_rtd)&lt;/a&gt;さんの&lt;a href="https://rt3dcg.blogspot.com/2018/12/blender-material-making-youtube.html"&gt;Blender | プロシージャルマテリアル解説動画はじめました - Road to 3DCG&lt;/a&gt;でした。&lt;/p&gt;

&lt;p&gt;BlenderとUnityでの制作にもだいぶ慣れてきたので，BlenderでUnity向けにFBXをエクスポートについてまとめます。&lt;/p&gt;

&lt;p&gt;アーマチュア（ボーン）やアニメーションまでは含めず，今回は&lt;strong&gt;メッシュだけをエクスポートする時の話に絞っています。&lt;/strong&gt;その他の話も近いうちにまとめようと思っているので，&lt;a href="http://soucolle.jp/feed.xml"&gt;RSS&lt;/a&gt;をチェックしておいてもらえると嬉しいです。&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;追記（2019/04/29）&lt;/dt&gt;
  &lt;dd&gt;アーマチュア（ボーン）についてもまとめました。&lt;/dd&gt;
  &lt;dd&gt;&lt;a href="/workflow_of_export_the_fbx_with_bone_from_blender_to_unity/"&gt;BlenderでUnity向けにFBXをエクスポート：アーマチュア（ボーン）編&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;主に気をつけるのは「単位」「座標系の違い」「インポートできる内容」「最終出力の把握」です。&lt;br /&gt;
実際のワークフローに近い順を追いながら詳細を書いていきます。作業の流れは以下の通り。使用バージョンは2.79bです。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;制作前に注意すること&lt;/li&gt;
  &lt;li&gt;制作で気にかけること&lt;/li&gt;
  &lt;li&gt;エクスポート前の確認&lt;/li&gt;
  &lt;li&gt;エクスポートの設定&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="制作前に注意すること"&gt;制作前に注意すること&lt;/h2&gt;
&lt;h3 id="単位をメートルにする"&gt;単位をメートルにする&lt;/h3&gt;
&lt;p&gt;BlenderとUnityの単位は，1ユニット=1メートルで同一ですが，「プロパティ」の「シーン」から単位を明示的にしたほうが良いです。Unityへインポートした時，File Scaleに微量の端数が出ることがあります。&lt;/p&gt;

&lt;p&gt;単位の設定はメートルのままでもOKですが，アニメーションの精度を高くしたいなら倍数を&lt;code&gt;0.01&lt;/code&gt;に設定して，1ユニット=1センチメートル，あるいはそれ以下にします。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/set_unit_scale.png" alt="単位をメートルにして倍数を0.01に設定する" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;単位は，絶対に後から変更しないほうが良い&lt;/strong&gt;です。特にIKアニメーションなどをつけた後だと修正がとても困難です。個人・チームプロジェクトに関係なく，初期から一貫した設定をしておくのがおすすめです。&lt;/p&gt;

&lt;h3 id="y軸をオブジェクトの正面として扱う"&gt;&lt;del&gt;+Y軸をオブジェクトの正面として扱う&lt;/del&gt;&lt;/h3&gt;
&lt;p&gt;&lt;del&gt;BlenderとUnityの座標系の違いとエクスポートの仕様が相まって，エクスポートするFBXの座標系をUnityと完全に合わせることはできないです（詳細は後述）。この差を吸収するには，通常Blenderでは［-Y方向］を正面として扱いますが，便宜上［+Y方向］を正面としてデータを制作しておきます。&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;del&gt;&lt;a href="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/change_before_and_behind.gif"&gt;スザンヌの正面を+Y方向に向ける&lt;/a&gt;&lt;/del&gt;&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;追記（2019/02/02）&lt;/dt&gt;
  &lt;dd&gt;この項は，Unityの正面を勘違いしたことによるものでした。この対応を行う必要はありません。&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2 id="制作で気にかけること"&gt;制作で気にかけること&lt;/h2&gt;
&lt;h3 id="同一オブジェクトを複製する場合はリンクを使う"&gt;同一オブジェクトを複製する場合はリンクを使う&lt;/h3&gt;
&lt;p&gt;単にオブジェクトを複製すると，同一の形状であるにも関わらず無駄に個別のメッシュが増えてしまいます。&lt;/p&gt;

&lt;p&gt;Unityに限らず注意しておきたい点です。メッシュの数が描画負荷に関わってくるので，同一の形状であるならリンクで複製して，同じメッシュデータとしておくのが望ましいです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/duplicate_objects_linked.gif" alt="オブジェクト（メッシュ）をリンクで複製する" /&gt;&lt;/p&gt;

&lt;h3 id="シェーディングの混在は辺を分割する"&gt;シェーディングの混在は辺を分割する&lt;/h3&gt;
&lt;p&gt;Unityでシェーディングにフラットとスムースを混在させるには，辺を分割して表現します。シャープと辺分離のモディファイアーを使い，エクスポートの時に分割（適用）すれば管理で苦労することはありません。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/edge_split_modifier_to_sharp.gif" alt="エッジにシャープを設定して，辺分離のモディファイアで，シェーディングにフラットとスムーズを混在させる" /&gt;&lt;/p&gt;

&lt;h3 id="uvマップは1つ"&gt;UVマップは1つ&lt;/h3&gt;
&lt;p&gt;Unityで独自のシェーダーでも使用しない限りは，UVマップは1つにします。利用できないわけではないですが，Unityの標準的なシェーダー（Standard.shader）も2つ目のUVマップをメインで利用することは想定されていません。&lt;/p&gt;

&lt;p&gt;ポリゴンごとにマッピングを変えたい場合は，マテリアルを複数設定して割り当てるのが良いと思います。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/set_multi_material_to_one_uv_map.gif" alt="マテリアルを複数設定してポリゴンごとに割り当てる" /&gt;&lt;/p&gt;

&lt;h3 id="マテリアルはunityで設定する"&gt;マテリアルはUnityで設定する&lt;/h3&gt;
&lt;p&gt;Blenderでマテリアルを設定しても，ほとんどの項目はUnityにインポートされません（ディフューズカラーがアルベドカラーとして設定される程度）。前述の通り，ポリゴンごとに割り当てるマテリアルを設定すれば十分かと思います。&lt;/p&gt;

&lt;h3 id="エクスポートされる頂点ポリゴン数を把握しておく"&gt;エクスポートされる頂点，ポリゴン数を把握しておく&lt;/h3&gt;
&lt;p&gt;モディファイアーは，最終的に適用された状態でエクスポートされます。再分割曲面やべベルなど，サブディビジョン・サーフェスでしかモデリングを経験していないと最終的な頂点，ポリゴン数を勘違いしがちです。&lt;/p&gt;

&lt;p&gt;また，インポートする時にポリゴンはすべて三角面化されます。トポロジーに拘りが無いならエクスポートやインポートの時の自動処理にまかせれば十分です。そうでないなら，自分で分割しておくか，三角面化のモディファイアーで管理するのがおすすめです。&lt;/p&gt;

&lt;p&gt;モディファイアーは，都度適用しなくても設定で適用後の数値を確認することができるので，思うほど管理コストは高くないです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/check_the_number_of_polygons.gif" alt="モディファイアー適用後の数値をチェック" /&gt;&lt;/p&gt;

&lt;h2 id="エクスポート前の確認"&gt;エクスポート前の確認&lt;/h2&gt;
&lt;h3 id="複数のマテリアルを設定した時は頂点ソートに注意する"&gt;複数のマテリアルを設定した時は頂点ソートに注意する&lt;/h3&gt;
&lt;p&gt;Unityにインポートするメッシュのマテリアルの順序は，頂点のソート順によって決められています。FBXをエクスポートする前には，エディットモードに入って頂点を選択し，「メッシュ要素をソート」で自分の意図したソート順にしておくのが望ましいです。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2017/02/21_sort_material_order_of_unity_in_blender/images/change_material_order.gif" alt="メッシュ要素をソートでマテリアル順に変更する" /&gt;&lt;/p&gt;

&lt;p&gt;以前この内容について書いたので，詳しい方法は以下の記事を参照してみてください。&lt;/p&gt;

&lt;p&gt;&lt;a href="../sort_material_order_of_unity_in_blender"&gt;Unityのマテリアルリストの順序をBlenderで制御する&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ただ，この方法では解決しないというケースも見かけました。上記で無理だった場合は，下記のリンク先も参照してみてください。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bluebirdofoz.hatenablog.com/entry/2017/07/31/001417"&gt;Blenderで作成した3DモデルをUnityに取り込む その４ - MRが楽しい&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="トランスフォームの値を確認する"&gt;トランスフォームの値を確認する&lt;/h3&gt;
&lt;p&gt;エクスポートに限った話ではないですが，オブジェクトモードでのトランスフォームの値が意図したものか確認します。&lt;/p&gt;

&lt;p&gt;単体でオブジェクトをエクスポートする時，ほとんどの場合は，位置／回転／拡大縮小はすべて初期化された状態が望ましいでしょう。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/reset_transform_parameters.png" alt="すべてのトランスフォームが初期化されている" /&gt;&lt;/p&gt;

&lt;h2 id="エクスポートの設定"&gt;エクスポートの設定&lt;/h2&gt;
&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/main_settings_of_fbx_export.png" alt="FBX Exporterのメインの設定" /&gt;&lt;/p&gt;

&lt;p&gt;設定の内容は上記の画像の通りです。今回はメッシュのみなので，エンプティやカメラなど，余計な項目はすべてトグルをオフにしてあります。以降，大事な項目だけ詳細を説明していきたいと思います。&lt;/p&gt;

&lt;h3 id="単位の情報を追加"&gt;単位の情報を追加&lt;/h3&gt;
&lt;p&gt;「スケーリング（拡大縮小）」の値を［1］のまま右端にあるトグルボタンをオンにします（最近のバージョンはこれがデフォルト値でしょうか？）。&lt;br /&gt;
このトグルボタンをオンにすると，シーンタブで設定した単位の情報がエクスポートされるFBXに追加されます。「スケールを適用」の項目は&lt;del&gt;［全ローカル］のままでOKです&lt;/del&gt;［FBX単位スケール］に変更します。&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;追記（2019/04/29）&lt;/dt&gt;
  &lt;dd&gt;単位の設定を行なっていない場合，アーマチュアを含めたエクスポートで，スケール100をかけられてしまうので，［FBX単位スケール］を基本として扱うのが無難そう&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3 id="座標系の変換"&gt;座標系の変換&lt;/h3&gt;
&lt;p&gt;BlenderとUnityでは向きだけではなく，基準となる座標軸の系統も異なります。&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;Blender&lt;/dt&gt;
  &lt;dd&gt;右手系Z-up（Y Forward）&lt;/dd&gt;
  &lt;dt&gt;Unity&lt;/dt&gt;
  &lt;dd&gt;左手系Y-up（Z Forward）&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;座標系を変換するには，「前方」と「上」で回転を設定して，さらに「！実験的機能！トランスフォームの適用」を使用します。ただ，右手と左手をどう回転させても向きが一致しないのと同じく，Unityの座標軸の値を設定しても，向きを一致させることができません。&lt;/p&gt;

&lt;p&gt;そこで「前」を&lt;strong&gt;［-Zが前方］&lt;/strong&gt;とすることで辻褄を合わせます。「上」はそのまま揃うので&lt;strong&gt;［Yが上］&lt;/strong&gt;に設定し，「！実験的機能！トランスフォームの適用」を［オン］にします。これでインポートした時にトランスフォームの回転に余計な値が入らず，ゲームオブジェクトがUnityの正面&lt;del&gt;（-Z軸方向）&lt;/del&gt;を向く状態にできます。&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;追記（2019/02/02）&lt;/dt&gt;
  &lt;dd&gt;Unityの正面は，+Z軸方向です&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3 id="ジオメトリタブの設定確認"&gt;ジオメトリタブの設定確認&lt;/h3&gt;
&lt;p&gt;モディファイアーを自身で適用していない場合は，ジオメトリタブの設定「モディファイアーを適用」「モディファイアーのレンダー設定を使用」がオンになっているか確認します。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/12/05_workflow_of_export_only_the_mesh_from_blender_to_unity/images/geometry_settings_of_fbx_export.png" alt="FBX Exporterのジオメトリタブの設定" /&gt;&lt;/p&gt;

&lt;h2 id="おわりに"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;Blenderでいい感じにFBXをエクスポートする手順を探るのは，なかなか大変でした。アーマチュア（ボーン）が絡むともっと大変（というかいい感じにはならない……）。&lt;/p&gt;

&lt;dl&gt;
  &lt;dt&gt;追記（2019/04/29）&lt;/dt&gt;
  &lt;dd&gt;アーマチュア（ボーン）についてもまとめました。&lt;/dd&gt;
  &lt;dd&gt;&lt;a href="/workflow_of_export_the_fbx_with_bone_from_blender_to_unity/"&gt;BlenderでUnity向けにFBXをエクスポート：アーマチュア（ボーン）編&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;BlenderでのFBXエクスポートは，ライセンスの関係上で公式のSDKを使用していません。イレギュラーなワークフローになるのはしょうがないです。今後もこの状況は変わらないと思うので，正式なSDKを使用したエクスポーターを搭載したソフトを使用できる場合，そちらを軸に制作するのがおすすめです。&lt;/p&gt;

&lt;p&gt;今後に期待したい点として，glTFというファイル形式があります。Blenderは2.8，Unityは2019.nで使用できるようになる予定です。ライセンス上も問題ないので，ワークフローを乱さずに済むかもしれません。そうなればBlenderではFBXではなく，glTFでのエクスポートが主流になるかもしれませんね。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adventar.org/calendars/2987"&gt;Blender Advent Calendar 2018 - Adventar&lt;/a&gt;は，まだ空いている箇所があるのでお時間ある方は是非参加を！&lt;/p&gt;

&lt;p&gt;次回は6日目，&lt;a href="https://twitter.com/lab1092"&gt;MITSUDA Tetsuo(@lab1092)&lt;/a&gt;さんで&lt;a href="https://lab1092.wordpress.com/2018/12/06/2-79-to-2-80beta-%E7%A7%BB%E8%A1%8C%E3%83%A1%E3%83%A2/"&gt;2.79 to 2.80Beta 移行メモ | まんださんち&lt;/a&gt;です。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Unity UIで余白のサイズが均等なレイアウトを組む</title>
    <link rel="alternate" href="http://soucolle.jp/set_evenly_space_in_unity_ui/"/>
    <id>http://soucolle.jp/set_evenly_space_in_unity_ui/</id>
    <published>2018-10-22T00:00:00+00:00</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;Unity UIのHorizontal Layout GroupとVertical Layout Groupはサッと均等に並べることはできるけれど，余白のサイズが均等なレイアウトを組みたい時には，自分で余白を作る必要がある。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/10/22_set_evenly_space_in_unity_ui/images/evenly_size_layout_and_evenly_space_layout.png" alt="オブジェクトが均等な余白を持つレイアウトと余白のサイズが均等なレイアウトの図" /&gt;&lt;/p&gt;

&lt;h2 id="まずは並べただけの状態を組んでみる"&gt;まずは並べただけの状態を組んでみる&lt;/h2&gt;

&lt;p&gt;Horizontal Layout Groupで横に並べているだけ。各ゲームオブジェクトの幅をChild Force Expandを使って均等に拡張しているだけなので端の余白が短くなる。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/10/22_set_evenly_space_in_unity_ui/images/basic_horizontal_layout.gif" alt="Hrizontal Layout GroupのChild Force Expandで組んだレイアウトのイメージ" /&gt;
&lt;/figure&gt;

&lt;h2 id="空のゲームオブジェクトを使って余白を作る"&gt;空のゲームオブジェクトを使って余白を作る&lt;/h2&gt;

&lt;p&gt;Spacingは子オブジェクト同士の間隔を調整するだけなので意味が無い。なので空のゲームオブジェクトを入れることで余白を自分でつくる。&lt;/p&gt;

&lt;p&gt;まず，幅の管理を子階層のゲームオブジェクトにまかせる。Horizontal Layout GroupのChild Force Expandをオフ，Child Controls Sizeをオン。&lt;/p&gt;

&lt;p&gt;次に余白となる空のゲームオブジェクトを追加し，子階層すべてのゲームオブジェクトにLayout Elementをアタッチする。並べたい要素のサイズをMin WidthかPreferred Widthで設定し，余白のオブジェクトにはFlexible Widthに1を入れる。余白のサイズが全て均一になっていることがRect TransformのWidthからも確認できる。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/10/22_set_evenly_space_in_unity_ui/images/using_margins_to_layout.gif" alt="空のゲームオブジェクトを使って間隔を作ったレイアウトのイメージ" /&gt;
&lt;/figure&gt;

&lt;h2 id="このレイアウト方法のメリットデメリット"&gt;このレイアウト方法のメリット・デメリット&lt;/h2&gt;

&lt;p&gt;メリットは最初に書いた通り余白のサイズが統一されるので，レイアウトに均一な規則性を持たせられること。&lt;/p&gt;

&lt;p&gt;デメリットはメンテナンス性の悪さ。要素の数が固定的であれば気にする必要はないが，これが増えたり減ったりするのであれば余白までプログラムの制御下に含める必要がある。&lt;/p&gt;

&lt;p&gt;ここまで書いておいてなんだけど，このレイアウトはあまり頻繁に使うものではないと思う。例えばiOSのタブバーは各要素がそれぞれ均等な余白を持ったかのようなレイアウトになっている。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/10/22_set_evenly_space_in_unity_ui/images/ios_tab_bar_layout.png" alt="iOSのタブバーのレイアウト" /&gt;
&lt;/figure&gt;

&lt;p&gt;余白のサイズを均等にするとボタン同士の距離は近づくことになる。ボタンが近づけば当然それだけ誤って操作する可能性は高くなる。UIにこのレイアウトを使う場合は要素の数やデバイスの特徴に注意して使用したい。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Unity UIのAuto Layoutを使いこなして楽々レイアウト</title>
    <link rel="alternate" href="http://soucolle.jp/unity_ui_auto_layout_group/"/>
    <id>http://soucolle.jp/unity_ui_auto_layout_group/</id>
    <published>2018-09-29T13:35:00+00:00</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;UnityでUIを組む時はAuto Layout Groupを積極的に使った方が断然良い。Rect Transformだけでは気を配る項目が多く，要素の追加や変更も手数が多くなる。&lt;/p&gt;

&lt;p&gt;Auto Layout Groupは少ない変更点で大きな変更を加えることができるので，少しの追加や変更はお手の物。完全とまではいかないが，ある程度フレキシブル・レイアウト対応できるのも強み。&lt;/p&gt;

&lt;p&gt;実際にヘッダー，ボディ，フッターを使ったよくあるレイアウトを組みながらポイントを書いていく。&lt;/p&gt;

&lt;p&gt;&lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/layout_image.png" alt="これから組むレイアウトのイメージ" /&gt;&lt;/p&gt;

&lt;h2 id="ヘッダーボティフッターの各エリアに分ける"&gt;ヘッダー，ボティ，フッターの各エリアに分ける&lt;/h2&gt;
&lt;h3 id="子要素には必ずlayout-elementコンポーネント"&gt;子要素には必ずLayout Elementコンポーネント&lt;/h3&gt;
&lt;p&gt;Auto Layout Groupのひとつ，Vertical Layoutを使って各エリアを縦に並べる。以下の例ではVertical Layoutを持つ親が並びを管理し，子要素が自身のサイズを決定している。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/whole_ui_layout.gif" alt="Vertical Layout Groupを使ってヘッダー，ボディ，フッターを縦に並べる様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;Auto Layout Groupを使う時の一番のポイントは，親のグループで子要素のサイズをコントロールしきらないこと。なので基本的に&lt;strong&gt;Child Force Expandのチェックはオフ&lt;/strong&gt;にするのがオススメ。&lt;/p&gt;

&lt;p&gt;一方，&lt;strong&gt;Child Force Controllのチェックはオン&lt;/strong&gt;にするのがオススメ。Child Force ControllはRect Transformではなく，Auto Layoutのルールに子要素を従わせるための設定。&lt;/p&gt;

&lt;p&gt;最後に&lt;strong&gt;子要素には必ずLayout Elementをアタッチ&lt;/strong&gt;する。Layout ElementをアタッチするとAuto Layoutのルールに従いつつ，子がある程度レイアウトの裁量を持てる。&lt;/p&gt;

&lt;h3 id="固定可変サイズを使い分け組み合わせる"&gt;固定・可変サイズを使い分け，組み合わせる&lt;/h3&gt;
&lt;p&gt;各エリアのサイズを決めていく。幅は各要素親いっぱいにまで広げる。ヘッダーとフッターの高さは固定サイズを指定し，ボディの高さだけ確保できる分だけ広がるように設定している。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/whole_fill_canvas_to_elements.gif" alt="Layout Elementを使ってCanvas全体を要素で埋める様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;サイズを固定したい場合は，まず最低値であるMin Width / Heightを設定するのがオススメ。親のサイズに関係なく指定したサイズが維持される。&lt;/p&gt;

&lt;p&gt;全体を埋めたい時にはFlexible Width / Heightを使う。他にMinやPreferredが設定された子要素がある場合，それらを差し引いたスペース全てを埋める。&lt;/p&gt;

&lt;h2 id="ヘッダー"&gt;ヘッダー&lt;/h2&gt;
&lt;h3 id="空白部分も要素と考えてレイアウトする"&gt;空白部分も要素と考えてレイアウトする&lt;/h3&gt;
&lt;p&gt;ヘッダーの中身をレイアウトする。Auto Layout Groupの並びには両端揃のような指定方法はない。なので空白部分も要素と見てレイアウトする。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/meke_to_space_between.gif" alt="空のゲームオブジェクトで空白をつくる様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;やっていることはさっきの画面全体のレイアウトと全く一緒。Horizontal Layoutをアタッチ。空のゲームオブジェクトを空白に見立て，Flexible Widthで拡張するよう設定している。&lt;/p&gt;

&lt;p&gt;大昔のテーブルレイアウトのようで個人的には気がひけるが，これは文書構造ではないので気にしたら負けだと思ってる🙄&lt;/p&gt;

&lt;h3 id="内容量に応じて可変も可能"&gt;内容量に応じて可変も可能&lt;/h3&gt;
&lt;p&gt;Auto Layout Groupなら子要素の内容量に応じて可変させることも可能。左はアイテムの数に応じて，右はテキスト量に応じて親のサイズが変化。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/extend_from_character_number.gif" alt="文字数によって拡張するようヘッダーの要素を組んでいる様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;Auto Layout Groupでコントロールしている場合，内容量に応じて親のサイズを勝手に可変してくれる。さらに，TextコンポーネントはLayout Elementを付けずともPreferred Width / Heightに相当する値が設定されている。&lt;/p&gt;

&lt;h3 id="親にビジュアルは持たせない"&gt;親にビジュアルは持たせない&lt;/h3&gt;
&lt;p&gt;Auto Layout Groupの親は結構制約がキツくなっているので，親にビジュアルになるコンポーネントはなるべくアタッチしない方が良い。Layout Ignoreを使って背景を子要素として分離する。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/exception_layout.gif" alt="Layout Ignoreを使ってAuto Layoutから外れた例外レイアウトを行う様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;Layout ElementのLayout Ignoreは，Auto Layout Groupのルールに従わなくさせるための設定。&lt;br /&gt;
レイアウトは通常通りRect Transformで行う。Auto Layout Groupのサイズ変化を擬似的に参照するような状態になる。マイナスの数値を設定すれば親の欄外に出るような例外的なレイアウトも自由にできる。&lt;/p&gt;

&lt;p&gt;ゲームではよくある大きな装飾のUIでは，それの大きさのせいでレイアウトの数値にひどく影響する。ビジュアルとレイアウトの数値を分離できれば，細かい自由度を保ったままレイアウトしやすくなるし，メンテナンスコストも下がる。&lt;/p&gt;

&lt;h2 id="フッター"&gt;フッター&lt;/h2&gt;
&lt;h3 id="child-force-expandの使い所は等間隔レイアウト"&gt;Child Force Expandの使い所は等間隔レイアウト&lt;/h3&gt;
&lt;p&gt;Auto Layout Groupには両端揃えと同じく等間隔揃えという設定方法も無い。&lt;br /&gt;
Child Force Expandを使えば一応擬似的に設定することはできる。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/layout_the_elements_at_evenly_space.gif" alt="フッターの要素を等間隔にレイアウトする様子" /&gt;
&lt;/figure&gt;

&lt;p&gt;Child Force Expandは子要素のサイズに関係なくスペースが拡張され確保される。この時に子要素のサイズを保つためには，Child Controls Sizeをオフにし，子要素のサイズはRect Transformのサイズが維持される，&lt;/p&gt;

&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;figure&gt;
  &lt;img src="/article/2018/09/29_unity_ui_auto_layout_group/images/flexible_layout_to_match_screen_size.gif" alt="レイアウトがスクリーンサイズに合わせてフレキシブルに変化する様子" /&gt;
  &lt;figcaption&gt;Rect Transformでもこのようなレイアウトは可能だが，追加や変更のたびに多くの数値を調整することになる。Auto Layoutなら追加は要素を複製するのみ，レイアウトの調整は親のPaddingやSpacingなどを変更して一括編集が可能&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;使い始めた頃は要素を縦や横に並べる時以外は使わないかなー？と思っていたけども，これが無いと困るくらいレイアウトの作業コストを激減させてくれている。今ではUnityでのUI制作におけるかなり主要なコンポーネントだと思っている。&lt;/p&gt;

&lt;p&gt;Unity UIは巷ではあまり評判は良くないらしいっぽい？けど，Auto LayoutはCSSのような万能性はないものの，ポイントを押さえれば柔軟性の高いレイアウトを実現できるいい機能なので好き😊&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Unityのマテリアルリストの順序をBlenderで制御する</title>
    <link rel="alternate" href="http://soucolle.jp/sort_material_order_of_unity_in_blender/"/>
    <id>http://soucolle.jp/sort_material_order_of_unity_in_blender/</id>
    <published>2017-02-21T01:00:00+00:00</published>
    <updated>2019-05-25T10:55:29+00:00</updated>
    <author>
      <name>Article Author</name>
    </author>
    <content type="html">&lt;p&gt;マテリアルが複数指定されたオブジェクトをUnityに読み込むと，マテリアルをアサインしたリストを自動的に生成してくれる。&lt;/p&gt;

&lt;p&gt;で，Blenderで作成したのならリストの順序はマテリアルインデックスの順序…と勝手に思い込んでいた。&lt;strong&gt;リストの順序はメッシュの順序から決められている。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h2 id="リストの順序が変わるとどう困るか"&gt;リストの順序が変わるとどう困るか&lt;/h2&gt;
&lt;p&gt;先日，オブジェクトを差し替えた時にマテリアルの並びがシャッフルされ，意図しない順序にアサインされたため小一時間ほど理由がわからず困っていた。&lt;br /&gt;
編集するたびにリストの順序を変えられてしまっては，インポートのたびにマテリアルをアサインし直さなければならない。リストの順序に実装が関わっていればなお面倒。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2017/02/21_sort_material_order_of_unity_in_blender/images/unintended_materials_order.png" alt="意図しない順序に並べられたマテリアルの図" /&gt;
  &lt;figcaption&gt;メッシュ編集前の図。マテリアル名の番号がマテリアルインデックスの順で，並びはバラバラだが意図通りの表示になっている。インポート設定のマテリアルインポートは切ってある&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
  &lt;img src="/article/2017/02/21_sort_material_order_of_unity_in_blender/images/order_of_material_has_shuffled.png" alt="マテリアルの順序がシャッフルされてしまった図" /&gt;
  &lt;figcaption&gt;メッシュ編集後の図。マテリアルの並びは変わっていないが，各Elementが対応しているメッシュが変更されてしまったため色がズレてしまった。&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="blenderでの対策"&gt;Blenderでの対策&lt;/h2&gt;
&lt;p&gt;普段，メッシュの順序を気にしながら編集することはないと思う（オブジェクトの結合ではベースになるオブジェクトのメッシュが前列に来るぐらいはわかるが）。&lt;/p&gt;

&lt;p&gt;マテリアルインデックスの順で管理するには，編集モードで「要素をソート」を使用する。順番が不確定なら書き出すたびにソートしてやる必要があるが，それさえ守ればマテリアルインデックスの順できっちり管理することができる。&lt;/p&gt;

&lt;figure&gt;
  &lt;img src="/article/2017/02/21_sort_material_order_of_unity_in_blender/images/change_material_order.gif" alt="メッシュを全選択して「wキー」でスペシャルを開く，「メッシュ要素をソート」を選択して最後に「マテリアル」を選択" /&gt;
  &lt;figcaption&gt;メニューからは3Dビューで対象のメッシュを選択して「メッシュ&amp;gt;要素をソート…&amp;gt;マテリアル」でOK。一見して何も変化しないので少し不安になる。&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
  &lt;img src="/article/2017/02/21_sort_material_order_of_unity_in_blender/images/order_of_material_has_sorted.png" alt="" /&gt;
  &lt;figcaption&gt;fbx形式で書き出してUnityにインポートした。マテリアル名に割り振ったマテリアルインデックスの順の通りに並んだ。&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;メッシュの順序を実装に使用する場合，マテリアルの順序は好きに管理できないという疑問点は残るが，とりあえず今はそういうケースは無いのでこれで良しとする。&lt;/p&gt;
</content>
  </entry>
</feed>
