HobbyistBox

趣味事をつらつらと

【FBX to OBJ】03 メッシュを取得しよう

はじめに

前回で FBX ファイルをインポートしてファイル内の情報へアクセスできるようになりました。

データ構造

シーンはメッシュ(3Dオブジェクト)だけではなく、ライトやカメラなども含まれています。
前回、最終的に取得した FbxScene はそういったシーンを構成するオブジェクトをノードでつないで木構造的に保持しています。

f:id:Hobbyist:20160218195331p:plain

この図で分かるようにメッシュ(FbxMesh)を取得しようと思うとノードを辿って行けばいいですね。
今回はその中からメッシュを取得していきます。

環境

作業環境は

  • Windows10
  • VisualStudio 2015 Community
    • C++ コンソールアプリ
  • FBXSDK ver.20161_2
  • Blender 2.76

で進めます。

ではプログラミングをしていきましょう。

続きを読む

【FBX to OBJ】02 FBXファイルを開こう

はじめに

今回から FBXSDK を使い実際にプログラミングをしていきたいと思います。

目標

今回は必要な情報(頂点座標や法線など)を取得する前段階、ファイルを開き情報にアクセスできるようにするまでを目標にしたいと思います。

環境

作業環境は

  • Windows10
  • VisualStudio 2015 Community
    • C++ コンソールアプリ
  • FBXSDK ver.20161_2
  • Blender 2.76

で進めます。

読み込む FBX ファイル

何はなくともまずは読み込む FBX ファイルが必要です。
ご自身が作成された 3D作品を使用してもいいのですが、何千、何万ポリゴンもあるファイルでは結果を追っていくのが大変なので前回作成した .objファイル同様 Cube が一つだけあるファイルを作成します。

Blender を起動し Cube が一つだけの状態で File >> Export >> FBX(.fbx) を選択、名前を付けてエクスポート。
プログラムからファイルを開くことになるので Cドライブ直下や、プロジェクトディレクトリにエクスポートするとファイルパスが短くてすみます。
また、ファイル名は半角英数で指定してください。

ではプログラミングをしていきましょう。

続きを読む

【FBX to OBJ】01 .objファイルについて

はじめに

前回 FBXSDK を設定し、いよいよプログラミングを開始できるようになりました。ですが、ゴールである OBJ形式について触れていません。

今回は、早くプログラミングしたい気持ちを グッ こらえて OBJ形式を見ていきましょう。

このファイル形式の特徴は 3D の形状を定義する .obj ファイルとマテリアルを定義する .mtl ファイルの2つで構成されているところです。ファイルが2つなので .mtl ファイルは関係ないのですが、OBJ でエクスポートと言えば .mtl ファイルも込みなので OBJ と大文字で書いた場合は .obj ファイルと .mtl ファイルを指すこととします。

ちなみに、mtl は MaterialTemplateLibrary の略です。

目標

このエントリーでは .obj ファイルの構成を読んで FBXファイル内のどの情報が必要かを理解したいと思います。

環境

作業環境は

で進めていきたいと思います。

続きを読む

【FBX to OBJ】00 FBXSDKを使えるようにしよう

はじめに

3Dを扱うと避けては通れないといっても過言ではないほどスタンダードになってきたのが FBX です。
ポリゴン情報はもちろんマテリアル、ボーン、アニメーションなど多くの情報を1ファイルに保存できるパワフルなフォーマットが FBX です。

さらに、この FBX には SDK がありプログラミングで扱いやすくなっています。

目標

とはいっても、目的もなしにプログラミングしてもしょうがないので今回は FBXファイル内のモデルデータを OBJファイルにコンバートすることを目標にしたいと思います。

環境

作業環境は

  • Windows10
  • VisualStudio 2015 Community
    • C++ コンソールアプリ
  • FBXSDK ver.20161_2

で進めていきたいと思います。

では、FBXSDK のセットアップをしていきましょう。

続きを読む

【LESS】レスポンシブデザイン用フォントサイズ関数

レスポンシブデザインでスタイルを作るときにフォントサイズは rem で指定するのが定石ですが、古いブラウザでは対応していない場合があるので px でも指定します。

CSS
html {
  /* フォントサイズを 10px に設定 */
  font-size: 62.5%;
}
p {
  font-size: 14px;
  font-size: 1.4rem;
}

こうすれば rem 対応ブラウザであれば 1.4rem を、非対応ブラウザであれば 14px が適応されます。

ただこの方法ではフォントサイズを変更しようとした場合、2ヵ所書き変えなければいけません。それも、変え忘れや書き間違えがあった場合ブラウザ依存の気づきにくいバグとなります。

CSS
p {
  font-size: 13px;    /* 非対応ブラウザでは 13px */
  font-size: 1.2rem;  /* 対応ブラウザでは 12px */
}

CSS で書いていた場合は気を付ける他ないですが、 LESS で書いていれば関数化することで問題を解消することができます。

続きを読む