エディタやパッケージ化ではちゃんと動くけど、コマンドラインのUnreal Editor経由だけどアニメーションがおかしくなる現象はリターゲティングがどうたらよりも、互換スケルトンが正しく機能しているか、していないか、という話になるっぽい。 ちゃんと設定していなかったのに動いていたのも気になるんだが。プロジェクト設定とかに設定項目でもあるんだろうか。
さっきはパッケージ化したら動いたと書いたが、それは開発版の場合だった。シッピングビルドしてパッケージ化したら動かなかった。全く動かないわけじゃなくて、ログイン処理が終わってマップ画面に切り替わる直前で落ちている。 オリジナルのレベルスクリプトアクターか、反則技のアセットロードが怪しいかもしれない。たぶん後者。 試しにアセットのロードと使用をやめたら落ちなくなった。予めブループリントにセットしておいたキャラクターとアニメーションでしか動かないが、それらはちゃんと動いている。
アニメーションの出来はともかくとして一応、ジャンプ、ステップ、着地などの処理とアニメーションができたので、オンラインでもちゃんと動くかな?とやってみたら大変なことになった。 これのクライアント版。-gameで動かすやつ。動くことは動くんだが、キャラクターの形がぐちゃぐちゃになる。 だったらパッケージ化してもダメなのかな?とパッケージ化して起動してみたらエラーでクライアントが落ちた。 必死こいてデバッグして、どうにかこうにかパッケージ化すればちゃんと動くようになった。 しか
軽く予習はしておいたが、ちゃんと使う必要がでてきたかもしれない。 これを使うと4方向のアニメーションを入れておいて、パラメータによって、そのうちの2方向アニメをブレンドして出力してくれたりするのかもしれない。もしかしたら違うかもしれないけど。
日本語だと「宿命」や「運命」という意味になるらしい。 次のドキュメントはUnreal Engine3のKismetユーザーガイド。 もともとはブループリントじゃなくてKismetだったみたいだ。 なるほど納得だわ。だからKismet~Libraryが多いんだ。もともとKismet用(ブループリント用)のライブラリなんだ。まあでもC++で書いてあるわけだし、ユーザーがC++からでも普通に使えるよってなわけだ。 ありがたく使わせていただく。
カメラとキャラクターの位置から方向を算出しなきゃならなくなった。位置が分かっていれば普通にC/C++で計算できるが、なんか楽できないかな?と調べてみた。 たぶんUKismetMathLibraryを使うのが一番楽なはず。 他にも次の2つのクラスがあった。 同じC/C++でもプラットフォームごとに微妙に違うわけだ。コンパイラが違うってことになるんだと思うけど。その差をなくすためにこれを使った方がいいんだと思う。まあ俺はクライアントはwindows用しか考えていないんだが。
落下速度に限らないかもしれないが、キャラクターのスピードが制限されているので、それの変更方法。 日本語化している場合は、ぶろじぇくと設定、「物理」の「デフォルトの終速」を変えてやれば良い。 落下速度が上がらないから重力だのなんだのと弄りまくって3~4時間は潰してしまった。まあこうやって覚えていくしかないわけだが。
どうやら2014年から同じ話になっているらしい。 ポーンを包んでいるカプセルコンポーネントが浮いているから、そのままにしておくと足が浮いたままになる。 これを投稿したzeroexceptionという人は、次のトピックによるとepicのスタッフらしい。そうじゃなきゃ、あんな自信たっぷりに答えられるわけないかもね。 1.9~2.4浮く、平均2.15浮くって話で一定じゃないから、-2.4しておくと足が埋もれる場合もあるし、-1.9だと浮いちゃう場合もあるわけで、2.15が無難
なかなか良いのがあった。 この中にあるfake shadowは参考になる。
こないだこれを言ったけど、まあ無理だわな。再び基本モデルの見直しをしたのと、24fpsアニメじゃ荒いかもなって30fpsにすることにした。60Hzモニターでしか見ていないが、それでも24fpsと30fpsアニメーションの違いがはっきり分かる。 30fpsにして走りアニメーションを作り直してみてよく分かったが、足が地面に埋まりまくっている。いちいち丁寧に作ってやればいいんだが、足が地面に埋まらないように次のサイトを参考にしてBlenderで設定してみた。 結局、制限を受ける
キーフレームの移動方法が分からなくてググったらヒットした。 「はじめに」とあるけど、ドープシートについての話。
とりあえずキャラクター関連のAPIを持ってきた。攻撃したり、攻撃を受けたり、どこで作ればいいんだか。 ざっと見た限りだと、関数の数が違いすぎるから当然だとは思うけど、たとえばC++だと重力の方向とかも決められる。でも基本的なことはブループリントでできるはず。 Blue Print API C++ API
今度はこれ。
こちらの神動画を参考にさせてもらった。 こないだまで指4本を1本のリグにしていた。親指は無し。でも、この神動画を見て、折角だからちゃんと作っておこうと思った。もしかしたら見得を切るアニメを作りたくなるかもしれない。寄り目ができるかどうか分からんけど。 指の可動域を少し変更してみたが、まだもう少し開くようにしてもいいのかもしれない。 親指は1本のリグで2役やらせることにした。無理やり感は否めないが、どうにか人間の親指と同じ動きができるようになっている。反転コピペも問題なさそ
最近は三歩進んでからの二歩下がる部分で嵌っていた。 キャラクターのブループリントとC++コードをだいぶ書き換えた。そのせいか、というよりも俺のせいじゃないんだが、表示の一部がおかしくなるところがあって、それを解決するのに丸3日掛かってしまった。しかし頑張った甲斐あってキャラクターのレンダリング負荷を心配する必要はなくなったと思う。いや、まだ甘いかもしれないが、今のところはちゃんとテストしようがない。テストするにも勉強する必要があるし、まだそこまで手が回らない。まあでも理論的に
まだ他に次の3つが残っているが、今回はやめとく。もう頭に入らない。マップを作る時にシーケンサーとかもっとちゃんと勉強する必要があるんだと思う。コントロールリグはダイナミックアニメーションを使わなければ必要ないんだと思うけど、どうなんだろう。まだいまいちよく分かっていない。