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

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

■ このスレッドは過去ログ倉庫に格納されています
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
0528名前は開発中のものです。2017/02/15(水) 14:38:54.18ID:OL75C8TE
>>527
それぞれの面に別のマテリアルを割り当てていれば何らかのトリガーでそれらを入れ替えるだけなので簡単よ
0529名前は開発中のものです。2017/02/15(水) 14:41:10.47ID:OL75C8TE
ああ、でも触れた面の判定を取るだけならそれぞれの面にタグの違うPlaneを重ねておくだけでいけるかな?
タグで面の種類取って、接触先のオブジェクトのマテリアルを対応するものに入れ替えればOKか
0530名前は開発中のものです。2017/02/15(水) 14:49:58.90ID:8tCiJtym
床の色変えるだけなら変数に合わせてタグ切り替えてーって方法で強引にできるんだけど
壁とか天井の色も変えるってなるとやっぱ各面にプレート貼り付けるほうがいいのかな・・・
0531名前は開発中のものです。2017/02/15(水) 15:38:07.33ID:1fGPKgM9
1. シェーダを書く
2. >>524の方法で動的にUVを変更
3. Quad6枚で作る

コーディングが最も楽なのは3
パフォーマンスチューニングが楽なのは1
2は色が変わる時にじわっと変化させる様な演出が難しいので今回の場合は不向きかも知れない
0532名前は開発中のものです。2017/02/15(水) 17:44:35.23ID:hPf+GS68
Unityをレンダラーとして使っているんですが オブジェクトの裏表で別のテクスチャを貼る方法はあるのでしょうか
Mayaで言うと
https://goo.gl/PsUywb このような効果です
0533名前は開発中のものです。2017/02/15(水) 19:14:34.74ID:KwW+OXW8
遅くなりました
本当にありがとうございます

ブレンダーの使い方から勉強して
教えてもらった作り方を1つずつ調べてます

·キューブの各面に色をつける(色の情報をつける)
·衝突を感知したらオブジェクトがその面の色の情報を取りに行く
·その情報をもとにオブジェクトの色を変える

こういうイメージであってますか?
0534名前は開発中のものです。2017/02/15(水) 19:26:22.08ID:OL75C8TE
色を直接取得、変更するのは小回りが利きにくいのでマテリアル単位で管理したほうが良いと思う。

shared materialで変更するとすべてのオブジェクトの色が変わっちゃうし、sceneの再生後も変更内容が維持されてしまう
shared materialを使わない場合は変更毎にマテリアルのインスタンスを作成するのでメモリとドローコールががが
0535名前は開発中のものです。2017/02/15(水) 20:37:14.39ID:KwW+OXW8
マテリアルはブレンダーで付けていいんですかね

正直色を変えるためのスクリプトをどう書いていいか全く分からなくて困ってます

どんな関数を使ったらいいか教えて下さい
0536名前は開発中のものです。2017/02/15(水) 22:34:56.21ID:OL75C8TE
blenderでそれぞれの面で別々のマテリアルを割り当てておけばOK

あとはGetComponent<Renderer>().material.入れ替えたいマテリアルで変更できる
https://teratail.com/questions/24071

複数のマテリアルを持ってると思うのでその場合はmaterials[n]で指定すればOK
0537名前は開発中のものです。2017/02/15(水) 22:56:24.58ID:FXrzhboj
>>535
アセットを買えば色の変更は簡単にできますよ
0538名前は開発中のものです。2017/02/15(水) 23:42:38.69ID:KwW+OXW8
>>536
本当に丁寧にありがとうございます
よくわかりました。出来そうな気がしてきました



>>537
アセットも探したんですけど見つけられなかったんですよね
どうやって検索しました?
0539名前は開発中のものです。2017/02/15(水) 23:53:03.88ID:eKavZuzx
>>538
537は荒らしだから無視した方が良いよ
0540名前は開発中のものです。2017/02/15(水) 23:57:47.37ID:hPf+GS68
すいません どなたか>>532について教えていただけないでしょうか
0541名前は開発中のものです。2017/02/16(木) 00:09:14.95ID:CQIXvMSU
短縮URLはウイルスだから誰もクリックしないお
0542名前は開発中のものです。2017/02/16(木) 00:21:47.85ID:RPalrJSk
>>540
実装が対応してないから無理

