[過去ログ] 【3Dゲームエンジン】Unity質問スレッド34 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
715(1): 2018/03/29(木)21:03 ID:GLHVviMR(6/6) AAS
>>712
はじめ見た感じクリッピング距離が原因のように思われる画面だったから。
実際は、Yの高さが、15から1.5になっててオブジェクトが切れてただけだが。
>>713
TargetはPlayerのTransformへの参照まで納められた変数だから。TargetCamPosはそのPlayerのポジションにPlayerとカメラのoffsetを足した位置。
チュートのFollowCamera.csコピペで丸写ししても同じバグ出る。
5はSmoothingで移動量じゃないんでかけること自体がおかしい。
だからDeltaTimeを逆数(1/Deltatime)にしたらうまくいった。
716(1): 2018/03/29(木)21:26 ID:KZf2IRaq(1) AAS
>>715
だから『今現在のカメラ位置』から次のカメラ位置に動かすんだろ
なんでプレイヤーの位置から次のカメラ位置に動かそうとしてるんだよ?
あとお前の計算式だが、
smoothing * Time.deltaTimeは「5 * 0.01666... = 0.08333...」
smoothing * (1 / Time.deltaTime)は「5 * 60 = 300」
Lerpのtには補間の割合を0.0-1.0の範囲で指定するんだからどっちが正しいか分かるな?
お前が想定通りと言ってるのはLerpに1.0を超える補間値を指定してBに直接ワープしてるだけなんだよ
717: 2018/03/29(木)21:49 ID:QSBKoT/M(1) AAS
leapに、デルタタイムだけ入れると、ずっと、1にならないからゴールしないんじゃ?
718(1): 2018/03/29(木)22:26 ID:6Os1P1Rs(3/3) AAS
スクリプトできない人はアセットを買うほうがいいですよ
719: 2018/03/30(金)00:02 ID:kZ+tQr4Q(1/8) AAS
>>716
チュートリアル通りだと何もしなくてもカメラの高さが1.5とかようするにゲーム開始前のカメラのポジション*0.1になるんだからしゃあないじゃない
720: 2018/03/30(金)00:05 ID:ZJPrD8pf(1/3) AAS
チュートリアルはある程度感覚をつかめたら、あとは見なくていいよ
721: 2018/03/30(金)00:13 ID:MeGK4UNG(1/4) AAS
>>718
アセットを買ったからこうなってるんですけど
722: 2018/03/30(金)00:15 ID:MeGK4UNG(2/4) AAS
>>714
原因はマスタークライアントが作ったのをクライアントでうごそうとしてたからみたいです
物理だけマスターでやって途中まではクライアントってやってたから2人で動かしちゃってたんですね
これ頻繁に変えるのはまずそうなんですよねぇ
723(1): 2018/03/30(金)00:17 ID:kZ+tQr4Q(2/8) AAS
private void FixedUpdate()
{
Vector3 targetCamPos = Target.position + offset;
Debug.Log(Time.deltaTime);
//float T = Smoothing * (1/ Time.deltaTime);
transform.position = Vector3.Lerp(Target.position, targetCamPos, Smoothing * Time.deltaTime); //←ここの結果がおかしい
Debug.Log(Smoothing * Time.deltaTime);
}
}
結果は
画像リンク
これをdeltaTime逆数にするだけで上手く行くんだしまあいんじゃね
724: 2018/03/30(金)00:20 ID:kZ+tQr4Q(3/8) AAS
このとき、Smoothingが5で設定してて、5*0.02すると、0.1なるんだよ。
725: 2018/03/30(金)00:27 ID:ZJPrD8pf(2/3) AAS
コンソ一ル表示は省略されるよ
726: 2018/03/30(金)00:29 ID:kZ+tQr4Q(4/8) AAS
Smoothingを50にしてもうまくいくけど、チュートじゃ5f書いてるし
727(1): 2018/03/30(金)00:34 ID:5sE7XTyv(1/2) AAS
逆数にして上手くいくのはたまたま数値が合っただけなんじゃね?
FixedUpdateのフレームレートを変更しても期待通りの動作する
728: 2018/03/30(金)00:36 ID:5sE7XTyv(2/2) AAS
>>727
最後のクエスチョンマークが抜けたw
729: 2018/03/30(金)00:43 ID:8i/x7c2z(1/2) AAS
targetCameraPosに近付くにつれてカメラの移動量を減らすためにやってるからSmoothing * Time.deltaTimeであってるよ。
まあ、これかなり「それっぽく動くように」書いてあるコードだし、fixedDeltaTimeじゃないから良い例ではないしSmoothingをちょっと変えただけで極端に変化しちゃうけど。
床が見切れるのはoffsetの値の問題だね。
730: 2018/03/30(金)00:55 ID:8i/x7c2z(2/2) AAS
カメラの移動をふわーっとスムージングさせたいわけじゃなくて、ターゲットに張り付かせたいならtransform.position = targetCamPosでいい。
というかTarget.positionとtargetCamPosのLeapだと、見る対象とカメラ目的地との中間にカメラが存在し続けることになるから、想定よりずっとカメラが寄ってると思う。
どういう処理になってるのかよくわかってないみたいだし、空のGameObjectにtargetCamPosを常に設定し続けて、どういう位置関係になってるか理解したほうがいいよ。
731(1): 2018/03/30(金)01:21 ID:kZ+tQr4Q(5/8) AAS
smoothing * Time.deltaTimeも何回もFixedUpdateで回ってこようと一定のはずだし
変わるわけない。
デルタタイムは加算じゃなく、毎回一定 Smoothingも変わらない。
逆にチュートリアルのやつみてなんであれでうまく動くのか不思議。
Time.deltatimeを累算するなら、
FixedUpdateよりまえに、
private float duration = 0;
//で宣言して、
private void FixedUpdate()
{
Vector3 targetCamPos = Target.position + offset;
duration += Time.deltaTime;
transform.position = Vector3.Lerp(Target.position, targetCamPos, Smoothing * duration);
これだとSmoothingに小さい数字入れたらなめらかにカメラ動くが。
732: 2018/03/30(金)01:21 ID:cmyHbruc(1) AAS
>>723
頭の悪い子だなぁ
transform.position = Vector3.Lerp(A, B, T);
このAで渡すものが間違ってるんだよ
今現在のリアルタイムのカメラ位置を入れろって言ってるだろ?
そのTarget.positionのどこが最新のカメラ位置なんだよ
素直にチュートリアル通りにtransform.positionを入れろよ
733: 2018/03/30(金)01:23 ID:kZ+tQr4Q(6/8) AAS
チュートリアルの書いてる通りにやると中間にカメラが存在し続ける
734: 2018/03/30(金)01:25 ID:kZ+tQr4Q(7/8) AAS
よく見ると、Transform.positionなってるやん
735: 2018/03/30(金)01:29 ID:kZ+tQr4Q(8/8) AAS
アルファベットは見間違えやすいな
736: 2018/03/30(金)02:10 ID:PRH1zpcJ(1) AAS
>>731
そりゃ代入する値を計算するのに使用する数値が変わらなかったら変わるわけないよ。
transform.position = Vector3.Leap(transform.position, targetCamPos, Smoothing * Time.fixedDeltaTime);
ってのは、毎フレーム、自分(カメラ)の位置と目標地点の中間(Smoothing * Time.fixedDeltaTimeの割合位置。Smoothingが5なら普段は5 * 0.02で約0.1になるから、10%の位置)に自分を移動するって処理なわけ。
自分を移動させて、次のフレームでまた自分の位置と目標地点の中間に移動して…って徐々に近付いていくから移動しながらカメラが追尾してるように見えるの。
例えば一本のひもを、9/10に切って、また9/10に切って、それもまた9/10に…ってやっていくと、切る位置はどんどん端っこに近付いていくでしょ?
737(1): 2018/03/30(金)09:00 ID:YhStcPQv(1) AAS
アセットを買いましょう
無理はいけません
738(1): 2018/03/30(金)09:48 ID:MeGK4UNG(3/4) AAS
>>737
この人荒らしかなにかですか?
739: 2018/03/30(金)10:28 ID:e77dglm9(1) AAS
>>738
無視してください。こういうスレの澱です。
740: 2018/03/30(金)10:55 ID:Aqow9iGF(1) AAS
正規表現で簡単にNG出来るから番号が飛ぶだけ
741(2): 2018/03/30(金)12:55 ID:Id0Sc9R2(1/2) AAS
右クリックの動作をTilePalletのPickerにしたいんだけど無理?
742: 2018/03/30(金)14:02 ID:h3NvT94f(1/2) AAS
>>741
アセットをかっちゃえば?
743(1): 2018/03/30(金)14:33 ID:ZJPrD8pf(3/3) AAS
>>741
それはエディタ上で?それともゲームの動作として?
744(1): 2018/03/30(金)16:42 ID:MeGK4UNG(4/4) AAS
アセット兄貴に聞くんですが
Spriteを任意の形状に切断できるアセットってありますか?
メッシュカッターのスプライト版みたいな
スプライトって矩形ベースだからなかなか方法が見つからなくて
コライダーは弄れてもスプライトの一部をランタイムで透過する方法がいまいち見つからない
上下前次1-新書関写板覧索設栞歴
あと 258 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s