[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart1 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
573: 名前は開発中のものです。 [sage] 2020/07/22(水) 16:02:57.82 ID:v447EH7Y(1) AAS
オブジェクトから直接取るのは仕様で保証されないのに馬鹿だから永遠に理解できない
574
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 16:04:19.81 ID:hHni35+R(1) AAS
フレーム出力ごとに演算してるんでしょ、見えるわけないw
575
(4): 名前は開発中のものです。 [sage] 2020/07/22(水) 16:06:20.48 ID:fmteWCGc(1) AAS
すんません、すっごい基本的なことだと思うんですが、
ユニティのゲーム画面を、HDMIでつないで、プロジェクターや他のディスプレイに、
画面だけ出して、
手元のノートPCではインスペクタやGUI操作できるような環境ってどう設定すればいいんですか?
576
(1): 名前は開発中のものです。 [] 2020/07/22(水) 16:13:06.73 ID:N4vFd5MR(2/4) AAS
>>569
569(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 15:14:13.57 ID:rK8bipiH(1/14) AAS
HandleAngleは貴方が求めた計算値だよね?
ローカル軸にToAngleAxisかけてるからじゃないのかな?
Handle.localRotation.eulerAngles.xに-符号は付かないんだよ
~ >>571
571(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 15:37:55.82 ID:rK8bipiH(3/14) AAS
>HandleAngle = 358, HandleAxis = (1, 0, 0)
>HandleAngle = 359, HandleAxis = (1, 0, 0)
HandleAxisが右向き

>HandleAngle = 359, HandleAxis = (-1, 0, 0)
>HandleAngle = 358, HandleAxis = (-1, 0, 0)
HandleAxisが左向き

右向き/左向きで軸が入れ替わってるんだよ分かる?
すみません、仰る通り HandleAngle については見やすくするために負の値で表現しました。実際は

実際の角度:0 ~ 90 ~ 180 ~ 270 ~ 360 (0)
HandleAngle :0 ~ 90 ~ 0/360 ~ 270 ~ 360/0

です。

軸が反転する理由はよく分からないのですが、とりあえずそういうものだと受け入れて対処したという状況です。
Unity公式のクォータニオンの説明( 外部リンク[html]:docs.unity3d.com )では、角度は180°までしか表現できないとあります。
これは恐らく、
『ベクトル a 周りの (180 + x)° の回転 = ベクトル -a 周りの (180 - x)° の回転』
と表現される、という意味だと解釈したのですが、なぜか ToAngleAxis で返される Angle の値の範囲は0から360なんです。

一方、Quaternion.w = cos(θ/2) であることから、Quaternion.w からarccosによって角度を求める際、Quaternion.w と角度が一対一対応になるのは 0° < θ/2 < 180° すなわち 0° < θ < 360° ですから、角度を0から360で処理していても不都合は無いと思うのですが…
上の式で x に 180 + x を代入すれば、
『ベクトル a 周りの (360 + x)° の回転 = ベクトル -a 周りの -x° の回転』
となって私のと同じ状態になるので、この辺が絡んでいるのではないかと思っているのですが、よく分かりません。
577
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 16:30:52.23 ID:rK8bipiH(5/14) AAS
積算しろって言ってた人いたけどこうするとどうなる?

private float Angle;
private float oldAngle;

void Update()
{
Angle += oldAngle-Handle.transform.localRotation.eulerAngles.x;
Debug.Log(Angle);

oldAngle=Handle.transform.localRotation.eulerAngles.x
}
578
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 16:35:28.03 ID:rK8bipiH(6/14) AAS
>>574
Zファイティングって何で見えるの?
579: 名前は開発中のものです。 [] 2020/07/22(水) 16:43:32.75 ID:N4vFd5MR(3/4) AAS
>>577
前フレームとの差を取る方法は、奇数周目と偶数周目で正負が反転してしまうので使えないです。
時計回りに回すとすると、奇数周目では前フレームとの差が正なので Angle の値が増えていきますが、偶数周目では前フレームとの差が負なので Angle の値は減っていってしまいます。
580: 名前は開発中のものです。 [sage] 2020/07/22(水) 16:52:58.98 ID:rK8bipiH(7/14) AAS
Mathf.Absかますと?

Angle += oldAngle-Mathf.Abs(Handle.transform.localRotation.eulerAngles.x);
Debug.Log(Angle);

oldAngle=Mathf.Abs(Handle.transform.localRotation.eulerAngles.x);
581: 名前は開発中のものです。 [sage] 2020/07/22(水) 17:02:52.34 ID:rK8bipiH(8/14) AAS
ごめんごめん 90超えて下がるのか
なら無理か
どうやって積算したんだろうな?
582
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 17:38:53.67 ID:rK8bipiH(9/14) AAS
Quaternion Old=Quaternion.identity;
void Update () {
Quaternion tmp = Handle.rotation * Inverse.Old;
Debug.Log(tmp.eulerAngles);
Old=Handle.rotation;
}

関数で計算して無理なんだからQuaternionにしたところで無理だよね
オイラー角にすんなって事かね?
583: 名前は開発中のものです。 [] 2020/07/22(水) 18:06:18.27 ID:N4vFd5MR(4/4) AAS
>>582
いえ、オイラー角にせずにクォータニオンから ToAngleAxis で角度を取得する場合でも、

実際の角度:0 ~ 360 ~ 720 ~ 1080 ~ 1440 …
HandleAngle :0 ~ 360 ~ 0 ~ 360 ~ 0 …

のようになってしまうので、内部での角度の保持・処理の原理に起因する問題ではないかと考えています。
オイラー角にすると >>576 のようにもっと複雑になるので、クォータニオンの方がマシですが…
584
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 18:15:56.38 ID:/FsiL1D8(1) AAS
そのやりかたじゃできないって最初から言われてんじゃん
エディターのTransform見てできると思い込んでるんだろうけど
585: 名前は開発中のものです。 [sage] 2020/07/22(水) 18:38:34.55 ID:GXRUOYYj(1) AAS
>>578
Z-fightingってフレームとフレームの間に見えるのか、それは知らなかった。
586: 名前は開発中のものです。 [sage] 2020/07/22(水) 18:47:32.93 ID:rK8bipiH(10/14) AAS
>>.585
計算後にレンダリングしないフレームあるんだ
587: 名前は開発中のものです。 [sage] 2020/07/22(水) 18:54:16.43 ID:vnn1q21Y(1) AAS
>あるんだ
 あるのか?
 あるんだぞ
どっちだ?
どっちにしても何が言いたいのか分からんけどw
588
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 18:57:47.67 ID:rK8bipiH(11/14) AAS
なんでそんなにID変わるの?
キャラクターが点滅するように軸がパタパタと変わる時と同じかと思ったんだが違うのか
589: 名前は開発中のものです。 [sage] 2020/07/22(水) 19:21:55.40 ID:8QsX6b/f(1/2) AAS
>>588
上の流れでZ-fightingが出て来る理由、関連性が全く分からん
まずその点から説明してくれ

キャラクターが点滅する
軸がパタパタと変わる

590: 名前は開発中のものです。 [sage] 2020/07/22(水) 19:25:35.65 ID:rK8bipiH(12/14) AAS
前フレームと後フレームで計算値がかわるからとおもったけど
右回転で360度と左回転で-360は判別のしようがないと言いたいことは分かった
ならばそれを書けばよかったのではないか?
591: 名前は開発中のものです。 [sage] 2020/07/22(水) 19:45:40.39 ID:rK8bipiH(13/14) AAS
おちょくる事が目的で理解させる事じゃないからそういう言い回しでIDコロコロしてるって事だよね
592: 名前は開発中のものです。 [sage] 2020/07/22(水) 19:46:21.01 ID:Z3HI6Ch3(1) AAS
まだその話か
593
(1): 名前は開発中のものです。 [sage] 2020/07/22(水) 20:07:38.95 ID:8QsX6b/f(2/2) AAS
>>575
あなたのノートPCのことは分からないけど
うちはマルチ・モニター環境なのでGame Windowに限らず
どれかの窓をセカンド・モニター全体に大きく表示ってのは普通にやってる
残りは当然メイン・モニターに表示
なので、UnityというよりPC側の問題だからマルチ・モニターで検索して
594: 名前は開発中のものです。 [sage] 2020/07/22(水) 20:48:17.73 ID:vCvOYW/p(1) AAS
200ぐらい前に答えも、覚悟も出てるんだからそろそろ自前でやってちょうだいな。
595: 名前は開発中のものです。 [sage] 2020/07/22(水) 20:54:17.80 ID:rK8bipiH(14/14) AAS
積算って絶対嘘だよねw
596: 名前は開発中のものです。 [] 2020/07/22(水) 21:44:25.03 ID:aQLU6RRN(1) AAS
>>584
はい、 >>544
544(2): 名前は開発中のものです。 [] 2020/07/20(月) 17:58:01.54 ID:hNMBd3gW(2/3) AAS
>>421 です。解決しましたので報告します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoxMove : MonoBehaviour
{
//ハンドルの GameObject を指定させる
public GameObject Handle;

//ハンドルの角度と回転軸
private float HandleAngle;
private Vector3 HandleAxis;

void Update()
{
//ハンドルの角度と回転軸を取得
Handle.transform.localRotation.ToAngleAxis(out HandleAngle, out HandleAxis);

//偶数周目では回転軸の向きが反転するので、それを検知して角度を修正する
if(HandleAxis.x < 0)
{
HandleAngle = 360 - HandleAngle;
}

//ハンドルの角度に応じて箱を移動させる
this.transform.localPosition = new Vector3(0, 0, HandleAngle);
}
}
のやり方でできました。
597: 名前は開発中のものです。 [sage] 2020/07/23(木) 00:35:52.07 ID:ldxNVPpu(1) AAS
コード見せたくないなら動画で実演するだけでいいんだけど
何も出てこないのは流石にエアプとしか言いようがない
1-
あと 405 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s