ただまあ面を裏向きにして別マテリアルを張ったモデルを重ねるだけだから簡単に出来るよ
スクリプトでやるならメッシュ丸ごと複製して、mesh.trianglesを反転させて、別のマテリアルを付けるだけ
0543名前は開発中のものです。2017/02/16(木) 00:48:18.94ID:Ba5Edtay
>>542
実装されていないんですね ありがとうございます

レンダ用モデルなので重くなるのが心配ですが教えていただいた方法でやってみようと思います
0544名前は開発中のものです。2017/02/16(木) 08:28:38.31ID:S20OxL13
>>543
可能か不可能かで言えば可能だが、標準のシェーダーにそういうものはない
そのためこれを実現するならシェーダーを書く必要があり、裏面を描画させるだけなら簡単だが裏面を別テクスチャでとなるとそれなりにシェーダーが書ける奴でないとちょっと難しいかもしれない
まあシェーダーが書ける奴が1人いると表現の幅が格段に広がるので習熟しといて損はないとは思う

こういう時こそアセットストアを漁ってみるのもありだとは思うが、自分は見た記憶がない
0545名前は開発中のものです。2017/02/16(木) 09:18:39.46ID:0JISAU8i
確かにシェーダーで両面表示にして面の放線が裏か表かで参照するテクスチャを切り替えればいけそうだよね
0546名前は開発中のものです。2017/02/16(木) 10:21:22.82ID:rNEbNgKY
というか素人のなんでこれできないのは=なんでそれしようと思ったので解決できる
0547名前は開発中のものです。2017/02/16(木) 11:40:14.36ID:yxg7mj/M
タイルマップベースの2Dゲームを作ろうとした場合に、マップチップごとに設定したコリジョンを使う方法と
大きなコリジョンで複数のマップチップを覆う方法とがあると思うんです
方法としてスタンダードなのはどちらなんでしょう?
0548名前は開発中のものです。2017/02/16(木) 13:27:56.10ID:KSjg7T53
>>538
俺はBlenderがどうしても嫌でProBuilder Advanced買ってもうた
人間キャラとか自作するつもり無くて、地形やら小物をサッと作るには
かなり便利だと思う
ただ、こっちも色々癖がある&複雑な事をするとたまにバグるので
モデリングする時は他に何もない所に移動してからやる、とか
使わない時はこまめにツールバーを閉じておくとか工夫が要る
0549名前は開発中のものです。2017/02/16(木) 13:38:01.09ID:rJ4vmZ4y
Spriteを貼ったGameObjectがあるのですが、これをハイライトを当てたように少し白くしたいのですが、どのようにやるのが良いでしょうか?
Spriteの色を変えると暗くはできるんですが、白くはできなくて困っています。
0550名前は開発中のものです。2017/02/16(木) 13:41:33.48ID:ues+GHKR
>>547
絶妙な隙間でバグることもあるから、繋がってるコライダーはまとめてしまうのがスタンダードではある
0551名前は開発中のものです。2017/02/16(木) 16:32:24.18ID:Zy/7dIrk
GUILayout.BeginScrollView〜EndScrollView間で自動生成されたスクロールバーのバリューを
スクリプトで変更する方法がわかりません
オブジェクトとして表れないのでコンポーネントも取得できず困ってます
ご教授お願いします C#です
0552名前は開発中のものです。2017/02/16(木) 18:47:14.66ID:S20OxL13
>>551
次回の描画の時にBeginScrollViewの第一引数にスクロール先の座標を渡せばいい
0553名前は開発中のものです。2017/02/16(木) 19:03:12.23ID:S20OxL13
>>549
これもシェーダー書けば解決する問題だが
まずは「unity sprite 白」あたりでググればいいと思う
0554名前は開発中のものです。2017/02/16(木) 19:17:52.87ID:kE7N0LEu
>>551
アセットを買えばいいと思いますよ。たしかスクリプトのあたりにあったと思います
0555名前は開発中のものです。2017/02/16(木) 21:20:44.00ID:Zy/7dIrk
>>552
1週間ほどつまっていた問題がいともあっさり解決できました
本当にありがとうございます

