私が持っているアニメーション エンジンの動作を作成するために、ニューラル ネットワークを使用することにしました。ニューラル ネットワークは、3 つの vector3 と 1 つのオイラー角を、私が持っているすべての体の部分から取り込みます。最初の vector3 は位置、2 番目は速度、3 番目は角速度です。オイラー角は、ボディ パーツの回転角度です。私には7つの体の部分があります。これらのデータ型にはそれぞれ 3 つの float があります。7*4*3 = 84 なので、ニューラル ネットワークには 84 個の入力があります。出力はキャラクタの筋肉にマッピングされます。それらは各筋肉に適用する強さの量を提供し、それらの15があります.
15 のネットワークを 10 秒間同時に実行し、エネルギー使用量が最も少なく、z と x の動きが最も少なく、体のパーツが残りの部分と比較して正しい y 位置にあるかどうか (hips.y > upperleg.y、upperleg.y > lowerleg.y など)、遺伝的アルゴリズムを実行します。私は、隠れ層ごとに 168 個のニューロンからなるニューラル ネットワークを実行しており、8 つの隠れ層があります。キャラクターがまっすぐに立ち、あまり動き回らないようにしています。これを 3000 世代実行しましたが、近づくことさえできませんでした。
ニューラル ネットワークと遺伝的アルゴリズムは、このチュートリアルの C# バージョンです。クロスオーバーの方法を一点からブレンディングに変更しました。
84 の入力と 15 の出力があります。ニューラル ネットワークのサイズはどれくらいですか?