歩く際にAdd Force関数を使うようにした。
とりあえず歩くことはできるが、違和感なく快適な操作にするためにはいくつもある項目を調整する必要がありそう。加える力の強さ、プレイヤーの質量、空気との摩擦、床との摩擦など。調整が不十分だと歩き始める際の動きがもっさりし過ぎたり、歩くのを止めても床の上を滑り過ぎたりしてしまう。初期設定のままだと壁(を想定したキューブ)にぶつかった際にひっかかって一歩も動かなかった。壁伝いに歩かせるために壁の摩擦を無くしたが、この方法が妥当なのかいまひとつ確信が持てない。
そもそも人が歩くのと、床の上で箱を引きずったり押したりするのは力の働き方が違うはず。足を負傷している場合は別として、人が歩くときには足を地面や床から浮かせて歩くので、単純に摩擦を調整するだけでは自然な歩行にならないのではないか。動摩擦と静止摩擦は別に設定できるが、調整してもうまくいかない。試行錯誤が足りないのか。
とりあえず歩くときに体が浮き上がらない程度に鉛直上方向の力を加える事にした。
ひとまず歩けるようにしたところで地面をそれっぽい見た目に作りたいと思ったが、グラフィックについても覚えることが多いようだ。今まで適当に作ったビットマップイメージをオブジェクトにアタッチして細かいことは気にしていなかったけど、改めてマニュアルを見ると知らない言葉がいくつもある。
大きく分けてマテリアル、シェーダー、テクスチャの理解が必要。それぞれに設定できる項目が多数あり、CGに疎い自分ではマニュアルを読んでも良く分からない。テクスチャのページなどを読んだ限りでなじみのない単語を列挙すると以下の通り。
- カラーチャンネル
- リアルタイム法線マッピング
- ライトのクッキー
- ライトマップ
- dLDR
- プレコンボリューション(フィルタリングとも言う?)
- リフレクションプローブ
- ライトプローブ
- ポストプロセス処理(プッシュ‐プル拡張?)
- テクスチャストリーミング
- メッシュレンダラー
- ミップマップ
- ミップレベル
- UVマッピング
- ジオメトリ
- ガンマ空間
まぁ、分からないなら調べろという事になるのだろうけど。自分の作品を作る上で本当に全てを理解する事に時間を割く必要があるかも分からない。Unity上で設定を変えたりすると何となく分かるものもあるかもしれない。Unity固有の知識なのかCG全般の知識なのかも自分には判別できない部分がある。
この他に、3D空間を自分の狙い通りの雰囲気にするには環境光や照明の設定も理解する必要があるはず。
細かい設定を全て理解したところで、自分のPCはゲーミングPCではないので、高いスペックを必要としない選択肢に限られるかもしれない。
マニュアルもUnityのバージョン毎にあると今更気付いたが、新しいバージョンのものは邦訳されておらずほとんど英語で書かれているので、余計に敷居を高く感じてしまう。