>>554
なるほど アセットにもあるのですね
0556名前は開発中のものです。2017/02/16(木) 22:35:17.62ID:CQIXvMSU
シェーダーって何ですか?
「Unity シェーダーとは」でググったら出てきたところを読みましたが

http://marupeke296.com/UNI_S_No1_WhatIsShaderInUnity.html
UnityにおけるShaderとは?

という記事にもShaderとは実際何の事なのか書かれていません。
書いた人はカスですね
0557名前は開発中のものです。2017/02/17(金) 00:16:00.06ID:qt197/fD
>>556
3DCGにおいて実際の描画を担当するもの、別にUnityに限ったものではない
もともとは陰影処理(シェーディング)を行うものだったのでこう呼ばれているが、現在では陰影処理だけではなく、実装次第で演算処理を行なって様々な表現を行う事が可能になっている

もう少し詳しく知りたいならWikipediaでも見とけ
0558名前は開発中のものです。2017/02/17(金) 01:33:19.71ID:iPsepBjN
釣られてんなよ
0559名前は開発中のものです。2017/02/17(金) 07:06:21.69ID:CAjRFV6v
シェーダーは抽象的すぎて俺も漠然としか覚えてないが
特に不便に感じた事はないな
作ってる物がスマホ向けばかりだから標準シェーダーで作らないと動かなくなりそうでな

あんまり凝った事すると高価なゲーミングPC専用グラフィックになっちまう
0560名前は開発中のものです。2017/02/17(金) 07:09:04.99ID:rn5IE1CM
アセットを買えばシェーダも簡単ですよ
0561名前は開発中のものです。2017/02/17(金) 07:14:50.86ID:xyWhvcKZ
むしろ非力なスマホでも軽く動作させたいからゴリゴリ書くものだと思ってた>シェーダー
0562名前は開発中のものです。2017/02/17(金) 07:36:34.82ID:qt197/fD
>>559
スマホだと複雑なことをするのは難しいけど、両面表示なんかは遠景オブジェクトを板ポリ1枚で済ませるとかの用途に使えるだろ?
シェーダーを書く事で重くなる事もあるし、逆に軽くするためにシェーダーを使う事もある

知らなければそもそも選択肢に上がらないので困ることはないだろうが、知っていれば楽をする事が出来る場合もあるってことだよ
0563名前は開発中のものです。2017/02/17(金) 09:46:31.08ID:CAjRFV6v
>>561-562
ほー、そうなのか
俺が無知すぎたw
とても奥深そうだな
0564名前は開発中のものです。2017/02/17(金) 11:00:40.97ID:J4Gxrxfa
ピクセルシェーダー、バーテックスシェーダー
0565名前は開発中のものです。2017/02/17(金) 11:23:43.73ID:bhGOeiB4
シェーダーを複雑にして軽くなる事例が思い浮かばない
0566名前は開発中のものです。2017/02/17(金) 11:49:34.78ID:5zLf4/uJ
そもそもわざわざシェーダー書いて裏表別実装するよりも

2枚のポリを裏表にして
分からない程度に僅かに浮かせて
別々のマテリアル割り当てりゃ済む話やないの?
0567名前は開発中のものです。2017/02/17(金) 12:01:55.64ID:pDssJoOT
そっちのほうが重いだろw
0568名前は開発中のものです。2017/02/17(金) 12:36:36.07ID:anCrubGy
同じマテリアル使ってUV座標だけ変えれば良いのでは
裏面の頂点が4個増える程度はGPUの並列処理に微塵も影響与えないし
0569名前は開発中のものです。2017/02/17(金) 14:10:22.90ID:Rzfb0aay
上で衝突されたオブジェクトの色を変えたいと質問したID:KwW+OXW8です

blenderを使用しキューブの各面に色のマテリアルをつけることは出来たのですが
衝突したオブジェクト側にキューブの各面のマテリアルの情報を読み取らせることが出来なくて困っています

