原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】DOTweenのSetLookAtオプション

残暑

今年の夏はあまりに猛暑なので首掛けの扇風機を購入して通勤中に使っていたら、満員電車の中で目の前の女性の髪を吸い込んでしまい大変なことになった皆さんこんにちは。幸いスイッチを切ったらすんなり解けたので良かったのですが、めっちゃ睨まれた。

 

unity1week

評価期間が終わり結果が発表されましたが、相変わらずお絵かきガチ勢が強いなぁという印象です。特に奇麗なピクセルアートを見せる作品は評価が高く、絵作りの強さが楽しさや雰囲気、斬新さといった他部門の評価も引っ張り上げている傾向。見た目は大事ですね。

ジャンル的には製作期間が一週間という短い期間のため、いつもはパズルや2D横スクロールといったジャンルが多いのですが、今回はガッツリとしたAVGや疑似3Dっぽいアクションゲームもあったりしてバラエティに富んでいました。

まぁこれは評価期間が二週間に伸びたので、その分を製作期間に充てて製作する人が多かった事も一因かもしれません。

ちなみに私の作品は箸にも棒にも掛からぬ、といった具合だったので特に述べることはないです。

 

段々と投稿数が増えたり(今回は500!作品)、チームを組んで挑む人が増えたり、と盛り上がり傾向にあるunity1week
レベルが上がり過ぎてビビるんですが、これからも出来るだけ挑戦していきたいと思います。

 

みんなの味方DOTween

さて、製作中の脱出ゲーム内で下の図のようなギミックを作っています。

 

f:id:Karvan:20200901222449p:plain

下のほうにある列車のおもちゃを線路に沿って走らせるのですが、こういう場合に使えるのがみんなの味方DOTweenのDOPathというメソッドです。

 

var doPath = transform.DOPath(path, duration);
var doLocalPath = transform.DOLocalPath(path, duration);

 

pathはVector3の配列です。(Listじゃない)

pathで指定された座標(WayPoint)を順に向けて移動するアニメーションを作成できます。

なので、あらかじめ線路上に列車の通るポイントを指定しておいて、各車両のtransformにDOPathを使用して移動させるようにします。

 

 下の図内の青い四角がDOPathで指定するポイント

f:id:Karvan:20200901222616p:plain

 

で、実際に動かしてみると

f:id:Karvan:20200901222754g:plain

・・・・・

確かに線路上を移動していますが、明らかに脱線しています。各車両が進行方向に沿って回転していないのが原因です。
つまり進行方向に向かわせる処理が必要なのですが、そうしたときにはSetLookAtオプションを使用します。

 

SetLookAtオプション

その名の通り、Tween中のオブジェクトの向きを動的に更新してくれる設定です

 

var doPath = transform.DOPath(path, duration).SetLookAt (0.05f, Vector3.forward);

 

第一引数で指定した秒数先の方向が第二引数で指定した向きになります。
上のコードの場合なら、正面方向が0.05秒後に移動する位置の方向を向く、という指定になります。

 実際に動かしてみるとこんな感じ

f:id:Karvan:20200901223118g:plain

 

各車両が進行方向に沿った向きを向いてくれるようになりましたが、カーブ辺りの動きに違和感があります。連結部分が切れるような感じ。

こういった場合には、第一引数の値を小さくします。調べると最小値は0.0001fらしいので思い切って0.001f辺りを指定します。

 

f:id:Karvan:20200901223307g:plain

今度はカーブでもスムーズな動作になりました。

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。