頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


画面をスワイプして視線を変える時の方向

マインクラフトPE

画面をスワイプすると視線(カメラの向き)が変わる類の3Dゲームってどのように視線が動くのが自然なのかな?と思いいくつかのiOSアプリで調べてみた(いざ頭の中でどうだっけ?と思ってもわからんかったのよ)。

マインクラフトPE
World of Tank
Goat Simulator

これらのアプリ全て画面をスワイプすると、視線がスワイプ方向へ移動した。つまり右方向へスワイプするとカメラが右方向へ回転する(風景は左側へ流れる)、という具合。

どれもスワイプでカメラの回転をコントロールしてるって感じで納得。

なお、マイクラとGoat Simulatorではy軸方向(縦方向ね)のみ反転させるオプションが付いてたから、上方向へスワイプするとカメラが下を向いて欲しい!という層がいるってことなんだろうかね?


Blenderでdaeファイル出力→SceneKitへ

Blenderで作成したオブジェクト(ボーン&アニメーション付き)をdaeで出力して、それをSceneKitで使う時のメモ。

まずBlenderでの注意事項。

オブジェクトとボーンの親子関係を作る時に、オブジェクトとボーンを選択してcontrol+pするとできるけど、オブジェクト→ボーンの順に選択する。逆だとできない。

ポーズモードで回転させたオブジェクトを元に戻すのは option + r

【Blender】ボーンを動かしてアニメーションを作成する | ユガラボ
↑すごく参考になったページ

daeファイルを出力する時には対象を選択しといて
Selection Only
Include Children
Include Armatures
にチェックを入れる。

Blenderでdae出力時の設定


次にXcode。

Xcodeにインポートしたdaeファイルを見るとやっぱりx軸周りに90度回転してる。なのでシーンへの追加はコードでやる方が精神的にはいい(俺の場合は、だけど)。

ともかくこの流れでアニメーション付きオブジェクトをインポートするとXcodeのScene Editorの右側にある”Animations”のところ(下図の赤い丸のとこね)に項目が表示されてる。多分Blenderで設定したアニメーションっぽい。

XcodeのScene Editor

上図の青矢印のところのボタンを押すとアニメーションが設定できる(コードならSCNActionに相当するんかな)けど、その場合は”Animations”のところには何も表示されないからどうなってんの?と思ってた。
ただここで表示される名前はBlenderで設定したアニメーション名とは違うけど(ボーンとオブジェクトの名前はBlenderで設定したまま来てる)。

なお、SCNNodeクラスのboneオブジェクトに対し、
for (NSString *key in bone.animationKeys) {
// [bone pauseAnimationForKey:key];//止める
[bone setSpeed:10.0 forAnimationKey:key];//speed変更
}
みたいにすればそのボーンに設定されたアニメーションを止めたり、speed(って何だ?リファレンスにも書いてねえ!)の変更なんかもできた。


↑SceneKitに持ってきた時の結果。

ある程度のアニメーションをBlenderで作っておいて、動かす・止めるタイミングや微調整はコード側でもできそうだな。


  TopPage  



Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad