演算子エディタのテスト
IK演算子のパラメータを調節するためのエディタのコードを取りあえず書いたので、テストしてみる。このパラメータは、キャラクタごとでは無く、ゲームのシーンごとに設定されるはずだ、ということで演算子付属のエディタを作った。例のごとく簡単なサンプルを作った人がいるので、その仕組みをそのまま流用。プロジェクトの他のサンプルは簡単過ぎて使いものにならないのが多いのだが、今度のはかなり使える。自分でも忘れていたのが、この時のための仕組みを仕込んでおいたこと。去年、きっとそのうち誰かから要求されるだろうということで準備しておいたのが役だった。時間が余ったので、エディタの編集機能を強化。朝から風邪でふらふらしていたので、12時前に会社を出る。じっと様子を見る
家から会社のコンピュータを覗いてみると、マイケルが実験用ディレクトリと共同開発用ディレクトリを併合しようとしているようだ。共同開発用のディレクトリは、今10人以上のエンジニアが毎時変更をかけている。最低限コンパイル可能な状態にして変更内容を登録することになっているが、周辺のプロジェクトに影響を与えるような変更がよくかかり、コンパイルできなくなることが毎週おきている。そうかといって最新のコードを使わないとこちらの作業が止まってしまう。いつも雪庇の上を歩いている気分だ。実験用ディレクトリは、こちらの無謀な実験が全体に影響を与えず、それでいて全体の最新状態とリンクを保てるような、微妙なバランスの上で動いている代物で、それを一つにしようとは大胆不敵なやつだ。何か色々泣き言を言っているが、様子を見ることにしよう。スケールの問題解決
結局ジェフのコードに思いっきり決め打ちのところがあるのを発見。休日の内に、「もうユーザー任せに出来ない!」と心に決めた改造方法で解決するつもりだったので、もうそんなことはどうでもよくなっていた。結構重い処理が毎エフェクタ×毎フレーム入るか、メモリ領域を使ってしまうかの選択になる。メモリに関しては次世代機は制約が多いので、処理の追加ということにした。改造後、アニメーションカーブに、フレームごとでは無いが緩いノイズが乗っている。これは結局、マトリクスからクオタニオンを取り出すときのノイズだと分かった。標準ライブラリに問題があるのは、分かっていたけど、またもや遭遇だ。後の処理に問題を起こすのではと心配しつつ、えいっとばかりに、マトリクスの回転要素を正規化して、クオタニオンを取り出すとOKだった。もう、ほとんど論理的に考えていない、経験からの推測と実験で、問題解決。良いのかそれで。結果全て良好。リアルタイムに、スケールがどんなに変わっても、スムーズにアニメーションがついていく。