どのようなスクリプトを書けば読み取らせることが出来ますかね
0570名前は開発中のものです。2017/02/17(金) 14:42:48.60ID:iPsepBjN
あの、「Unity 衝突」で検索したら?
0571名前は開発中のものです。2017/02/17(金) 14:53:35.49ID:gITBJPFD
>>569
アセットを買えばあると思いますよ。アセットストアで検索してみてはどうでしょうか?
0572名前は開発中のものです。2017/02/17(金) 15:40:13.02ID:Rzfb0aay
>>570
もちろん検索したんですけど衝突の判定からの
キューブの各面のマテリアルの色を取得するための方法がどこにも書いてなくて困っています

衝突判定はOnCollisionEnter
色の変更はGetComponent<Renderer>で出来そうなんですけど
このGetComponent<Renderer>に衝突したキューブの面のマテリアル情報をどうやって取得して渡せばいいかわからなくて困っています
0573名前は開発中のものです。2017/02/17(金) 15:49:09.59ID:iPsepBjN
>>572
見た目と判定で分けたら?
各面のtag変えとけばOncolision側で取れるっしょ

黄色の面(Tag:Yellow)に接触したらって条件で処理かけばOK
連鎖的に変える必要があるなら、色が変化する側のTagも変えればOK
0574名前は開発中のものです。2017/02/17(金) 16:09:58.64ID:dRpoSFbO
キューブに各面のプレーンを重ねて貼っといてそれとコリジョン判定したら?
そもキューブで無くてからのGameObjectでもいいかも
0575名前は開発中のものです。2017/02/17(金) 16:50:01.28ID:J4Gxrxfa
コリジョンを1〜6個を各面に貼り付けてそれぞれで処理させるか、ぶつかった時の回転角と衝突位置から麺を割り出すかだよね。
0576名前は開発中のものです。2017/02/17(金) 17:15:26.29ID:iPsepBjN
>>572
・オブジェクトの衝突の判定を取る方法
・衝突した面を取る方法
・オブジェクトのマテリアルの色を取得する方法

それぞれ別に検索した方が良い
ちなみにMaterialの色はGetComponent<Renderer>.material.colorにcolor型の関数で格納されてる
http://dnasoftwares.hatenablog.com/entry/2015/03/19/100108
0577名前は開発中のものです。2017/02/17(金) 17:55:54.04ID:Rzfb0aay
丁寧な回答ありがとうございます

コリジョンの貼り付けっていうのはBoxColliderを薄くして6面に各々+設置して
それに、それぞれtagを設置するってことですかね

めちゃくちゃなこと書いてたらすみません
0578名前は開発中のものです。2017/02/17(金) 19:10:46.81ID:J4Gxrxfa
手っ取り早い原理ではそんなところ。
詳細仕様が分からんからそれぐらいしか回答しようがないので。
実装方法はアイデア次第でいろいろあるから、上でも書かれてるように、手段をいろいろ調べるといい。
0579名前は開発中のものです。2017/02/17(金) 20:48:39.48ID:qpKH3fJa
コライダーだけ6つ置くぐらいなら、当たったら持ってる色に変わるスクリプト作って、それを持ったplaneをプレハブにして、6枚で一つのキューブっぽいもの作ってプレハブにした方が余程楽だし、
順番に考えられるし一つずつテストできるし、あとで正八面体作りたいとか変な雲行きになってきてもなんとでもなると思うが。
そしたら当たったもののベクトルの逆ベクトルを、当てられた物のtransformで変換してどの面の色考えるかよりはるかに楽だし、プリミティブで作れる。
0580名前は開発中のものです。2017/02/17(金) 20:59:10.07ID:iPsepBjN
とりあえずコジジョンあたりとマテリアルの取得や色の変更あたりをどんどん触ってみるのがいいんじゃない?
これからも頻繁に使うことになる機能だろうし

とりあえず1つの実装方法で一度作りきってしまえば↑に書いてるようなやり方もすぐに作れるようになるだろうし
0581名前は開発中のものです。2017/02/17(金) 22:18:43.72ID:Rzfb0aay
いろいろなやり方があるんですね
とりあえずコライダー配置するやり方でやってみて、その後>>579でも作ってみたいと思います
立方体がうまく出来たら他の多面体でも制作してみたいと思っていたのですごく参考になります

本当にありがとうございます
0582名前は開発中のものです。2017/02/18(土) 08:16:03.29ID:jOWeOsmO
3Dで作ってる画面の背景を画像にするのってどうやるの?

