2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【3Dゲームエンジン】Unity質問スレッド26 [無断転載禁止]c2ch.net

1 :名前は開発中のものです。:2016/08/06(土) 10:54:54.50 ID:D8D0bsd/.net
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity総合スレッド28 [転載禁止](c)2ch.net
http://echo.2ch.net/test/read.cgi/gamedev/1454596460/l50

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・ユーザーガイド
 http://docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド25
http://echo.2ch.net/test/read.cgi/gamedev/1465721773/

66 :名前は開発中のものです。:2016/08/18(木) 13:36:21.50 ID:teq4h2ez.net
AIプロ「なん・・・だと?」

67 :名前は開発中のものです。:2016/08/18(木) 17:04:25.12 ID:Jg4NmsH4.net
他と比べてゲームはアルゴリズムが複雑すぎる

68 :名前は開発中のものです。:2016/08/18(木) 19:38:53.05 ID:EkYF26JR.net
複雑なゲームプログラム作る人なんて何十人のプロジェクトでもたった数人の秀才たちだけ
ほとんどのゲーム関係者はプログラミングとは関係ないとこで仕事してる

69 :名前は開発中のものです。:2016/08/18(木) 20:25:45.32 ID:ykSiB8IJ.net
腕の良いプログラマが公開してるデモや技術資料をたまに見るが、
ああいう人達が何かゲームを完成させたという話をあまり聞かない

70 :名前は開発中のものです。:2016/08/18(木) 20:35:44.29 ID:5n3D0lf1.net
あまり?じゃあいくつ聞いたんだよ

71 :名前は開発中のものです。:2016/08/18(木) 21:31:28.29 ID:a2KvP8wo.net
まあ成果物を公表する機会ってあんまり無いしなあ
Unityなら同人ゲームとか作ってれば別だろうけど

72 :名前は開発中のものです。:2016/08/18(木) 21:34:39.09 ID:pW4GFcrv.net
同人ゲー作ってないで会社で働いてるんじゃないの
腕があるなら引っ張りだこだろうし

73 :名前は開発中のものです。:2016/08/18(木) 21:45:01.08 ID:mgBlCt7n.net
>>69
そりゃあ畑が違うからね。
プログラマはソースを読み書きできるのであって、ゲームデザインできるわけじゃないよ。内部のロジックは作れるけど、ゲームの「画作り」とかレベルデザインはまた別の才能が必要だと思う

74 :名前は開発中のものです。:2016/08/19(金) 01:41:09.99 ID:6ZlOkFXp.net
unity2dって画像の背景をあらかじめ自分で透過処理しておかないといけないんですか?
背景が真っ黒なキャラクター画像を使いたかったのですが・・・

75 :名前は開発中のものです。:2016/08/19(金) 02:59:18.74 ID:/EjNTis4.net
>>74
パンがなければケーキを食べればいいじゃない
レタッチソフト使えないならシェーダ評価すればいいじゃない

76 :名前は開発中のものです。:2016/08/19(金) 08:11:59.03 ID:6ZlOkFXp.net
>シェーダ評価すればいいじゃない
すまん、くわしく

77 :名前は開発中のものです。:2016/08/19(金) 08:37:39.96 ID:057SvZeP.net
>>76
こういう話
http://wiki.unity3d.com/index.php/Transparent_Single_Color_Shader

78 :名前は開発中のものです。:2016/08/19(金) 13:05:13.62 ID:MfZolbIM.net
>>75
>シェーダ評価すればいいじゃない

プログラマーぽい言い方w
憧れるww

79 :名前は開発中のものです。:2016/08/19(金) 20:48:26.53 ID:El7UuHQ0.net
プロシージャルで実行時にデータを生成するものを生成後にシリアライズして保存しておきたいのですが、
prefabutility.replacePrefab()で値を保存しようとしてもエディタ上でしか動きません。
単純に生成したデータを取り出しやすい形でシリアライズしたいだけなのですが、別に良い方法は有りますでしょうか。
playerprefsに入れるのはなんか違うし……

