3 minutes
assimp2jsonを使えるようにするまで
お世話になっております。
しゃまとんです。
テストで実装してみたいことがあり、assimp2jsonというツールが必要になったので準備していたのですが、 使えるようになるまでの備忘録です。
cmakeというものを知らなかったのですが、当たり前な内容かもしれません。
cmake便利ですね!そもそもcmakeとは
assimp2jsonとは3DのファイルをJSON(assimp)に変換してくれるものです。
3Dを何かしらやるやつですね。
はい。それではcmakeから使えるようにしていきます。
https://cmake.org/download/からOSにあったものを選びます。(今回はmacのdmg)
実行して、Applicationsに入れるだけ。
今回はコマンドラインで実行するので、Applicationsのappからリンクをはります。
sudo ln -s /Applications/CMake.app/Contents/bin/ccmake /usr/bin/ccmake
sudo ln -s /Applications/CMake.app/Contents/bin/cmake /usr/bin/cmake
sudo ln -s /Applications/CMake.app/Contents/bin/cmake-gui /usr/bin/cmake-gui
sudo ln -s /Applications/CMake.app/Contents/bin/cmakexbuild /usr/bin/cmakexbuild
sudo ln -s /Applications/CMake.app/Contents/bin/cpack /usr/bin/cpack
sudo ln -s /Applications/CMake.app/Contents/bin/ctest /usr/bin/ctest
次にassimp2jsonをビルドします。まずはgithubからcloneします。
任意のディレクトリでやればOK。
git clone [email protected]:acgessler/assimp2json.git
cloneした状態だとassimp2json/assimpが空になっています。assimp以下はsubmoduleとして設定されているので、取得します。
cd assimp2json
git submodule init
git submodule update
これを行うと commit : 93bb63fdb40d9682e60ca97b0eda4951a552c742
の状態のassimpがcloneされます。
これでビルドの準備が整ったので、topに移動して下記のコマンドを実行します。
cmake CMakeLists.txt -G 'Unix Makefiles' # makefile生成
実行すると下記のように表示されます(はず)
-- The C compiler identification is AppleClang 7.0.0.7000176
-- The CXX compiler identification is AppleClang 7.0.0.7000176
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.28")
-- Building a non-boost version of Assimp.
-- Looking for ZLIB...
-- Checking for module 'zzip-zlib-config'
-- Package 'zzip-zlib-config' not found
-- Found ZLIB: optimized;/usr/lib/libz.dylib;debug;/usr/lib/libz.dylib
-- Checking for module 'minizip'
-- Package 'minizip' not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Configuring done
CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
assimp
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /Users/xxxxxxxx/Downloads/assimp2json
makeします。
$ make
Scanning dependencies of target assimp
[ 0%] Building CXX object assimp/code/CMakeFiles/assimp.dir/Assimp.cpp.o
[ 0%] Building CXX object assimp/code/CMakeFiles/assimp.dir/BaseImporter.cpp.o
[ 1%] Building CXX object assimp/code/CMakeFiles/assimp.dir/BaseProcess.cpp.o
... ビルドが続く ...
[ 99%] Building CXX object assimp/test/CMakeFiles/unit.dir/unit/utNoBoostTest.cpp.o
[100%] Linking CXX executable ../../bin/unit
[100%] Built target unit
ビルドが通ると bin配下にassimp2jsonが作られます。
実行できるか簡単にテストしてみます。こちらからデータを取得します。
git clone [email protected]:golang-samples/gopher-3d.git
assimp2json gopher.stl > gopher.json
PATHを通してない場合、bin配下を指定してください。
エディタ等でひらくと結構長めなjsonが記載されていれば変換されています。
以上です。
モデルデータは下記のサイト等で確認できます。(github上でも見れますが)