X



【3Dゲームエンジン】Unity総合スレッド31 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
垢版 |
2017/08/27(日) 22:02:58.18ID:tyoB1q05
3Dゲームエンジン「Unity」のスレです。

Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはAround、iPhone/iPod Touch/iPad、Mac、PC、Web、WiiU、3DS、Xbox360、PlayStation 3他

次スレは>>970を踏んだ方が建てること。
ダメなら>>980>>990が建てて下さい。
●公式
http://unity3d.com/unity/
●Unity 2ch Wiki
http://www24.atwiki.jp/unity2ch/
■質問スレ
【3Dゲームエンジン】Unity質問スレッド30
http://mevius.2ch.net/test/read.cgi/gamedev/1492037553/

※前スレ
【3Dゲームエンジン】Unity総合スレッド30
http://mevius.2ch.net/test/read.cgi/gamedev/1500412168/
0579名前は開発中のものです。
垢版 |
2017/12/13(水) 21:37:09.12ID:Kxr7McTA
>>578
低レベルがすくなけりゃね。
おおくなりゃ、その事務対応から何から増えるわけで、人が増えりゃ万々歳なんて、まして無料で大挙してやってこられたらそれだけでお手上げ。
英訳放置っぽいのもそれの現れかもな。
まぁ、そうなるまえにunity運営が考えるだろうけど。
0580名前は開発中のものです。
垢版 |
2017/12/13(水) 22:44:23.31ID:KuRaW49r
英語圏人口は、もっとずっと多いんだから、
ローカライズを向上したら運営がお手上げとか、
ローカルの運営の無能ぶりの証左にしかならんぞ
無能なのは薄々わかってたけどなwww
0582名前は開発中のものです。
垢版 |
2017/12/13(水) 22:52:53.93ID:aZfamG33
ローカライズは、翻訳より、翻訳したあとのメンテが大変だからな
バージョンアップするたびに仕事が増える
大企業も細かいとこまではやりたがらないよ
0583名前は開発中のものです。
垢版 |
2017/12/14(木) 00:02:04.17ID:9tWShtdo
>>578
オンゲの無課金と一緒で、まともに作れない奴がいくら増えてもアセットの売り上げにはほとんど寄与しない
Unity自体もそうだが、アセットも作れる奴が手間を減らすために使うものだから
0584名前は開発中のものです。
垢版 |
2017/12/14(木) 06:59:47.03ID:VUBDIldN
シェアが増えるとユーザーのレベルに差が出るのは必然的だからな。
それが無くなるってのはUnity の衰退を意味する訳で、この法則も理解できてないってのは見ていて辛いね。
数が多いことの恩恵は少ない時よりも多いんだわ。
でも一部の人間は恩恵は無意識に甘受しながらその副産物である小さな弊害にばかり噛みつく。
そういう残念な人間には出来るだけなって欲しく無い。
0586名前は開発中のものです。
垢版 |
2017/12/14(木) 08:53:18.29ID:0RQxom0C
レベルの低い奴をターゲットにしたカテゴリは他にあるんだよな
それこそ小学生をターゲットにしてるものもある
もちろんそれはゲームエンジンと呼べる代物ではないけど
0587名前は開発中のものです。
垢版 |
2017/12/14(木) 09:40:23.89ID:mxsyfVB4
寄生虫の分際でお前らも宿主チューチューしてんだろ?とか
ドヤ顔でいわれましても、普通皆自立してるからね
0588名前は開発中のものです。
垢版 |
2017/12/14(木) 09:44:11.75ID:bpRztYYt
>>583
ゲームもunityも課金の有無と技術の巧拙は全く関係ないしオンゲと同一視すること自体が的外れ過ぎる

アセットは初心者向けの物もあるしむしろ技術がある人ほど買う価値がなくなっていくだろう
万が一初心者全員が売り上げに全く寄与しなかったとして上級者にとっては一切マイナスにはならない

