Apple Engine

Apple, iPhone, iOS, その周辺のことについて

iOS で SceneKit を試す(Swift 3) その58 - 3D のオブジェクトファイルを Scene File (scn) に変換する。

今まではテンプレートの ship.scn を使用したり新規で作成していたが、プロジェクトに読み込んだオブジェクトファイルを scn に変換することができる。

 

scn に変換する方法

変換方法は以下の3つ

  • Xcode のメニューバーの機能から変換する
  • オブジェクトファイルを更新時に出るアラートから変換する
  • ターミナルからコマンドで変換する

 

その前にオブジェクトファイルをつくる

以下のコードを入力し、ファイル名を cube.usda に設定 Xcode のプロジェクトの Project Navigator (Command + 1) にドラッグ&ドロップ。

#usda 1.0

def Cube "Cube" {}

f:id:x67x6fx74x6f:20170808191845p:plain

 

Xcode のメニューバーの機能から変換する

Project Navigatorから cube.usda を選択する。
一部ファイルフォーマットでは Quick Look でプレビューされているので 右クリックの Open As で SceneKit Document に変更。

f:id:x67x6fx74x6f:20170808191935p:plain

 

上部 メニューバーの Editor > Convert to SceneKit scene file format (.scn) を押す。

f:id:x67x6fx74x6f:20170808191950p:plain

 

すると、以下のアラートが出る。

f:id:x67x6fx74x6f:20170808192029p:plain

 

ボタン名 機能
Duplicate 現在のファイルを残し、scn に変換したファイルを作成する
Cancel 何もせずアラートを閉じる
Convert scn に変換したファイルをつくり、元のファイルを消す

 

元ファイルを残す場合、Duplicate で良いと思われるが、リソースに含まれてしまうため、なんらかの対象が必要。

 

オブジェクトファイルを更新時に出るアラートから変換する

Xcode 内で SceneKit Document 表示時に、
.scn ではないファイルの場合で編集を行おうとすると
「 Convert to SceneKit scene file format (.scn) 」をおした時と同様のアラートがててそこから変換できる。

 

ターミナルからコマンドで変換する

Scene File を多量に変換した場合や 3DCG のオーサリングツールからの変換を自動化したい場合に有効。

以下のコードをターミナルから入力。
cube.usda を cube.scn に変換している。

xcrun scntool --convert cube.usda --format scn --output cube.scn

 

今回はここまで