80 :名前は開発中のものです。:2016/08/20(土) 09:17:20.49 ID:G6/l+4JG.net
>>79
UnityのGameObjectとかのクラスを含んでいないなら普通にシリアライズして書き込み可能なPathに突っ込めば良いのだけど。(XMLでもJSONでも、実験以外オススメはしないけどPlayerPrefsに文字列として突っ込んでも良いし)
含んでいると実行時はちとムリじゃないかな?(Prefabの書き換えはEditor用だし)

81 :名前は開発中のものです。:2016/08/20(土) 10:40:36.50 ID:59ryz1Y8.net
>>79
それはゲーム業界では一般的にセーブ機能と呼ばれるものだよ…
ttp://magnaga.com/unity/2016/01/11/unity-save/

82 :名前は開発中のものです。:2016/08/20(土) 11:12:38.40 ID:Lc7rc6VO.net
公式のライブトレーニングで最近Scriptable Objectsが続いてるから推奨してるのかもよ
外部ファイルに保存するよりずっと手軽だよ

83 :名前は開発中のものです。:2016/08/20(土) 13:29:13.76 ID:SUxNn72f.net
ゲーム外時間をオフラインでチェックできるプラグイン無料でどっかにないかな
最近のアプリはオフラインで時計いじっても変えられないよね

84 :名前は開発中のものです。:2016/08/20(土) 14:38:41.15 ID:ZZLoYJLd.net
ゲーム外ってどういうことかな
察するに時計変更系の不正対策かな
単にゲーム中時間を計測するならdeltaTimeでも加算して永続化しとけばいいと思うけど、ゲームしてない時の時間を裏取るならオンラインでNTPサーバでも参照するしかないんじゃない

85 :名前は開発中のものです。:2016/08/20(土) 15:23:43.95 ID:yunjYFxQ.net
放置系アプリの時刻操作を不正と言われるのはしっくり来ない
時計進めなかったらクリアまでリアルで数百年掛かるアプリとか平気であるからな

86 :名前は開発中のものです。:2016/08/20(土) 19:00:11.82 ID:QRMw57ry.net
そんなゲームは捨ててしまえw

87 :名前は開発中のものです。:2016/08/20(土) 21:05:06.49 ID:l+d3uJAW.net
>>85
クッキークリッカー系のアプリに終焉を求める方がどうかしてるけどなw

88 :名前は開発中のものです。:2016/08/21(日) 22:36:17.83 ID:LLQDZSWg.net
AdMobのネイティブ広告って、
まだUnityに対応してないんでしょうか?

89 :名前は開発中のものです。:2016/08/21(日) 22:49:08.97 ID:ju/x4vEG.net
質問です
unityでexcelのような表を表示させて、データをいじれるようにしたいのですが、GUI並べて、それっぽいものを作るしかないでしょうか?
それとも、excelみたいなGUIはあるのでしょうか?

90 :名前は開発中のものです。:2016/08/21(日) 22:56:40.80 ID:ahGGETms.net
>>89
作り付けの表計算機能はない。
だから「GUI並べて、それっぽいものを作るしかない」ね

91 :名前は開発中のものです。:2016/08/21(日) 23:59:36.50 ID:9ZwIxvTH.net
>>90
ありがとうございます
やってみます

92 :名前は開発中のものです。:2016/08/22(月) 20:02:22.42 ID:YEl/jjEb.net
作ったプロジェクトをUSBで他のPCに移動しても使えるようにするにはどうすればいいですか?

93 :名前は開発中のものです。:2016/08/22(月) 20:23:54.38 ID:7Sz325Im.net
使えないっけ?

94 :名前は開発中のものです。:2016/08/22(月) 22:02:49.64 ID:s9Czu+9v.net
いやそのまま開けるだろ
5.4になって変わったのか?

95 :名前は開発中のものです。:2016/08/22(月) 22:49:40.81 ID:FlKvhPf4.net
ファイルシステムや文字コードの違いでそのままじゃ開けないとか以外は

96 :名前は開発中のものです。:2016/08/23(火) 09:27:08.38 ID:rq7/gI1u.net
>>92 新規でプロジェクト作って移動したいプロジェクトを新規で作ったプロジェクトと同じ名前にして起動すればいい
もちろん同じフォルダ内に置いて