それにオンゲこそ無課金がいないと成り立たない
課金者のみプレイ可能で全員いいアイテム持ってるゲームとかクソゲーの極み
0589名前は開発中のものです。
垢版 |
2017/12/14(木) 13:55:39.39ID:qZ99LNdG
高卒大国ニッポンらしいわ
0591名前は開発中のものです。
垢版 |
2017/12/14(木) 16:09:28.02ID:pC0gV8nN
>1
いまボール転がしの英語チュートリアル動画見てるが、
無数にあるプログラム言語からぽんぽんと必要なものを置いていく時点で
絶対に初心者に教える気ねえよなこいつら

初心者ってのはプログラム言語すら知らないからこそ、
UNITYでどうにか出来ないかと訪れてるわけで、
そこへ「知ってて当たり前」あるいは「あとで全部マスターしろ」って前提で
チュートリアルをどんどん進めていくのはバカだと思う

ズブの素人でも欲しい機能がどこにあるかを見つけやすいように
ウィザード形式で作れるように導くのがこの手のツールの仕事だろうに。
これじゃプログラマー用の補助ソフトじゃねえか
0593名前は開発中のものです。
垢版 |
2017/12/14(木) 16:21:03.55ID:pC0gV8nN
たとえばしれっとStart関数内にrb = GetComponent<RigidBody>();とか書いてるけども、
これが処理速度をあげるためのもの(だよな?よく知らんが)であることを説明しないとダメじゃん。
そもそも初心者用チュートリアルでまだこんなの使う必要ない。そういうところからしてダメ

「仕事のプロ」が必ずしも「教えるプロ」にはなれない典型
0595名前は開発中のものです。
垢版 |
2017/12/14(木) 16:33:17.08ID:On7lkIBu
>>591
元々Unityは初心者用ゲーム制作ツールじゃないよ
>これじゃプログラマー用の補助ソフトじゃねえか
まさにその指摘通りの代物だよ最初から
0596名前は開発中のものです。
垢版 |
2017/12/14(木) 16:38:41.68ID:/q2rzebX
>>591
別にUnityはズブの素人でもゲームが簡単に作れますよって事は唄ってないと思うけど
0597名前は開発中のものです。
垢版 |
2017/12/14(木) 16:45:41.85ID:On7lkIBu
話しをぶった切るが
色々細かい事気にせず作れるようになってて優秀な開発環境だなと思い
他の環境だと繊細に気を遣わないといけなような事も気にせず3ヶ月ガンガン進めて来ていたが
ついにイベントサイクルの関係で、実行してくれない物が出てきたわ

@→A→B、という流れになるようにコード書いてるのに
実際は@→B→A、みたいになり期待した結果にならない感じ

具体的には
「親Object(AScript)→子Object(BScript)→孫Object(CScript)」という構成のプレハブを
リソースからInstantiateしたと同時に、親Object(AScript)から孫Object(CScript)のpublic関数を呼び出し
その関数内で孫に対する色々な初期化やってるんだが
Visible類の初期化がうまくいかないわ

おそらくコード上のInstantiateを実行した段階では、実際にまだフィールドにはPrefabが生成されていなくて
先に親Object(AScript)から孫Object(CScript)のpublic関数の処理が、生成されていないPrefabのvisible系に対し
実行されてるから変化しないんだと憶測している。


やっぱりこの手のタイミング部分はUnity信用しきってやらず
今まで通り気を遣ってプログラミングするべきだったのね・・・( ^ω^)
大きくやり方変えないといけなくなったチクショウ!・・・orz
0599名前は開発中のものです。
垢版 |
2017/12/14(木) 16:54:13.98ID:+skae71K
ミドルウェアってのは慣用的な処理を担ってくれるってだけでプログラミングすら出来ないトーシローが触るもんじゃないだろ
そういう人は素直にツクールシリーズ使ってなよ
0600名前は開発中のものです。
垢版 |
2017/12/14(木) 17:25:54.24ID:fpuqjDVR
>これじゃプログラマー用の補助ソフトじゃねえか