カメラ動かす予定なんだけど背景だけは動かないで欲しいんだよね
0583名前は開発中のものです。2017/02/18(土) 10:34:04.45ID:04dm76nO
>>582
カメラの子にイメージをおいて、z軸をとおおおおおくにする。そしてサイズを画面サイズに合わせて調整する。
0584名前は開発中のものです。2017/02/18(土) 11:22:26.28ID:JT5DohY7
>>583
遠くに置きすぎてCamera.farClipPlaneを超えて描画されないというオチが見える
0585名前は開発中のものです。2017/02/18(土) 12:31:20.47ID:Ms4QYYoI
2Dで作っています。
Scene画面のことで質問です。
Canvasを置いてその中にUIオブジェクトを置くと思いますが、この時Sceneに表示されるCanvasとそれ以外に置いたオブジェクトの比率が合っていないのですが、どこを修正すれば合いますでしょうか?
Canvasが何倍も大きいのですが、Buildすれば画面内に収まっていて?な感じです。
0586名前は開発中のものです。2017/02/18(土) 12:35:23.66ID:ByJ+J/5m
仕様
0587名前は開発中のものです。2017/02/18(土) 12:40:10.76ID:JdVQ3RLE
カメラの視野角をそのまま表示してるからあんな馬鹿デカくなってるだけだが、正直邪魔くさいよな
0588名前は開発中のものです。2017/02/18(土) 12:52:58.98ID:Ms4QYYoI
仕様なんですね。
なら仕方ないです。
ありがとうございました。
0589名前は開発中のものです。2017/02/18(土) 14:12:09.44ID:e7nzgIUK
>>588
CanvasのレンダーモードをScreenSapce-Cameraにすればいいよ
RenderCameraにレンダーするカメラ指定して
CanvasScalerのReferenceResolutionを想定してる解像度に指定すれば整合性とれるはず
0590名前は開発中のものです。2017/02/18(土) 15:44:32.24ID:GB46Shmz
>>583
なるほど
ありがとう

簡単な質問で悪いんだけど、子のオブジェクトにスクリプト付けたい時って、親に付けてもダメだよね

結構数あるから一気に付けたいんだけどどうしたらいい?
0591名前は開発中のものです。2017/02/18(土) 16:58:30.68ID:Ms4QYYoI
>>589
ありがとうございます。
これで作業がやりやすくなりました。

もう一つなぜこのような挙動をするか分からないことがありました。
spriteを貼ったGameObjectに、transform.localScale = new Vector3(0.5f,0.5f,1f)
をするとオブジェ自体が見えなくなってしまいます。
その後もスクリプトは動いているようで、オブジェクト自体は消えてはないようです。
縮小の仕方が間違っているのでしょうか?
0592名前は開発中のものです。2017/02/18(土) 17:11:05.67ID:5ScJViA7
>>590
一気につけるscript作る
0593名前は開発中のものです。2017/02/18(土) 19:07:54.05ID:04dm76nO
>>590
親のスクリプトのstartに、付けたいスクリプトを子に付けるスクリプトを組む。
0594名前は開発中のものです。2017/02/18(土) 19:47:58.87ID:e7nzgIUK
>>591
再生中もインスペクタが見えるようにして該当オブジェクトのTransformがどうなってるのか観察してみるとか?
オブジェクトがレンダーされないっていうのは色々理由が考えられるから提示された条件からではなんとも言えない
0595名前は開発中のものです。2017/02/18(土) 19:48:51.36ID:JtMoi2ro
>>592
>>593
なるほど
スクリプト組んでやるのか
ありがとう
0596名前は開発中のものです。2017/02/18(土) 21:57:32.34ID:Ms4QYYoI
>>594
その方法良いですね。
これだとオブジェクトの状態が見れて把握しやすそうです。
ありがとうございます。
0597名前は開発中のものです。2017/02/21(火) 00:05:00.44ID:x94VVENi
縦にボタンを複数配置し、手動で縦にだけスクロールをさせたいと思います。
ScrollRect
└Content
├Cell
└Cell