97 :名前は開発中のものです。:2016/08/23(火) 10:12:55.75 ID:aTSn8auE.net
そんな事しなくて普通にファルダコピーしただけで動く
もちろんアセットにしてエキスポート、インポートしても動く
新しいバージョンから古いバージョンへは基本動かない

98 :名前は開発中のものです。:2016/08/23(火) 10:30:08.16 ID:KzCtSrx9.net
Gitお勧め

99 :名前は開発中のものです。:2016/08/23(火) 11:30:43.03 ID:VUOsRbsD.net
素朴な疑問なんですが、
デフォルトの MainCamera と Canvas の領域がまったく異なるのはどうしてですか?
Camera の範囲を Canvas にあわせているのですが、正しいでしょうか?

100 :名前は開発中のものです。:2016/08/23(火) 11:41:09.94 ID:yDD6X/jq.net
>>99
Canvasは同じスペース上にあるけど描画の仕組みは
他のオブジェクトと根本的に違う。
カメラを合わせる必要はない。
インスペクター上でRenderModeをScreenSpace-Cameraにして
カメラを指定してやれば自動でカメラにあうようになる。

101 :名前は開発中のものです。:2016/08/23(火) 12:20:51.53 ID:bTRjFqhU.net
Canvasは何であんな邪魔くさい形で表示してるんだろうな
シーンビューに置く必然性が無いんだから別窓に分ければ良いのに

102 :名前は開発中のものです。:2016/08/23(火) 13:08:05.08 ID:VUOsRbsD.net
>>100
ScreenSpace-Cameraが便利そうなのでこれでやってみます。
ありがとうございました。

103 :名前は開発中のものです。:2016/08/23(火) 13:38:49.19 ID:JkGv7l3C.net
Photonを使って2DアクションCo-opゲームを作ってるんですが
敵の同期をする時、プレイヤーと同じように位置とアニメーションを同期すると
通信負荷が限界に達するようで切断してしまいます。
ダメージ処理も含めて敵の同期はクライアントで行うべきという記事を読んだのですが
ランダム系のAIステートを同期するためにはどうすべきでしょうか?
どうしてもマスタークライアントで処理したものを全員に送る形しか思いつかないのですが…

104 :名前は開発中のものです。:2016/08/23(火) 16:13:30.25 ID:Vwkbt73+.net
>>103
セッションを作成するときに共通の乱数のシードを設定して、各クライアントはそれで初期化すればよろし。さすれば自然とランダム系の動きも同期するで。
(組み方にもよるけど)

105 :名前は開発中のものです。:2016/08/23(火) 17:51:30.39 ID:JkGv7l3C.net
>>104
シードを知りませんでした…、ありがとうございます。
あらかじめRandom.Seedで値を設定しておけばRandom.Rangeで求めた数値を
Seed値に合わせ全てのクライアントで同じ結果にできるのですね。

106 :名前は開発中のものです。:2016/08/23(火) 18:12:23.61 ID:ZYrHvchU.net
そう、同じ数字が同じ順番で出てくる
通常はそれじゃ困るので時刻をシードにしたりしてるが
同じデータを再現したいとき等はあえて数字を固定するね

107 :名前は開発中のものです。:2016/08/23(火) 19:06:02.52 ID:DD/wzxta.net
>>103
104と別解だとステートの変更をマスターからスレーブへ通知するってやり方もあるよ

108 :名前は開発中のものです。:2016/08/23(火) 22:23:03.50 ID:twPCWgkX.net
>乱数
Unityは大丈夫だったと思うけど、
たまに、そのマシンあるいは同じOSでしか再現してくれないのがあるよな

109 :名前は開発中のものです。:2016/08/23(火) 23:32:55.03 ID:8PzqXbjG.net
どうしても心配な場合はメルセンヌ・ツイスターとかのライブラリ使った方がいいな。
UnityのAssetStoreにもあるし。

110 :名前は開発中のものです。:2016/08/24(水) 11:37:53.38 ID:9ebosI1v.net
uGUI と重なる Sprite の当たり判定について質問します。
OnMouseDown イベントで IsPointerOverGameObject() が true ならば無視するようにしました。
これで、ボタンなどが手前にある場合は成功しました。

しかし、 uGUI Image が背後にある Sprite でも IsPointerOverGameObject() が true になってしまいます。
見た目上は Sprite が手前にあるので、そちらだけ反応させたいのですが
前後関係を含めた当たり判定はありますか?