一発で本質見抜いてて笑うしかない
0601名前は開発中のものです。
垢版 |
2017/12/14(木) 17:28:22.49ID:0RQxom0C
UnityにしろUE4にしろ、使うのに少なくともDirectXとかOpenGLの経験は必要だろ
何甘えたこと言ってんだよ
素人が手を出して簡単にゲームつくれるようなもんじゃねーから
0602名前は開発中のものです。
垢版 |
2017/12/14(木) 17:31:26.26ID:+skae71K
まあぶっちゃけプログラミング出来なくてもゲーム作る方法があって、その中でも一番いい方法あるぞ
それはズバリ金を与えて他人にゲームを作らせることだ
こんな楽勝ゲーないだろ?
0604名前は開発中のものです。
垢版 |
2017/12/14(木) 17:32:11.46ID:fPXWlDku
分からない点をググって調べる程度の学習意欲もなく5chに文句を書き込みに来る人間なんて優しくしてもクレーマーにしか育たないんだから
0610名前は開発中のものです。
垢版 |
2017/12/14(木) 18:50:27.75ID:On7lkIBu
「金だけ」では当然ダメだよw
特に今は開発と同じくらい宣伝の方にも金まわさないとさ
このゲームもTVCM出しまくってれば運命は変わってたかもよ
0612名前は開発中のものです。
垢版 |
2017/12/14(木) 19:06:34.50ID:On7lkIBu
うみょー直った
初心に帰り単純な方法思いついて試したら直った
今回また1つ学べたわ
Instantiate()で生成した物を、直後にGameObject.Find()で見つけ出そうする処理は気を付けた方がいい
staticではないpublicなりグローバルなりに参照格納してそっちから扱った方がトラブルなくてよさげ
0615名前は開発中のものです。
垢版 |
2017/12/14(木) 19:09:32.05ID:On7lkIBu
というような事がちらほらあるから
全くの初心者には無理でしょうというお話し
色々経験していないと原因追及と回避できるわけがない
0616名前は開発中のものです。
垢版 |
2017/12/14(木) 19:13:48.60ID:On7lkIBu
>>614
そういう方向性も考えてはいたが今後トラブッた時にさらに複雑になりそうなので採用せんかった
シンプルに直して先を急ぎたかった
0618名前は開発中のものです。
垢版 |
2017/12/14(木) 19:20:13.25ID:/q2rzebX
>>597
アップデートの呼び出し順は確か保証されてないんだよね?
生成もそういう話かの
0619名前は開発中のものです。
垢版 |
2017/12/14(木) 19:22:20.31ID:fpuqjDVR
>>609
プロレベルのゲームを完成させて運営するならな
コミケ頒布レベルのゲームを作るなら難しくも無いよ
0621名前は開発中のものです。
垢版 |
2017/12/14(木) 20:37:03.92ID:VUBDIldN
どんなスポーツでもそれなりに楽しめるには理解して慣れる時間が必要だからなー
ゲーム制作もそれと同じだと思うが
あと誰でも簡単に出来てしまう事に、人は価値を見出ださないっていう事もあるわけだからな
0622名前は開発中のものです。
垢版 |
2017/12/14(木) 21:45:30.27ID:qZ99LNdG
誰でも出来ることならそれこそね、時給1000円出して高卒を連れてくれば良いんだから
0623名前は開発中のものです。
垢版 |
2017/12/14(木) 22:04:42.30ID:0RQxom0C
ことゲーム開発に関しては何故かずぶの素人も俺でも出来るかもって根拠のない期待感持っちゃうよね
0625名前は開発中のものです。
垢版 |
2017/12/14(木) 23:45:13.38ID:On7lkIBu
>>618
原因わかった今ならすっきりだが検証中は原因究明に本当に苦戦したよ
簡単にまとめると次のような処理

void func(){
@
 for(〜){
  Destoryでステージ上の全落ちてるアイテムを一旦削除
 }
A
 for(〜){
  Instantiateで新しいアイテムをフィールドにばら撒く
 }
B
 for(〜){
  新しくばら撒いたアイテムの中にあるスクリプトをGameObject.Findで呼び出しながら
 アイテムを初期化していく
 }
}

この処理がうまく機能していなかった。
原因は
・@のDestoryはvoid func(){}が終了しないと実際にゲームオブジェクトは削除されていない。
・AのInstantiateも@と同じくこの時点で完了していないようだった
・結果Bでの検索はAで生成されたものではなく@で削除予定だったものが参照されていた

