私は今、cocos2d-x ver3.2 を使用してゲーム開発を行っています。
その際ver3.2から追加された機能であるSprite3Dでc3t・c3bファイル(3Dモデルデータ)の読み込み・表示・モーション再生を実装したいと思っています。
しかし、作成した3Dモデルデータをc3t・c3bファイルに変換した時に読み込みエラーが発生してしまいます。
サンプルで付属していたc3bファイルの読み込み・表示・モーション再生は成功しているので、ゲームのプログラム側ではなく3Dモデリングソフトから.fbx形式で書き出す時の設定ミスではないか?と考えているのですが手詰まり状態となっています。
使用環境
cocos2d-x ver3.2
android-ndk-r9d
android-sdk-r24
apache-ant-1.9.4
Windows
3dsmax 2015
VisualStudio 2013 Professional
mac
Xcode 6.1
code
lang
1HelloWorldScene.cpp 2bool HelloWorld::init() 3{ 4 // cocos2d-x側の初期化 5 if ( !Layer::init() ) 6 { 7 return false; 8 } 9 // 背景を白に設定 10 auto _bg = LayerColor::create(Color4B::WHITE, visibleSize.width, visi bleSize.height); 11 // レイヤーに登録 12 this -> addChild(_bg); 13 // モデルデータの読み込み 14 auto sprite3d = Sprite3D::create( "test.c3t"); 15 // テクスチャをセット 16 sprite3d -> setTexture( "test.png"); 17 // レイヤーに登録 18 addChild( sprite3d); 19 // アニメーション情報をスプライトに登録 20 auto animation = Animation3D::create( "sarari.c3b"); 21 auto animate = Animate3D::create( animation, 1.933f, 2.8f); 22 sprite3d -> runAction( RepeatForever::create( animate)); 23 // 画面のほぼ中心に表示 24 sprite3d -> setPosition( Vec2( visibleSize.width / 2, visibleSize.height / 3)); 25 // 奥行きはとりあえず初期値 26 sprite3d -> setPositionZ( 0.0); 27 // サイズを適当に拡大 28 sprite3d -> setScale( 14.0f); 29 // 表示されているモデルを回転させる 30 auto rotation = RotateBy::create( 10, Vec3(0, 360, 0)); 31 sprite3d -> runAction( RepeatForever::create( rotation)); 32}
以下3dsmax側の設定
![イメージ説明]WIDTH:600
![イメージ説明]WIDTH:600
どなたかご助力をよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/11 11:15