ちこう寄れ。
- strato
- 2017年2月25日
- 読了時間: 2分
サードパーソンはカメラとキャラが遠く、折角のミクが見えない。 なので、BPを少し改変。 「ThirdPerson_BP」の「BluePrint」を覗くと、カメラは「cameraBoom」(Spring Arm)にぶら下がってる。 ここの「Target Arm Length」の値を変更すると、キャラに近づけることが出来るが、ここをユーザー入力で可変にしたい。
「編集>Project>input>Bindings>Axis Mappings」でマウスホイールを「Zoom」という名前で追加登録。

「コンテンツブラウザ>ThirdPersonCharacter」を開き、
初期値?を設定するので「Construction Script」で作業を行う。 まずは、変数「StartPos」を作成。 それを「Construction Script」にドラッグし、「セット」で追加。 「コンポーネント>CameraBoom」を「Construction Script」にドラッグし追加。 右クリックで「Get Target Arm Length」を検索(状況に合わせた表示はOFF)し、追加。 各ノードを繋げて「Taget Arm Length」の値を「StartPos」に突っ込む。

次は「イベントグラフ」 右クリックでZoomと入れると、「軸イベント」で出てくるのでこれを追加。 「インプット Axis Zoom」はホイールの前後で1か-1が返ってくるので、その値をTaget Arm Lengthに反映させればいい。
ホイールが一度入力されたら変数「StartPos」に加減算させ、その値を「Taget Arm Length」に反映。 乗算で「-20」をしているは、スピード調整とホイールの前後が逆だったから。

だけど、このままだとホイールの値に合わせてダイレクトにカメラが動くので、ラグを付けたい。 なので「TimeLine」を使って実装。 クリックで0以外が来たら「Timeline」で移動値を「Taget Arm Length」に送ってやれば、ラグっぽくなる。

近すぎたり遠すぎたりするので、「Clamp」で最大値と最小値を設定。「Delta Seconds」を挟んで、FPSの差による操作性の差を吸収。
これでミクの顔をアップで見られた。 もっとスマートの方法がありそうだな。

あと、短期間で連続で入力されたらスピードを変えるとかも、そのうち入れよう。
Comments