これで新しいアイテムは全部正しく初期化されてなかった。
ゲームオブジェクト名でアイテムを識別して
GameObject.Findの検索に使ってるという不幸も重なってのバグ
0627名前は開発中のものです。
垢版 |
2017/12/14(木) 23:49:50.26ID:On7lkIBu
上の処理は
@→A→B
の予定で動くはずなのに
実際には
B→@→A
みたいに動くわけよ

次からは気を付けるぞーっと
0628名前は開発中のものです。
垢版 |
2017/12/14(木) 23:52:18.21ID:N8/aZDnG
ぶっちゃけゲームを制作するなんて実際にやってみるに越したことはない プログラムがダメでも普通に日本製のRPGツクールやウディタやアクエディも有るしわざわざUnityでやる必要もないしなー‥

沢山の人に見てもらうならともかく配信サイトとか大量だし環境は整っていると思うんだけどもね
0630名前は開発中のものです。
垢版 |
2017/12/15(金) 01:04:40.44ID:cZlrc8Ac
後、制作することの何処かが楽しい、と思えるならゲーム制作にかぎらず創作は向いているだろうなぁ すべての過程が辛いと考えるならば辛いけど無理そうだとしか言えない
0631名前は開発中のものです。
垢版 |
2017/12/15(金) 01:06:45.28ID:SnxYHSnm
>>627
それってgetcomponentの後の行に取得済み前提のコード書くとたまに「ありましぇん」エラーが出ちゃうのもそれか>順序不定
でIfでゲットできてるの確認してから取得前提のコードを実行するようにすればおkという
Unityはきまぐれなのかな
0632名前は開発中のものです。
垢版 |
2017/12/15(金) 02:26:58.18ID:ZeNW5Loz
script Execution Orderを使えばいい
順序を設定しなければ予定されてもいない予定通りにプログラムが動かないのは当たり前
気まぐれなのはunityじゃなく動くかわからないプログラムを作る人間
0634名前は開発中のものです。
垢版 |
2017/12/15(金) 11:38:03.18ID:GfHyeVdP
順序不定っていうけどdestoryとinstantiateがどういう動作を行うものかを理解してないだけじゃ?
unity初級の内容だと思うけどリファレンスに明記されてなかったっけ?
0635名前は開発中のものです。
垢版 |
2017/12/15(金) 12:15:42.13ID:KHDtIX5X
リアルタイムゲーだけど、そこまで苦労した覚えないなぁ。そこを考えずにヤラレタたら消す、押されたら連産とかしてるが。
0637名前は開発中のものです。
垢版 |
2017/12/15(金) 12:52:57.40ID:SsN/OcfA
ですとろーい
Actual object destruction is always delayed until after the current Update loop,
but will always be done before rendering.
実際のオブジェクト破壊はいつも遅れる、現在のUpdateループの後まで
しかしいつもレンダリングの前には終わる
0638名前は開発中のものです。
垢版 |
2017/12/15(金) 14:01:12.76ID:7hJ7rjh+
>>633
あれ使わずに作るにはどうすりゃいいの?俺ももううんざりしてるよ
何か気をつけたりしてることある?
0640名前は開発中のものです。
垢版 |
2017/12/15(金) 14:22:56.16ID:bO73tzHJ
>>631
気まぐれというよりは見落としがちな仕様の1つって感じかな?
他の不親切な開発環境だと、マニュアルの車運転んしてるみたいに最初からその辺り注意して作るが
Unityは変に親切設計でオートマ車みたいな感じなのもあり
意識しないで作れるようになってるから俺には落とし穴だった。
その割には詳しく説明してるサイトは少ない気がした。

>>634
漠然とは明記されてたようだよw漠然とね >>637

説明みてても初心者向きではないわなw

>>637
サンクス!
この説明分に俺なりの補足いれると
こうなる

実際のオブジェクト破壊は瞬時には行われません。
Destoryを記述した同一フレームのUpdateの最期に実行されます。