111 :名前は開発中のものです。:2016/08/24(水) 12:09:20.98 ID:xr1E26+3.net
質問です。
レトロゲームの「クイックス」のように
囲まれた範囲を領地化するために
範囲を取得したいのですが、
案が浮かびません。

何か方法はありますでしょうか?

112 :名前は開発中のものです。:2016/08/24(水) 18:39:39.29 ID:xoHq8QPD.net
>>111
ゲームの内容に寄る
領地がConvexポリゴンで表せるかとか、ちなみにQIXのは矩形リージョンの集合に分割することで領域を区別してた

113 :名前は開発中のものです。:2016/08/24(水) 19:48:18.11 ID:wzwl+oL+.net
Unityでシーンが大量にあると、起動が遅くなったりしますか?
他にも何かデメリットはありますか?

114 :名前は開発中のものです。:2016/08/25(木) 00:03:13.61 ID:DgLaV+Bt.net
すみません、初心者な質問です。
enemy.AddComponent(

115 :名前は開発中のものです。:2016/08/25(木) 00:06:50.32 ID:DgLaV+Bt.net
すみません、初心者な質問です。
enemy.AddComponent("Halo")
でHaloのコーンポネントをスクリプト上で作ったCubeに追加したいんですが。
上記コード(参考にしてる本が古い)が最新でないらしく。

UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(enemy, "Assets/spaceship.js(82,9)", "Halo")

に変換されて、Haloを追加できていないままになります。
これはスクリプト上で解決できますか?

116 :名前は開発中のものです。:2016/08/25(木) 00:17:31.21 ID:wn30Advx.net
>>115
なんか言ってることが曖昧というか
質問に適切な情報がない気がする

Haloがコンポーネントならこれじゃないの
http://qiita.com/junya/items/e462163cb4c170918e76

gameobjectならgetcomponent

117 :名前は開発中のものです。:2016/08/25(木) 00:47:36.56 ID:DgLaV+Bt.net
var enemy:GameObject = GameObject.CreatePrimitive(PrimitiveType.Cube)
でCubeを新規に作って、それにHaloのコンポーネントを追加したいのです。

>>116のように
enemy.AddComponent.<"Halo">()
enemy.AddComponent.<Halo>()
でもダメだったので…。

118 :名前は開発中のものです。:2016/08/25(木) 00:55:14.47 ID:QLIUawhG.net
初心者です。
この状態になったのですが普通の状態の左下右にあったバーを表示させて、
もとのUIに戻したいです。どうすればよいでしょうか?
http://imgur.com/qvHMF2J.jpg

119 :名前は開発中のものです。:2016/08/25(木) 00:59:50.05 ID:QLIUawhG.net
すみません。解決しました。

120 :名前は開発中のものです。:2016/08/25(木) 01:21:55.31 ID:wn30Advx.net
>>117
http://www.cho-design-lab.com/2013/08/18/unity-reference-other-script/
MonoBehaviour継承してないとか?

121 :名前は開発中のものです。:2016/08/25(木) 02:35:35.69 ID:/Ws0o294.net
>>115
そこ、できるなら無視して消してしまった方がいい。
実はHaloコンポーネントの扱いはどういうことになっているのかよくわからない。
リファンレスにも載っていないしC#でもAddComponentできないし
通常のやり方でGetComponentもできない。
なぜこのようなオブジェクトになっているのか謎。

122 :名前は開発中のものです。:2016/08/25(木) 02:53:23.67 ID:DgLaV+Bt.net
>>120
>>121
回答ありがとうございます。

なるほど、Haloコンポーネントだけおかしいのですか。
無視してHalo無しで先に進んでみます。

123 :名前は開発中のものです。:2016/08/25(木) 04:04:43.41 ID:uIbWNalU.net
>>112
囲み方等のルールは
クイックスと同じ想定ですが、
領地に表示させるものの都合もあり
フィールドは粗めのマスで区切る予定です。

領地情報を変数配列に保存するつもりではありましたが、
実装できるのであれば
他の手段でも構わないです。

124 :名前は開発中のものです。:2016/08/25(木) 16:42:42.05 ID:83VqBRCc.net
uGUI の RectTransform で Streach を使おうと思っています。
Left, Top, Right, Bottom を 0 にして
Min X,Y Max X,Y の設定だけを使い、ウィンドウサイズの違いに対応したいと思っています。

しかし、 Min X,Y Max X,Y の設定は面倒な上、
GUI をマウスで移動させて調整したいのに Left, Top, Right, Bottom が変更されてしまいます。

マウスでの GUI の編集の結果を Min X,Y Max X,Y だけに反映させる方法はありますか?

125 :名前は開発中のものです。:2016/08/25(木) 23:03:29.78 ID:u1xY0SXd.net
おう、Unityスレにしては珍しくちゃんと質問に答えられる奴らがレスしてるね。ええこっちゃ

126 :名前は開発中のものです。:2016/08/26(金) 00:47:58.60 ID:Ve5Y7ZDo.net
>>123
領地の概念が何処にあるかってのが結構重要、123が言うマス目単位でよければ囲った領域を2D矩形の集合に変換してからマス目の重心が分割した矩形に入るかどうかを普通に2Dの当たり判定で行えば良い
領地が空間を区切る様に3D空間内に存在するのであればBSP(Binary Space Partitioning)による超平面分割で領域判定をするのだけど、この場合領地の取り合いでBSPの論理演算(切り取りとか付け足し)をしないと行けない
なので本当にゲームに依存する。

特に前出のQIXの場合は領地は一度取得したら変更が起きないし領地の取得面積の算出だけなので8Bitマシンでも作れたんだぜよ。

127 :名前は開発中のものです。:2016/08/26(金) 00:51:13.86 ID:Ve5Y7ZDo.net
>>126
補足
囲った領地を3角形ポリゴン(あるいは矩形)の集合にして領地のマス目の重心座標がポリゴン(あるいは矩形の)の内側にあるか判定し、入っていたらマス目に誰の領地かフラグつけるって意味ね

128 :名前は開発中のものです。:2016/08/26(金) 10:28:04.76 ID:oDcylQEX.net
>>124
RectTransformは各プロパティが勝手に連動するんだっけ
Left他を毎回0で上書きしてみたら?

129 :名前は開発中のものです。:2016/08/26(金) 11:48:43.44 ID:nqvhB+27.net
>>128
0にしてもなぜか1.1くらい強制的に値が再設定されたりすることもあり
まだよくわからないのですが、
今は L, B, R, T は 0 に上書きしてから max/min を設定して調整しています。

130 :名前は開発中のものです。:2016/08/26(金) 13:06:34.38 ID:ooIqDkZ9.net
>>129
場所固定の親オブジェクト作って、
アンカーを上基準にしてみるとか

131 :名前は開発中のものです。:2016/08/26(金) 15:26:29.66 ID:gJpqV1j9.net
>>127
詳しい回答ありがとうございます。

囲った部分の集合体を作るという所が
まだ方法を想像出来てませんが、
色々調べながらやってみます。

132 :名前は開発中のものです。:2016/08/27(土) 07:49:36.25 ID:7xLav6Bo.net
教えてください。
リジッドボディのmassは大きければ重く、他のmassが小さいオブジェクトがぶつかった時に余り動かないモノかと思ったのですが、実際に数値を入れてみると1でも1000でも違わない動作し みたいなんですが、認識間違ってますか?
衝突時、重いものはあまり動かず軽い方は跳ね飛ばされるのはスクリプトでマメにするしかないですか?

133 :名前は開発中のものです。:2016/08/27(土) 12:32:31.82 ID:ndq4XMCo.net
>>132
試してみるとmass1と10の動きはやっぱり全然違うので
何かを勘違いしているのだろう。

134 :名前は開発中のものです。:2016/08/27(土) 13:41:17.84 ID:a/bQ85qY.net
広告の表示について質問です。

今度アイモバからadmobにきりかえようと設定をしたところうまく広告が表示されませんでした。

試行錯誤したところコードやプラグインの問題ではなくbundle identifierをかえたら解決しました。

アドモブかunity側の問題か不明ですが同じ用な現象が起きた方いらっしゃいますか?

135 :名前は開発中のものです。:2016/08/27(土) 15:14:44.15 ID:S8c/2UBo.net
>>132
物理演算で変化するのはrigidbodyの値だけだから、
transformで動かしてると物理挙動は効かないと思う

136 :名前は開発中のものです。:2016/08/27(土) 19:37:45.17 ID:tQuxWCnP.net
unityに表示させたドット絵がすごく汚くなるんですけど、どうしてでしょうか?

見づらいですが、こちらが元のタイルを一般的な画像ビューアで拡大させたものです
ちゃんとドットの大きさがそろっています
http://i.imgur.com/tJw22uP.png

しかし、unityで表示させるとこのようにドットの大きさがめちゃくちゃになります
http://i.imgur.com/y0fkdWc.png


FormatはTruecolorですし、Filter ModeはPoint(No filter)にしています
どうしたらいいんでしょうか?

137 :名前は開発中のものです。:2016/08/27(土) 19:53:49.97 ID:gJhSoj/G.net
>>136

https://blogs.unity3d.com/jp/2015/06/19/pixel-perfect-2d/

138 :名前は開発中のものです。:2016/08/27(土) 19:54:17.38 ID:7xLav6Bo.net
>>133
ご回答ありがとうございます。
そうなんですか、私の方で数値変えてみてやったのですが変わらなかったので…
飛行機と弾で、それぞれ100000と0.0001とか極端な値をそれぞれに入れて、やってみたのですが変わったように見えなかったので。
そもそも勘違い?どこだろう?

139 :名前は開発中のものです。:2016/08/27(土) 19:56:23.93 ID:7xLav6Bo.net
>>135
ご回答ありがとうございます。
はい、トランスフォームで動かしています。これでは反映されない?反映される方法はございますか?

140 :名前は開発中のものです。:2016/08/27(土) 21:40:30.66 ID:ndq4XMCo.net
>>138
transform.positionに固定した値を入れれば位置は必ずその位置になる。
もしそういう形で位置を移動させているならRigidbodyの動作は無意味になる。

Rigidbodyというのは何か、というと物理エンジンに従って
transformの位置や回転の値を書き直すものだ。
そうやって物理的な挙動を再現している。
Rigidbodyが勝手にtransformの位置や回転を毎フレーム書き直しているから
自動で動いている、ように見えるってことだ。
しかしスクリプトで固定の位置を書き込んでしまえばRigidbodyの書き換えが
上書きされてしまって無意味になる。

とまぁそういうパターンはあり得る。

動かすときに例えば
void Update(){
transform.Translate(Vector3.forward*Time.deltatime);
}
というような書き方をしてやればRigidbodyの計算結果を反映したうえで
動かしてくれるようにはなる、はずではある

141 :名前は開発中のものです。:2016/08/27(土) 22:51:58.08 ID:tQuxWCnP.net
>>137
ありがとうございます

142 :名前は開発中のものです。:2016/08/27(土) 23:42:05.66 ID:2W6/iIAR.net
なんで誰も>>140の大嘘にツッコミ入れないんだろう?
>>138
物理挙動をしている(=RigidbodyがアクティブでisKinematicがfalseの)オブジェクトの位置操作はAddForce系のメソッドを使う、これ鉄則

143 :名前は開発中のものです。:2016/08/28(日) 00:12:50.39 ID:554Md0BG.net
一応マジレスしておく

1. FixedUpdate(物理処理)
2. OnCollision(衝突処理)
3. Update(イベント処理)
4. 描画処理

Unityは毎フレームこんな流れで動いてて、
物理的な計算は「FixedUpdate」で行われるから、
その後にある「Update」でtransformを弄ると描画に物理挙動が乗らない
物理計算された値をUpdate内で上書きする形になるから描画まで持って行けないんだね

だから物理的な挙動をさせたければFixedUpdate内にtransformの処理を書くか、
Rigidbody.positionのような次のフレームの物理フェイズで遅延実行される方法を使うべき

144 :名前は開発中のものです。:2016/08/28(日) 04:25:12.65 ID:OAHf0gRx.net
いや、Rigidbodyの挙動とtransform.Translate()は共存できるよ。
Update()でTranslate()をデルタタイムで使えばRigidbodyの物理挙動+
Translate()の移動が行われる。
問題なのはTranslate()での移動ではRigidbodyのVelocityは変わらなくて
だからTranslate()で衝突しても速度0の状態での衝突扱いになる。
あと速度自体への影響はでないけどFixedUpate()で
RigidbodyのMovePosition()を使ってやると衝突補間に便利な場合がある。
そこまでは必要ない場合でもtransformでの操作より
Rigidbody.positionを使う方が計算が一部省略されて
動作が多少なりとも軽くなる場合がある(複数のColliderを付けてる場合など)

Rigidbodyを使っている場合AddForceで操作できれば物理的挙動としては
それが一番整合的になるのは確かなんだが実際には
それでゲーム的操作を行うのは難しい、場合がある。
だからRigidbody.MovePosition()みたいな関数も用意されてる訳で。

>>138の話は多分transform.positionに直接値を放り込んでるからで
それだとRigidbodyが行う全ての操作が上書きされるからRigidbodyの動作は
全く反映されない、ということなのではないかな、と推察されるわけだ

145 :名前は開発中のものです。:2016/08/28(日) 09:41:01.55 ID:oOAtXjvY.net
山の中のシーンを作っているんだけど、VRでみると遠景ビルボードの木々が頭の動きに合わせて動いちゃうのを修正する方法ないですか?
ビルボード開始距離を大きくすれば一応解決するけど重いので、それ以外の方法で。
検索しても見つけられなかったので助けて。

146 :名前は開発中のものです。:2016/08/28(日) 11:19:44.80 ID:554Md0BG.net
近くにある物体に仮の距離を与えて遠近法を表現したいなら、
カメラの視野角と物体の距離から三角関数で実際の位置と仮の位置の辺の長さを取り、
その二つを比べた倍率でtransformを操作すれば可能だと思う

要はカメラに追従するようにビルボードを動かすだけ
たぶんRotateAroundが便利に使える

147 :名前は開発中のものです。:2016/08/28(日) 15:43:00.08 ID:b+0+q4aE.net
2Dのキャラを使うときはSpriteとuGUI Imageとどっちがいいですか?
画面サイズを変えたときにサイズを自動で変えてくれるImageを使いたいのですが
Spriteのほうが一般的な気がしたので、Imageでは不都合なことがあれば教えてください。

148 :名前は開発中のものです。:2016/08/28(日) 20:20:46.57 ID:cjw/eqlt.net
mmd4mecanimで読み込んだモデルに影が出ないです
ステージと人型モデルを読み込みました

unity 5.4 personal 64bit
directional light soft shadows
すべてのモデルで
cast shadow on
receive shadows チェック

149 :名前は開発中のものです。:2016/08/28(日) 21:24:45.43 ID:SoRnCkXj.net
140-144
ご回答ありがとうございます。
確かにトランスフォームで値を入れてます。詳細な動作の流れを書いて頂きまして、確かにそれだとリジッドボディが意味なくなりますね。ためになりました。重ねてありがとうございました。

150 :名前は開発中のものです。:2016/08/29(月) 12:09:22.22 ID:h9z6iyfn.net
最近unityを始めたがこれだけ2chが役に立ったのは初めてだw

151 :名前は開発中のものです。:2016/08/29(月) 19:20:35.73 ID:6cvUMb4l.net
マルチプレイゲームの作成で困っています
オブジェクトを生成するスクリプトのOnStartServer()関数内で、Resouseフォルダからspriteを配列に4つ読み込んでランダムに選び、オブジェクトのSpriteRenderer.spriteに渡す形で、ランダムな見た目のオブジェクトを生成させました
ホストでは見た目が適用されますが、クライアントでは未設定のままスポーンしてしまいます
そのままではセットされているspriteが同期されなかったので、使用するスプライトをSyncVar属性にした変数に格納し、ホストとクライアントそれぞれでSpriteRenderer.spriteに渡しましたがそれでも同期されません
NetworkTransformのようにコンポーネントをアタッチしなけば同期されないのかと思い、ネットで検索してみましたがそのような情報にたどり着けませんでした
どうすればオブジェクトにアタッチしたSpriteRendererの情報を同期できるのでしょうか?
こういうワードで検索すればわかるという情報や、同期させる方法を教えてください

152 :名前は開発中のものです。:2016/08/29(月) 21:44:51.67 ID:hTPmcjqf.net
ゲーム画面からゲームオーバー画面になる時Object.DontDestroyOnLoadを
つかってgameover_seを鳴らしたいのですがObject.DontDestroyOnLoadを
どこに使えばよいかよくわかってません。分かる方いらしたら教えて下さい。

153 :名前は開発中のものです。:2016/08/30(火) 01:02:18.49 ID:Fe7iYYg+.net
キャッシュクリア
Caching.CleanCache();
で、ちゃんとキャッシュがクリアされたかどうかって
どうやって確認すればよいですか?
Android iPhone WindowsでのUnityエディタ 一通り教えて下さい

154 :名前は開発中のものです。:2016/08/30(火) 11:47:33.23 ID:t/Tyc2RD.net
タダで?

155 :名前は開発中のものです。:2016/08/30(火) 12:22:57.36 ID:dsj9Rh90.net
さすがにタダとは・・・
いま手持ちが3000万しかないですけどそれでよければ

156 :名前は開発中のものです。:2016/08/30(火) 18:35:44.03 ID:9J760vKu.net
その言葉が聞きたかった!

157 :名前は開発中のものです。:2016/08/30(火) 20:33:47.29 ID:S4aL+a/c.net
>>156
はやまるな、まだ円と決まったわけじゃない!

158 :名前は開発中のものです。:2016/08/30(火) 20:58:29.71 ID:+v1Rag2d.net
3000万砂粒(お金ですら無い)

159 :名前は開発中のものです。:2016/08/30(火) 21:01:17.65 ID:/f9EBd4g.net
本当に持ってんなら外注した方が早いよね・・・

160 :名前は開発中のものです。:2016/08/30(火) 21:24:47.71 ID:xe/VHIDF.net
3000万円の借金かもしれない

161 :名前は開発中のものです。:2016/08/30(火) 23:06:51.15 ID:pgKesBZq.net
4足歩行動物のモデルで、歩くアニメーションを作ったんですが、
これを摩擦計算を使って実際に歩かせたいです。
が、足先にコリジョン&摩擦を設定しても前に進んでくれません。
そのようなことって難しいのでしょうか?

162 :名前は開発中のものです。:2016/08/30(火) 23:16:51.80 ID:xe/VHIDF.net
目の前に3000枚のお札を並べたら歩く

163 :名前は開発中のものです。:2016/08/30(火) 23:50:05.40 ID:OrMz97C5.net
携帯アプリなどのゲームでよくあるデッキ作成画面(パズドラ的な)を作っています。
自分の所持しているモンスターの数だけgameobjectを並べて、アイコンを表示させ、そのオブジェクトをクリックするとListの中に追加されるように作っています。
オブジェクトをクリックすると「何番目のオブジェクトか」を仮のintのListに追加して、最後に仮りのオブジェクトリスト各々に紐付いたモンスターIDを引っ張ってきて保存という形式にしました。

一通り作ってからモンスターの表示ソートを実装したいことを思い出して、どのようにソート機能を作ろうか悩んでいます。
オブジェクトごと入れ替えるか、オブジェクトはそのままで中身(アイコン)を入れ替えるか、など構成を悩んでいるのですが、参考になりそうなサイトとかございませんでしょうか。

164 :名前は開発中のものです。:2016/08/31(水) 00:34:47.08 ID:V7VNIgNJ.net
どっちもやってみて今の実装に対してパフォーマンスがいい方を選べばいいんじゃない?

ちなみに俺ならオブジェクトとアイコンはそのままで座標をリストの順に変えて並び替えるかな

165 :名前は開発中のものです。:2016/08/31(水) 00:50:40.54 ID:/WI208fI.net
>>161
可能だよ。一番親になっているオブジェクトに
胴体のColliderとRigidbodyをつけて
足にもColliderをつけてAnimatorのApplyRootMotionは切る。
それで動くはず。
まぁほぼ100%の確率でその場でこけるだけだとは思うが

166 :名前は開発中のものです。:2016/08/31(水) 12:56:19.85 ID:Q6SFBAyP.net
そういえば、Youtubeにガンダム使って、物理演算歩行やってる人いたね。
あれ、面白かったなぁ

総レス数 1001
277 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200