というようになっています。
ContentにはVerticalLayoutGroupとContentSizeFitterがついています。
Cellに画面横からスライドインさせるような動きをつけたいと思っているのですが、VerticalLayoutGroupのせいでX座標が変更できず困っています。
出現時は横移動、操作時は縦移動のみを出来るようにするためにはどのようにすればよいかアドバイスを貰えませんでしょうか。
0598名前は開発中のものです。2017/02/21(火) 15:17:32.89ID:wsbMRI8k
>>597
アセットを買えばどうでしょうか?すぐにできますよ
0599名前は開発中のものです。2017/02/21(火) 16:59:35.20ID:QWaOEOqT
縦に並べて横にフリックで動かすみたいな似たようなことをしたかったけど調べてもわからなかったから
VerticalLayoutGroupを使うのを止めたわ
0600名前は開発中のものです。2017/02/21(火) 20:00:56.33ID:avWRjcZN
教えて下さい。
インプットマネージャーに、MFI用のパッドを使うため、positivebuttonにjoystick14を設定したのですが、一向に反応しません。
axisも同様にjoystick14も入れました。
数々のhpを見ても、それぐらいの設定で動くとあり、またビルド直前に他のアプリでボタンが有効なのは確認しています。
if (Input.GetButton("Fire14")) {
処理(ここの動作は画面タッチで問題なく動作する事は確認済みです。)
}
ボタン名もFire14としてあります。
何か他に設定はあるのでしょうか?宜しくお願い致します。
0601名前は開発中のものです。2017/02/21(火) 21:01:52.13ID:4OxYzZpZ
オンラインゲームを作る上での質問です。
敵(NPC)の動きというのは通常どこで管理するのがセオリーでしょうか。

1つ考えた案としては、マップにいる各クライアント側で個々に敵を生成し、それぞれの情報をクライアント側からプレイヤーの情報と一緒に送信させようと考えていました。
しかしこうした場合、マップにいるタイミングによって敵の情報を送らないといけないプレイヤーと送らなくていいプレイヤーができてしまい処理の重さに差が出てしまうのではないかと懸念しています。
サーバーで管理するにしてもサーバープログラム側でunityで行っている動きの演算を再現するのは難しいのではと考えています。
なにかいい方法はありませんでしょうか。

通信にはwebsocketを利用し、自前のwebsocketサーバーを介しています。
0602名前は開発中のものです。2017/02/21(火) 21:45:41.28ID:AD0DkHD4
このスレそんな質問答えられないって
Twitterで詳しい人にでも聞いたらいいじゃない
0603名前は開発中のものです。2017/02/21(火) 23:01:01.98ID:fSyCogMs
>>602さんは答えられないレベルなんですねwwwwwwwwwwwww
0604名前は開発中のものです。2017/02/21(火) 23:03:23.15ID:x94VVENi
>599
ありがとうございます、ちょっと同じ方法でなんとかできないか考えてみます
0605名前は開発中のものです。2017/02/21(火) 23:04:14.52ID:avWRjcZN
>>601
あまりいい方法とは思えないけど、最大数を決めて、NPCが生きていなくても常にデータ送信をする。こうすれば負荷はおなじになるね。
0606名前は開発中のものです。2017/02/21(火) 23:20:57.75ID:Nv7utTTg
オンラインゲームで遅延を少なくし
多くのクライアントを同時に扱う通信技術は肝中の肝
各メーカーが日々切磋琢磨し研究し続けてる事で
教えたくないでしょ普通に

なんていうか”使える方法編み出す”のが作る側なんだし
それを自分で考えられないなら作るなよと言いたい
0607名前は開発中のものです。2017/02/21(火) 23:43:12.90ID:1y3KKHXm
>>606
「切磋琢磨」と「教えたくない」で矛盾しまくってるが、とりあえずお前はCEDECにでも足を運ぶべきだな
今のゲーム業界に社外秘の技術など存在しない
0608名前は開発中のものです。2017/02/21(火) 23:46:02.39ID:AD0DkHD4
CEDECなんてミドルウェアの販促とタイトル開発の浅い浅い部分の話だけしかしてないやん
サイゲの講演とか肝心の社内ツールの中身一切触れてないぞ
06096012017/02/21(火) 23:55:27.91ID:Trqf2NdT
流れ悪くしてしまってごめんなさい
遅延を減らすための具体的な実装みたいな話ではなく、一般的に敵の動きを管理しようと思ったらどうなるのかを知りたいとおもい質問しました。
サーバー側のプログラムで位置の計算をするのが普通なのかなとは思ったのですがunityでサーバープログラム作れないしなぁと悩んでいました
unityという範囲からずれた質問なのでひとまず閉じてまた考えてみたいとおもいます
ありがとうございました

