[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild3 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
18: 名前は開発中のものです。 [sage] 2020/01/13(月) 08:38:58 ID:QiViT9Gr Quaternion が難しすぎて滑らか回転の独自実装は無理だった… ので Update() の中で Lerp を使うことにしたけど、 Lerp の終了判定はどうするの? ※speedは適当 // Z軸正方向 transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, 0), speed * Time.deltaTime); // Z軸負方向 transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 180, 0), speed * Time.deltaTime); // X軸正方向 transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 90, 0), speed * Time.deltaTime); // X軸負方向 transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 270, 0), speed * Time.deltaTime); 上記の四つの処理の回転の終了判定が、それぞれ取りたい。 ちなみに以下では取れなかった。 // Z軸正方向 transform.rotation == Quaternion.Euler(0, 0, 0); // Z軸負方向 transform.rotation == Quaternion.Euler(0, 180, 0); // X軸正方向 transform.rotation == Quaternion.Euler(0, 90, 0); // X軸負方向 transform.rotation == Quaternion.Euler(0, 270, 0); http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/18
20: 名前は開発中のものです。 [sage] 2020/01/13(月) 11:04:47 ID:QiViT9Gr >>19 終了条件は Quaternion Lerp (Quaternion from, Quaternion to, float t); from が to に達した時が終了条件。 Z軸正・負方向、X軸正・負方向の4方向で頼む。 初心者サイトではたいてい "解説された軸の条件" だけでは動くが、実践ではまるで使えない。 単純な話だよ、"プレイヤーを東西南北の方向に滑らかに正対させる" そして、正対する動作が完了してから、次の動作を開始させたい。 この処理が聞きたいだけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/20
25: 名前は開発中のものです。 [sage] 2020/01/13(月) 12:15:46 ID:QiViT9Gr >>21 素晴らしい! 教えてもらった方法で自分がやりたいことが完全に出来た! 4個処理を書いてたのは、プレイヤーがブロックのどの方向に接触したかで、 処理を分岐させる為で、同時に処理するわけではなかった。申し訳ない。 いや、マジでありがとう。本当に理解している人から教えてもらえて、すごく助かった。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/25
32: 名前は開発中のものです。 [sage] 2020/01/13(月) 16:37:27 ID:QiViT9Gr そもそもの質問がターゲットを追うじゃなくて、 "プレイヤーを東西南北の方向に滑らかに正対させる" だよ。 で、>>21 の方法で求める処理が実装出来た、サンキュー! http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/32
33: 名前は開発中のものです。 [sage] 2020/01/13(月) 17:04:23 ID:QiViT9Gr >>26 は質問の意味が理解できなかったんだね。スマンスマン。 "プレイヤーを東西南北の方向に滑らかに正対させる" なので、Lerp が正解だ、RotateTowards では希望の動作にならない。 しかし皆ありがとう。理解するのにとても助けになった。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/33
37: 名前は開発中のものです。 [sage] 2020/01/13(月) 18:42:06 ID:QiViT9Gr >>36 ん? それでは動かないぞ。今試した。 >>21 の方法なら動いたけどな、確かに>>21の言う通り浮動小数点を理解出来てないっぽいね。 自分は Unity初心者で、初心者スレで訪ねてるんだから、>>21 のように、 わざわざコードを自分で書いて、動くか試してから教えてくれる人に本当に感謝したい。 まあ、間違って動かないコードもそれなりに参考になるからサンキュー! http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/37
39: 名前は開発中のものです。 [sage] 2020/01/13(月) 18:59:30 ID:QiViT9Gr まず >>26 で ID:auL79zSW が "現在位置からターゲットに向ける用途的にはLerpでなくTowards使うんだぜ" と言ってるのが、>>15 からの質問の文脈を無視してるね。 で、>>27 で ID:Rcgjsxsv が ”ターゲットあるならLookat の方が全然いいんだぜ” と言っているのは >>26 でターゲットと出てきたからだ。人の話を聞いてそれに反応してるんだよね。 でも、ドヤ顔して教えてくれて全然かまわないんだ。Unity初心者でも参考になる情報とそうではない情報の区別はつくから。 というか、自分の質問で争いになって申し訳ない気持ちだ。皆さんどうもありがとう。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/39
42: 名前は開発中のものです。 [sage] 2020/01/13(月) 20:15:44 ID:QiViT9Gr 質問スレなんで、質問に対する解決策の提案が出来なければ、誰にも感謝されないよ。 仮に、提案が間違っていても問題ない。一緒に考えてくれることがとてもありがたい。 教えてくれて本当にありがとう。 http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/42
46: 名前は開発中のものです。 [sage] 2020/01/13(月) 21:32:16 ID:QiViT9Gr 質問いいかな? マリオ64+初代トゥームレイダーみたいな3Dアクション作ってるんだけど、 スマホ画面のバーチャルボタンでの二つボタン同時押しがきつい。 例えば、Bダッシュジャンプ(※B押しながらAでジャンプ)とかが出来ない。 そこで物理コントローラでの操作はそのままで、例えばスマホ画面の バーチャルコントローラだけ、Bボタンを "離す入力" を遅延させることは出来ないかな? 例えばスマホではBボタンを離しても、0.5秒は押したままで判定されて、その隙にAボタンを押すみたいな。 スクリプト内では以下でコントローラの入力を取ってる。 UnityEngine.InputSystem.Controls.ButtonControl 自分が思いつくのは拡張メソッドとか? スマホ判定したら、特定のボタンの wasReleasedThisFrame が来たら、何とかして遅延実行させるとか? http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/46
48: 名前は開発中のものです。 [sage] 2020/01/13(月) 22:06:33 ID:QiViT9Gr >>47 いえいえ、いつもありがとう。 スクリプトでは例えば以下のように書いてるけど(※例えばYボタン) if (yButton.wasReleasedThisFrame) { // 処理 } 物理コントローラー接続時とスクリプトを変えたくないとしたら、 yButton.wasReleasedThisFrame の前に処理をインターセプト出来て、 本来の wasReleasedThisFrame が来たら 10フレ遅らせて wasReleasedThisFrame を発火させるとか。 なら、UnityEngine.InputSystem.Controls.ButtonControl を継承した自作クラスを作るとか? そんな入力イベントをバッファ出来る自作ボタンコントロールクラスとか出来るのかな? http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/48
49: 名前は開発中のものです。 [sage] 2020/01/13(月) 22:39:53 ID:QiViT9Gr とりあえず進捗 以下のようなクラスの継承では動かなかった。 public class BufferButtonControl : ButtonControl { // 処理を書く予定だった } 無理やりキャストして ButtonControl 型の変数に突っ込もうとしたが、Unity で実行時エラーが出た。 yButton = (BufferButtonControl ) Gamepad.current.yButton; しかし拡張メソッドは動いた。 public static bool WasReleasedThisFrame(this ButtonControl self) { Debug.Log("Hack!"); return self.wasReleasedThisFrame; } あとはこの中にスマホで物理コントローラ接続無しなら、10フレ程度バッファする処理を書けば… って、どう書くんだろう? http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/49
52: 名前は開発中のものです。 [sage] 2020/01/13(月) 23:13:16 ID:QiViT9Gr >>50 アドバイスありがとう。 タッチマネージャーを自作が良さげでいいのかな。 うーん、もともと ”このゲームは必ず物理コントローラを接続して下さいキリッ!” っていこうとしてたけど、 流石にそんな物理コントローラ用意するコアな人達は1%もいないと思い、スマホ画面上にボタン表示して自分で 動作テストしたけど、当然とても操作が難しかった。 でも、自分的にはスマホ的なタッチ操作はまだ考えてなくて、あくまでスーパーファミコン的な操作でやりたいと思ってる。 で、ボタンを離す動作の遅延処理を思いついたという流れ。 上に書いたように拡張メソッド自体は動くので、何とかバッファ処理出来ないかなと… スマホ画面でBダッシュジャンプを実装したいなあ… http://mevius.5ch.net/test/read.cgi/gamedev/1578720539/52
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s