この動きはinstantiateも同じです。
よってFindでオブジェクトを検索する時は注意してください。
Findは同一フレームのUpdateの最初に実行されます。
Start()でinstantiateした場合Findを使用しても検索できない事になります。
0641名前は開発中のものです。
垢版 |
2017/12/15(金) 15:15:47.33ID:oUFFIJn/
>>640
そもそもGameObject.Find()に依存した作りはお勧めしない

Destroyに関しては一応DestroyImmediateという即時削除メソッドが定義されているが、エディタ拡張を作る目的以外の使用は推奨されない
素直にDestroyを呼んで待つべき

Instantiateに関しては、Instantiateを実行した時点でインスタンスは存在する。ただしこれがヒエラルキーツリーに組み込まれるまでに遅延がある
よって生成されたオブジェクトを即時初期化したい場合にはInstantiateの戻り値に対して操作を行うと良い
また更に、AwakeやStartの処理が終わっていないオブジェクトのメソッドの呼び出しは推奨されない
Awakeでの参照関係の解決やStartによる初期化が終わっていないと正しく動作しない可能性があるから

プレハブ内で完結する操作ならInstantiateの戻り値に対して行えばいいが、それ以外は1フレーム待つのがいいと思う
0642名前は開発中のものです。
垢版 |
2017/12/15(金) 15:20:26.78ID:GfHyeVdP
>>640
オブジェクトの生成破棄は時間かかる処理だからupdateの中でやられちゃ困る
だからフラグだけ立てて処理を次に回すような処理を取ってる
どこまでを初級者とするかってところはあるけども日本語で解説してる記事なんか山ほどある
scriptでオブジェクトの生成破棄を操作するならよく引っかかる内容
コレが初級者向けじゃないってなると、初級者は自分でscriptをほとんど使わずに組み上げるレベルになるね
0645名前は開発中のものです。
垢版 |
2017/12/15(金) 16:40:10.63ID:bO73tzHJ
>>641
まさにおっしゃりとおり

ちなみに
>そもそもGameObject.Find()に依存した作りはお勧めしない
これも当然承知の上で物は使い様でケースバイケースで使ってる

例えば俺の場合ステージ移管の時の初期化はFindが多い。
Updateみたいに毎フレーム呼び出すような頻繁にやるものではないため処理速度を要求していないのと
変数に格納してメモリー圧迫したくないという点からFindの方が向いてるわけよ。
その場限りの使い捨てみたいな感じの場所でFindは重宝してる。
俺の場合ね。
0646名前は開発中のものです。
垢版 |
2017/12/15(金) 16:52:10.28ID:bO73tzHJ
>>642
そうそうまさに初心者の定義は人によるから何とも言い難いところだわな。

フラグ立てて非同期っぽく遅延処理かけるやり方は結構制御に気をつかうので
中級者レベルかな〜と勝手に思ってる。
なんとなくネットワークプログラムのタイムアウト処理とか
外部ファイルの非同期読み込み処理に似てるものがあるしね。