>>605
なるほど負荷を平等にすると言う意味では確かにありかもしれません…
実際弄ってみてどの程度差がでるものなのかも比べてみたいと思います
0610名前は開発中のものです。2017/02/22(水) 00:01:03.48ID:ohU2gMkq
オンラインゲームを作りたいのならこちらを一読することをオススメする

オンラインゲームを支える技術
無数の同時接続 x ミリ秒のレイテンシ いかにして両立させるのか
https://gihyo.jp/dp/ebook/2014/978-4-7741-7070-1
0611名前は開発中のものです。2017/02/22(水) 01:22:26.88ID:JTbse2ju
>>608
ソシャゲしか作らない低レベルな会社の社内ツールなんて知りたいのお前?
0612名前は開発中のものです。2017/02/22(水) 08:56:51.98ID:mDbTs2yX
処理の重さってなんのことを指してるのかわからないけど、通信だけで言ったら送るクライアントがいるってことは、受信するクライアントがいるわけで、データ量的なものであればクライアント毎にそこまで大差ないかと

まあ、話の内容見てるとMMO型じゃなくてMO型だと思うんだけど、サーバーでゲームロジックをもたないのであれば、クライアントのどれか1台がマスターになって、すべての処理とその結果を他のクライアントに配信するのが一般的なんじゃないかな
0613名前は開発中のものです。2017/02/22(水) 13:20:36.25ID:Phb+C2Lp
そもそもゲーム処理自体の重さは物理エンジンと描画エンジンがほぼ全てで、その他は誤差だからな。
環境レベルの物理エンジンがゲームロジックに関与するならともかく、
そうでないゲームならゲームロジック部分が普通のショッピングサイトのカート処理やhtmlの生成に比べて重いとは思えないんだが。

大体サーバ側で問題になるのは、
根本的に想定同時アクセス超えて、メモリ詰まりかDB詰まりだろ。redisできる部分はメモリに展開してスレーブ対応すればDBは解決するから、結局メモリな気がする
0614名前は開発中のものです。2017/02/22(水) 22:35:10.29ID:ct//VEhi
crystal package という無料のアセットを入れたのですが、自分のシーンで表示されるのとサンプルのシーンで表示されるのとでは違います
マテリアル回りのことは全然分からないのでどうすればいいかどなたか教えてくれたら助かります・・・
電気マークがありますが、ライトは関係ありませんでした

自分
http://fast-uploader.com/file/7043325831581/

サンプル
http://fast-uploader.com/file/7043326001634/
0615名前は開発中のものです。2017/02/22(水) 22:42:36.49ID:YqSWZGqg
>>609
全く流れ読まず回答になってなかったらごめんなんだけど、モンハンとか白猫とか携帯ゲームだとモンスターの生死(HPも)だけ同期していて、ほかはクライアント任せなのが多い気がする。
ボスとかそういう「絶対に同期していなきゃいけなヤツ」以外はboolとintの管理だけな感じ。

まぁリオレウスがPlayerによってあっちこっちに居るとたる爆弾とか協力できないけど、ランポスがどこにいようとあんまり影響無いようなイメージ。
06166142017/02/22(水) 22:49:28.34ID:ct//VEhi
すいませんファイル消されていました

自分
http://www.dotup.org/uploda/www.dotup.org1165247.jpg

