[過去ログ] 【3Dゲームエンジン】Unity質問スレッド31 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
750
(2): 2017/10/15(日)21:01 ID:tc0SIFEk(2/2) AAS
>>747
単純に1を"1"にまたはその逆の処理です。
海外フォーラムの方でint→stringを標準的な方法で何度もやると
GCコレクト関連のスパイク現象が発生するらしく、
実際自分の環境でもかなりのフレームダウンを確認できたんですが
これはstringbuilderで変換処理をすると高速化できるようで
実装後、解決したのでint→stringの処理方法は理解できたという話でした。

で、この逆のstring→intでは同様の問題は発生しないのかという
疑問ですね。今のところフレームダウンは確認できてないのですが
int→stringだけやたら重くなるのかが知りたかったということです。
初歩的な話かと思ってざっくり質問したせいもありますが、そうでもないのかなと。
751
(1): 2017/10/15(日)21:02 ID:Vq5IcL8H(4/4) AAS
>>746
同じにはならない。
スクリプトリファレンスにもQuaternionの*演算子の項目に以下の様に明示してある。

左辺*右辺の結果による回転は、左辺→右辺の順にシーケンシャルにふたつの回転を適用したのと等しくなる
これは回転が可換でないことを意味し、lhs*rhsはrhs*lhsと同じ結果を返さない

意訳なので原文はリファレンス嫁

外部リンク[html]:docs.unity3d.com
752: 2017/10/15(日)21:28 ID:SXJ8HJfT(2/2) AAS
>>748-749
Thx シミュゲー作るのに向いてるのってなんかないかな・・・
753: 2017/10/15(日)21:39 ID:7AfUU003(3/3) AAS
>>751
確かに、順番が違うと結果は異なってくるな。失礼

>>750
なるほど。自分では助けになれそうにない):-<
むしろ色々教えていただいてサンクス
754: 名無し@キムチ 2017/10/15(日)21:58 ID:ISo7eWT3(2/2) AAS
>>744
マニュアルにはただGetComponent<>でトグルグループを取得する方法しか出ていなかったので、いくつもある中から特定のトグルグループを取得する方法がわからなかったのです。
仕方ないので、一番幼稚で面倒くさいやり方で解決しました。それはたくさんあるトグルボタンにひとつひとつスクリプトを付けていくというバカみたいな方法です。
この方法しかわからなかったので・・・・w
755
(2): 2017/10/15(日)22:13 ID:qR/mhBxM(1) AAS
VRゲーム作ろうとしています。

実際のルームスペース範囲内で動いた位置だけではなくて、
画面内で実際どこにプレイヤーがいることになってるかの位置を取得したいんですがやり方がよくわかりません。
どなたかよろしくお願いします…。
UnityとVIVEでSteamVRを使って開発しています。
756: 2017/10/15(日)23:08 ID:8yodGn3f(2/2) AAS
画面内というのがフィールド上の位置なのか画面上の二次元座標なのかわからんから答えようがない
前者ならカメラを割り当ててるobjectの親のtransform.positionじゃないのか
757: 2017/10/15(日)23:10 ID:IiTNc5Pn(1) AAS
>>755
VRはアセットを買えば簡単ですよ
758: 2017/10/16(月)02:35 ID:nSARbRng(1/4) AAS
>>755
質問のルームスペースと区別した"画面内"というのが意味わからんのだが
プレイヤーの位置=HMDの位置=メインカメラの位置ということで
単純にCamera.main.transform.positionじゃ駄目か?
759: 2017/10/16(月)03:01 ID:nSARbRng(2/4) AAS
「画面内の実際の位置」ってひょっとして(ルームスケールの現実世界と区別した)ゲーム内の空間、つまりワールド座標系での絶対的な位置のことを言ってる?
3DCGで画面つったらカメラのスクリーン平面のことだから紛らわしいわ
760: 2017/10/16(月)14:20 ID:ij3u7Go9(1) AAS
>>750
なるほど言いたいことは理解した。変換は関係ない
そのスパイクは目的のstringを生成する過程で実際には使われないstringインスタンスが大量に生成されて、そのゴミをgcが回収するのにコストがかかる為に発生している
原因としてはstringがimmutableだから、順次連結すると、過程が全て新たなインスタンスとして作られてしまうことにある
だからStringBuilderを用いて無駄なstringインスタンスを作らない様にすることで改善する訳だ

これは、stringを連結する際などに発生するものでint→stringの変換自体が問題ではない
また質問のstring→intの変換ではstringインスタンスが新たに生成されないため同様のスパイクは発生しない

ここで覚えておくべきなのは、stringを連結する場合、StringBuilderを使うことの1点だけだぞと
761: 2017/10/16(月)15:14 ID:uyFDDTpz(1) AAS
アセットを買えばGCのスパイクも問題ありませんよ
762
(1): 名無し@キムチ 2017/10/16(月)18:15 ID:pMcheVv4(1/4) AAS
SF映画によくあるように、ゲーム画面の空間全体を歪曲させる方法はありますか?
もしあれば、どうやるのかご教授ください。
よろしくお願いします!!!!!!!!!!
763: 2017/10/16(月)18:46 ID:nSARbRng(3/4) AAS
>>762
やったことないけどShaderいじればできそうじゃね
764: 名無し@キムチ 2017/10/16(月)21:23 ID:pMcheVv4(2/4) AAS
すみません。取り急ぎ質問なのですが、プロジェクトを別名で保存する方法はありますか?
ちょっとプロジェクトを2つに分岐して、それぞれ開発を進めたいもので・・・
よろしくお願いします!!!!!!!!!!
765
(1): 2017/10/16(月)21:35 ID:8lS95IVH(1) AAS
ありません
766
(1): 2017/10/16(月)22:04 ID:X2NwMyG1(1/3) AAS
3DRPGを作っているのですが、会話イベントの制御が思いつきません。
キャラクターモデルの方向を向き特定のボタンを押すと、相手がこっちを向いてメッセージウインドウを表示できるようにしたいのですが、どうすればいいでしょうか。
767
(1): 2017/10/16(月)22:16 ID:jrXaIUMd(1/2) AAS
>>766
?キャラクターモデルの方向を向き
?特定のボタンを押すと
?相手(のモデル)がこっちを向いて
?メッセージウインドウを表示