初心者には結構難しい所だとおもうわけよ。
俺が最初そうだったからさwあくまで俺基準だけどなw
0647名前は開発中のものです。
垢版 |
2017/12/15(金) 17:15:47.42ID:GfHyeVdP
>>646
まぁ人それぞれだけどプログラムとして見れば非同期処理となると中級なのかもしれん
が、俺はunityを使う上では初級だと思うよ
scriptでオブジェクト生成破棄を扱うなら前提知識になるわけだし
対応策は色々あってその対応方法によっては中級とかに値するかも知れんが
それはその方法が中級なのであって知識は初級だと思う、ってことね
0648名前は開発中のものです。
垢版 |
2017/12/15(金) 17:49:04.73ID:3n3Olf7j
Unityはまだこれからなんだけど、他のプログラムの作りから考えるとオブジェクトのデータはModelにあって、GameObjectは単にそのビューとして生成、表示、消滅が行われるべきって感じがするけど間違ってる?
0652名前は開発中のものです。
垢版 |
2017/12/15(金) 18:13:55.80ID:3n3Olf7j
>>649
だから分離したほうがいいんじゃって話なんだが。
0653名前は開発中のものです。
垢版 |
2017/12/15(金) 18:32:56.28ID:isaWg6wg
Modelの挙動自体がフレーム単位にしかしようがないんだからGameObjectから分離してそこまでメリットがあるかなあ
0654名前は開発中のものです。
垢版 |
2017/12/15(金) 21:00:03.54ID:o5X2W6SU
>>646
へえ、Unityのアクター階層への動的登録には、そういう問題があるんだな。シェア、サンクス
もっとも自前エンジンでアクターやタスク要素の登録管理基盤までスクラッチする場合でも、当然ついて回る問題だが。
安定動作のために(FixedUpdateを?)1フレーム待つべし、という書き込みがあるが、本当に1フレームで良いのかな
0656名前は開発中のものです。
垢版 |
2017/12/15(金) 22:49:25.54ID:GfHyeVdP
>>655
企業でmvcやってるとこ知ってる
ソースじっくり読んだわけじゃないから上手く行ってるかは知らんが
web上がり、ってかブラウザソシャゲでphp使ってた会社だから設計思想をそのままunityに応用したっぽい
こういうとこ多そうな気がする
0659名前は開発中のものです。
垢版 |
2017/12/15(金) 23:20:31.26ID:bMBvfMPS
UniRX入れたらどうなんの
0663名前は開発中のものです。
垢版 |
2017/12/16(土) 00:45:49.02ID:zgsa9dPV
Unity制作初心者です。検索して調べても知りたい内容にどうしても辿り着けないので質問させていただきます。



いま、PCゲームでどうぶつタワーバトルと落ちてくる動物以外は全く同じものを作ろうとしているのですが初歩的なところで詰まっています。

プロジェクトは2Dで作成しました。


画像を取り込んでRigibody 2DやPolygon collider2Dを使って下に落ちるようにしたんですがそれからわからなくて詰まっています。


どうぶつタワーバトルのように回転させるボタンがあって画面をクリックすると動物が落ちる(それまでは動物は画面上に固定されている)という仕様にして,動物が落下したら次の動物が出てくる。というような仕様にしたいのですがプログラムが書けなくて実現できません。
上記の解決策が思いつかないのでどうかご教授お願い致しますm(__)m
0666名前は開発中のものです。
垢版 |
2017/12/16(土) 01:13:29.29ID:zgsa9dPV
>>664
すいません、、、、。質問スレにカキコしたつもりだったのですが間違えてしまっていました。。。

>>665
そうなのですか?友人にプログラム書けなくても作れるよと勧められて制作を始めてるのですが経験者じゃないと厳しいのですかね
0667名前は開発中のものです。
垢版 |
2017/12/16(土) 01:23:19.59ID:fmqmdkMD
その友人は超適当だな。

プログラム書けなくても作れる物も多少あるよ。
ゲームと呼べないただ動くだけの何かになるだけだけど。
例えば灰色の箱を矢印キーだけで動かすだけの物とか。

市販されてるようなゲームを作るには100%プログラム書けないと無理。
0669名前は開発中のものです。
垢版 |
2017/12/16(土) 08:16:33.17ID:vGUIo4ib
>>666
初心者なら、もっと簡単なものからつくるべきだったかも。
まだプログラムしたいなら、一度本屋でそれなりの一冊を買ってやってみればいいよ。
0670名前は開発中のものです。
垢版 |
2017/12/16(土) 08:30:12.46ID:Tf0EvNgZ
Unity関連の本いろいろ立ち読みしたけどロクなの無かったよ
オンラインドキュメントと公式チュートリアルの方が10000倍マシ
0673名前は開発中のものです。
垢版 |
2017/12/16(土) 10:29:50.21ID:RTTPmOFv
PlayMaker何も無いところからある程度のレベルのゲーム作るチュートリアルなりサンプルって転がってん?
0674名前は開発中のものです。
垢版 |
2017/12/16(土) 10:30:48.62ID:RTTPmOFv
アセット作成とかはいらないけど、それらをどうPlaymaker で組み上げてゲームに仕立て上げるかまでの。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況