サンプル
http://www.dotup.org/uploda/www.dotup.org1165248.jpg
0617名前は開発中のものです。2017/02/23(木) 03:43:32.04ID:ZyVSL6Iy
>>614
ProjectのCrystalPack>Meshesからシーンに1つ持ってくる
CrystalPack>MaterialsからDefualt以外のを1つ選び、
D&Dでさっき持ってきたシーン上のMeshの上まで持ってきて離し反映させる
これだけで同じ感じにならん?
0618名前は開発中のものです。2017/02/23(木) 14:20:15.52ID:lXI3jfwL
>>617
terrainがいくつかあるんですが、普通に表示されるところと画像のようにギザギザになるところとがあったので恐らくだけど何かの反射が邪魔してるのかなぁ?と思います
原因がわかっただけでもかなり進歩しました、ありがとうございます
0619名前は開発中のものです。2017/02/23(木) 18:06:21.66ID:BLPzZyxk
uguiのtextを座標変換してターゲット(仮にキューブ)に追従させたいのですが、
メインカメラを自キャラ追従&右クリックで視点変更可能 にしている為か、
ectTransform.position = RectTransformUtility.WorldToScreenPoint (Camera.main, target.position);
と記述すると、キャラを動かすたびにキューブ追従のテキストがブルッと震え、安定して表示できません
どうすればよいのでしょうか ご指南よろしくお願いします
0620名前は開発中のものです。2017/02/23(木) 18:20:58.83ID:Oo6QNaGK
ブルっと震えがどういう状態か?
0621名前は開発中のものです。2017/02/23(木) 20:55:47.35ID:ZyVSL6Iy
>>618
それでダメならBuildSettingがモバイル用だとダメなケースかもしれんね
そうでもなければバックアップ取ってからシーン上の物を順番に消せば
何が邪魔してるか解りそうな感じ
0622名前は開発中のものです。2017/02/23(木) 21:35:37.56ID:lXI3jfwL
>>621
0.0.0の位置から離れれば離れるほど荒くなる感じでした、1000くらい飛んだ場所で使ってたので座標が原因だったみたいです
もう今は違ういい感じのクリスタルの3Dモデル見つけたので諦めてそっち使ってます・・・w
0623名前は開発中のものです。2017/02/23(木) 21:46:56.95ID:EehdKZeC
間違えて重複してる別スレに書き込んでしまったので再度こちらでも質問させていただきます。

AudioSourceのspatialBlendで3D音声を有効にした場合、
AudioListnerとの距離によって最終的に再生されるサウンドボリュームが変動しますが
この時のボリューム値をスクリプト内で取得することは可能なのでしょうか?
AudioSource.volumeだと大元のボリューム値しか取れないようなので、どなたかご存知でしたら教えてください。
0624名前は開発中のものです。2017/02/23(木) 22:32:37.64ID:ZyVSL6Iy
>>622
せっかくアセット使えるんだからあんま原因追わずに
諦めて他行くのも大事だな
0625名前は開発中のものです。2017/02/23(木) 22:57:49.08ID:BLPzZyxk
>>620
伝わりづらくてすいません。
ただカメラを動かすだけならしっかりキューブにテキストが追従するのですが、
自キャラが方向転換するたびに一瞬キューブのテキストのポジションが大幅にズレてまた正常に戻るという感じです
コンマ何秒くらい一瞬です たくさん方向転換するとその分だけブルブルしちゃいます
0626名前は開発中のものです。2017/02/23(木) 23:43:46.12ID:5MNmlkue
>>625
動画アップしては?多分わからん。
そもそもカメラを動かす、プレイヤーに追従する、はて?
0627名前は開発中のものです。2017/02/24(金) 00:37:46.32ID:+aPldelP
>>626
申し訳ないです。
他の方法でためしてみたところ自己解決しました。
お騒がせしました。
0628名前は開発中のものです。2017/02/24(金) 00:54:58.77ID:AgvLtA0u
もう全く状況も実装もわからないので完全にエスパーだが
キャラが方向転換する→カメラが大きく動く→テキストの座標算出が遅れる→ズレるって感じじゃないかと推測する

もしかしてキャラの方向転換とそれに伴うカメラの移動とテキストの座標算出のどちらもUpdateでやっててその実行順がテキスト→カメラ&キャラのの順だったりしないか?
この場合テキストの位置が確定→キャラの方向転換処理→カメラの視点が変化→レンダリングの順に処理されるから1フレームテキストの位置が遅れる
それがキャラの方向転換のような大きな視点変化の時に明確化するだけで実は常に1フレーム遅れている様な気がする

もしそうならテキストの座標算出をLateUpdateに移すかScript Execution Orderを弄ってみるといいかもしれない
■ このスレッドは過去ログ倉庫に格納されています