?は仕様がざっくりし過ぎてるでなんとも言えない。 プレイヤーに検知範囲を設定するのが楽だと思う
?はifでボタンを押すのを取ればいい
?はプレイヤーの位置に向けてtransform制御でNPCキャラの向きを変更すればいい
?はNPCの位置を画面上の位置に変換してそこに会話表示UIを移動、表示させればいい

参考になるのはここらへん
外部リンク[html]:docs.unity3d.com
外部リンク:tsubakit1.hateblo.jp
外部リンク:gametukurikata.com
768: 2017/10/16(月)22:25 ID:X2NwMyG1(2/3) AAS
>>767
ありがとうございます!
なるほど向きの制御はtransformを使えばいいんですね!
それではちょっとUIの勉強をしてきます。
769
(1): 2017/10/16(月)22:45 ID:l3Y8H7H5(1/2) AAS
RPGってことならボタン押した時の
攻撃、会話、アイテム取得とかの条件分岐が必須じゃないかな。

会話イベントならプレイヤー正面からrayを指定距離内で
飛ばして会話相手に当たりtrueになりかつtag比較で
人物と判定できたらrayで取得した会話相手をlookatでプレイヤー方向に向かせて
その人物内に仕込んでおいたコンポーネントから会話IDを取得、
そのIDを元にXMLかCSVのテキストデータにアクセスして
会話テキストをUI表示の流れじゃないか。
770
(2): 名無し@キムチ 2017/10/16(月)22:53 ID:pMcheVv4(3/4) AAS
>>765
いろいろやってみましたが、プロジェクトを別名で保存する方法は見つかりませんでした・・・
それなら新しいプロジェクトに、他のプロジェクトのシーンをインポートすることはできますか?
よろしくお願いします!!!!!!!!!!
771
(1): 2017/10/16(月)22:57 ID:jrXaIUMd(2/2) AAS
>>770
バックアップ取りたいならプロジェクトファイル丸ごとコピーしてリネームして読み込めばいいじゃない
772
(2): 2017/10/16(月)22:59 ID:Prp4g1w+(1) AAS
>>770
アセットを買えば出来るかもしれないです
773
(1): 2017/10/16(月)23:01 ID:l3Y8H7H5(2/2) AAS
プロジェクト名を変えるだけなら
フォルダ名変更してプロジェクトフォルダ内の.userprefs と.sln削除して
UNITYからプロジェクトを開くでいけない?
フォルダコピーしてそれぞれに上記のことをやる
774: 2017/10/16(月)23:07 ID:X2NwMyG1(3/3) AAS
>>769
なるほど。rayはそんな応用もできるんですね。
勉強になります!
775: 2017/10/16(月)23:16 ID:nSARbRng(4/4) AAS
>>772
流石にできない可能性もあるのか
776: 名無し@キムチ 2017/10/16(月)23:25 ID:pMcheVv4(4/4) AAS
>>771>>772>>773
できました!!なりました!!
新しいプロジェクトつくって、前のプロジェクトのフォルダやファイルを新しいほうにコピペしたら、インポートに時間がかかりましたが、できました!!!!
プロジェクトフォルダ内の.userprefs と.sln削除の削除はよくわからなかったのでしませんでしたが、ビルドしたらちゃんと動きました!!
ありがとうございました!!!!!!!!!!!
777: 2017/10/16(月)23:58 ID:xARJucX/(1) AAS
>>743
ありがとうございます!

おっしゃられる通りの結果でした

実際にやってみたら、2個目の回転qを、
右から乗算すると、ローカル軸を基準とした回転の合成となり、
左から乗算すると、ワールド軸を基準とした回転の合成となりました
778
(1): 2017/10/17(火)00:06 ID:hIHclQGS(1) AAS
クォータニオンの積の順序を交換すると、

ワールド軸を基準に回転を合成するのか、
ローカル軸を基準に回転を合成するのかが変わるんですね!

q = q1 * q2の場合、

回転qは、q1回転で回転軸も変更してからq2回転を追加した回転 という意味と、
(ローカル回転はq1→q2の順序)
回転qは、q2回転後、不変の元の回転軸でq1回転を追加した回転 という意味、
(ワールド回転はq2→q1の順序)
両方が考えられるんですね!!

q V = (q1 * q2) * V = q1 * (q2 * V) と考えると、
ベクトルVを、ワールド軸基準にq2回転後、
ベクトル(q2 * V)を、ワールド軸基準にq1回転とも考えられますね
779: 2017/10/17(火)10:45 ID:Kg+GXth5(1) AAS
terrainのtextureって32個までしか使えないのかな?
33個以降のテクスチャはterrainに塗ろうとすると真っ黒になってしまう
1-
あと 223 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.024s