トップページgamedev
1002コメント408KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2016/12/15(木) 10:54:11.55ID:6OvBPhDX
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 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/gamedev/1468040448/l50

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

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.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質問スレッド27 [無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/gamedev/1477131311/l50
0971名前は開発中のものです。2017/04/03(月) 19:00:50.60ID:2LEcAZIf
>>969
処理速度には影響はほぼない
但し物理演算を使っている場合、重力加速度はサイズが100倍になっても100倍になったりはしないので大きい物は落下が遅くなった様に見える
物理演算を使うなら実サイズで作る事をお勧めする
0972名前は開発中のものです。2017/04/03(月) 23:41:06.66ID:EFa3Iiov
質問スレを初めて利用するので、失礼がありましたらすみません。

練習で見下ろし型のシューティングゲームを、PCゲーム用に作っているのですが
UNETを利用したマルチ対戦の時、ホスト以外が弾を撃つ(NetworkServer.Spawn)と
同じPCでの接続にも関わらず、結構遅れて発射されてしまいます。
なので、銃口と実際に弾が出る位置が相当にズレる感じになってしまい
前に進みながら撃つと自分で自分の背中を撃ってしまい始末です;
ホスト側からその様子を見ると普通に撃っているように見えるのですが……
何か発射位置のラグを解決する方法は無いものでしょうか?

OSはwin10、バージョン5.5.1f1のPersonal版を使っています。
0973名前は開発中のものです。2017/04/04(火) 00:39:36.35ID:UR2E2Az0
>>972
あせっとをかえば解決すると思いますよ
0974名前は開発中のものです。2017/04/04(火) 00:57:31.97ID:lfjQJu7s
>>972
発射する少し前に弾が出るようにすればいい
0975名前は開発中のものです。2017/04/04(火) 01:24:06.14ID:bFLNWTmk
>>972
uNetちゃんと使ってないから的確な指摘になってないかもしれないけど、spawnってinstantiateだよね?
プレイヤーオブジェクトとかは同期出来ていてinstantiateが重くてラグってるなら、オブジェクトプーリングすりゃいい。

あと、弾オブジェクトの生成は、それぞれのユーザーに発射位置や角度情報だけ送って、同じものを各自出せばいいんじゃない?
0976名前は開発中のものです。2017/04/04(火) 01:31:53.76ID:d8IqrfDr
>>975
違う、発射した銃器とタイミングのみを送信して、生成は各マシンに任せる。

ただ、遅れが別の要因の様な気がするので解決にはならんかも。銃器の位置が進んでから発射するとかなりそう。
0977名前は開発中のものです。2017/04/04(火) 01:37:08.18ID:d8IqrfDr
そもそもラグの発生原因は、各マシンのデータやりとりに問題が有る気がする。
有るデータは座標だけ、有るデータはタイミングだけとか。一度見直したほうがいいかもしれん。
違ったらごめん。
0978名前は開発中のものです。2017/04/04(火) 10:11:34.66ID:ysgKAZ/b
プレイヤーの座標はローカル操作して、弾はサーバーのプレイヤーの座標で
生成されたものではないですか?、
それなら、弾の座標が届くまでに、プレイヤーが移動しているから、ずれるのは当然。
0979名前は開発中のものです。2017/04/04(火) 11:11:26.74ID:y7caQUpA
>>975
はい、spawnはinstantiateです!
spawnに角度と位置情報を持たせ、弾のプレハブにはNetworkTransformをセットし
SendRateを0にしているので、発射位置と角度情報だけを送っているつもり、です(ちょっと自信が無い)
オブジェクトプーリングに関しては私恥ずかしながら初めて聞いた概念でして、今調べながら試行錯誤しているのですが
少し時間が掛かりそうかも……、でもゲーム自体は重くはないので、関係ないかもしれません。

>>976
銃器とタイミングだけ送って生成は各マシン…
ちょっと難しそうですが、調べて試してみます!

>>977
各マシンと言いますと、PCとサーバー間という事でしょうか?
今試しに座標と角度を送らず、弾のPrefabだけ生成してみたんですが、やっぱり遅れますねぇ…
回答して貰えるだけで有難いので、違っても大丈夫です!

>>978
あぁ!確かにプレイヤーの位置はNetworkTransformで同期して、
弾はNetworkServer.Spawnでサーバーに生成しているので
そこでラグが発生しているのかもしれません;
ここからどのようにしたら解決出来ますでしょうか?
ご指南して頂けると嬉しいです><
0980名前は開発中のものです。2017/04/04(火) 13:49:25.80ID:UR2E2Az0
>>979
ASSETをかうと解決に近づくかもですね
0981名前は開発中のものです。2017/04/04(火) 13:51:28.96ID:Cf17YzwF
ネット要素って自分で鯖建てたりクラウド鯖借りてやらんといかんの?
P2Pとしてもマッチングや記録の鯖は要るよね
0982名前は開発中のものです。2017/04/04(火) 15:33:26.22ID:RRs8p0y7
AWSあるしな…
0983名前は開発中のものです。2017/04/04(火) 15:50:02.92ID:y7caQUpA
>>981
UNETかPhotonでサーバーを立てている人が多いみたいですね
実際UNETはUnity内で結構簡単に借りれました。
0984名前は開発中のものです。2017/04/05(水) 21:59:38.01ID:u7i7OXqa
Unity5.6に更新してからAndroid4.1以前のAPIバージョンが利用できなくなりました
どうすれば、4.1以前のバージョンのAPIを選択できるようになりますか?
0985名前は開発中のものです。2017/04/06(木) 01:04:36.42ID:EsS51gH9
>>984
古いUnityダウンロードし直さないとだめじゃねぇかな
つかもう4.1捨ててよくね?
0986名前は開発中のものです。2017/04/06(木) 01:36:00.30ID:CVJGWYuq
>>984
5.6.0f3 Release Notes (Full)
System Requirement Changes

Android minimum version supported updated to 4.1 (JellyBean)



https://unity3d.com/jp/unity/whats-new/unity-5.6.0
0987名前は開発中のものです。2017/04/06(木) 02:23:08.40ID:CVJGWYuq
"supported updated to 4.1"なので4.1以上は対応しているはず
"以上"なので4.1も含まれていて
今回使えなくなったのはAndroid4.0以下(以前)だと思う

Unity5.6から使えなくなったのはAndroid2.3〜4.0
0988名前は開発中のものです。2017/04/06(木) 08:14:38.81ID:Qn/UrhEC
>>985,>>986,>>987
984です。みなさんありがとうございました。
前のバージョンを入れてみようと思います
0989名前は開発中のものです。2017/04/06(木) 08:18:03.00ID:htblLGKY
何も聞いてなくて草
0990名前は開発中のものです。2017/04/06(木) 08:32:08.07ID:NmgkYxFd
重複スレがまだ残っておりますので、次スレはこちらを使用願います。

【3Dゲームエンジン】Unity質問スレッド28(実質29)[無断転載禁止]c2ch.net
http://echo.2ch.net/test/read.cgi/gamedev/1481636092/
0991名前は開発中のものです。2017/04/06(木) 12:54:55.76ID:/E9ITvLB
>>979
通信を行うところは、遅延が発生するものとして設計する。
遅延やパケロスのシミュレーションの機能もあったと思うから確認できるんでは?

で、実際どう設計するかは、わからんw

実際に見た弾をよけれる弾を撃つゲームの例でいうと、
サーバーとクライアントでまず遅延時間の概算を求め、時刻の同期をとる。
サーバーで弾作成時の時刻も含め送り、遅延が発生しても作成時からの経過時間で
弾の座標を求めていた。

その他の対応方法は、
・遅延が発生すると即切断する。(某MMOがこれで再送が発生しただけで切れるのでゲームにならなかった)
・弾がよけれないけど、撃った時点で当たり判定で、送るのは座標でなくAからBへといった指定。
0992名前は開発中のものです。2017/04/06(木) 13:37:18.18ID:CVJGWYuq
色々な方法考えて実際に試していくしかないだろうね
ストリートファイターとかバーチャファイターとかFPSとか市販ゲームのオンライン対戦って
遅延感じないし演算結果に違和感もないし
どうやってんのか全然わからんもの
さすがゲームメーカーって感心させられる
0993名前は開発中のものです。2017/04/07(金) 03:20:19.37ID:tjqxMNnD
一昨日から始めたばかりの初心者なんですがチュートリアルの2DUFOで詰まってます
取得数カウントの部分なのですが解説からコピーしてもエラーが直りません

エラー文 Assets/Sprites/PlayerController.cs(36,0): error CS1525: Unexpected symbol `void'
36行目 void SetCountText()

どうしたらいいか分かる方いらっしゃいますか?
0994名前は開発中のものです。2017/04/07(金) 03:33:37.39ID:RxAry07V
セミコロン(;) が抜けてたりしない?
0995名前は開発中のものです。2017/04/07(金) 04:14:56.31ID:tjqxMNnD
夜分遅くにすみません
見たところ間違いはなかったのですが打ち直したら今度は違うエラーが出てきました

NullReferenceException: Object reference not set to an instance of an object
PlayerController.SetCountText () (at Assets/Sprites/PlayerController.cs:38)
PlayerController.Start () (at Assets/Sprites/PlayerController.cs:18)
0996名前は開発中のものです。2017/04/07(金) 04:18:47.17ID:of6vKct0
>>995
gameobject.findか[SerealizeField]GameObject使ってない?

英語読めばその通りの意味だけど、取得するゲームオブジェクトが存在しないor指定されてない
0997名前は開発中のものです。2017/04/07(金) 04:23:19.77ID:tjqxMNnD
上二つは使ってないですね
gameobject関連だと下のぐらいですが行数的に関係なさそうです

if (other.gameObject.CompareTag("PickUp"))
{ other.gameObject.SetActive(false); }

一応チュートリアル通りやっているはずですがエラーが出て進まず、コピペでもエラー
英語は和訳につっこんで大体の意味は分かるのですが解決法が分からない状態です
0998名前は開発中のものです。2017/04/07(金) 04:29:03.82ID:tjqxMNnD
スレを少し遡ったのですが >>735 みたいなバージョンによるエラーとかだったりするのでしょうか?
チュートリアルの種類は違いますけど確認済みバージョン5.2とかありますし
0999名前は開発中のものです。2017/04/07(金) 04:40:55.96ID:v+uuhRk0
>>997
そのチュートリアル見てないからわからないけど、初心者ならpublic GameObject ○○にドラッグ&ドロップ忘れてるとかはない?
PlayerController.csをアタッチしてるオブジェクトのインスペクタ再確認してみて。

バージョンの違いではないと思うお
1000名前は開発中のものです。2017/04/07(金) 05:04:45.34ID:tjqxMNnD
解決しました
>>999さんのいう通りunityの方の参照先ミスでした。
皆さん、こんな時間にありがとうございました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 112日 18時間 10分 34秒
レス数が1000を超えています。これ以上書き込みはできません。