【3Dゲームエンジン】Unity質問スレッド32

■ このスレッドは過去ログ倉庫に格納されています
1名無し@キムチ
垢版 |
2017/10/30(月) 05:05:35.00ID:xnHTCaF3
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。

■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質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/
2017/11/22(水) 23:38:32.90ID:iE8jtKZG
>>348
素材提供スレじゃねえけど、そういうのツクール素材で探せばええんちゃう?
2017/11/23(木) 00:14:59.97ID:QRNVPncp
新しくC#スクリプトを作ったら
オブジェクト参照がオブジェクトインスタンスに設置されていませんというエラーが出て
テストプレイしてもコンパイルエラーで実行できなくなったのだけど
なにか工程を忘れているのでしょうか?
2017/11/23(木) 00:36:03.73ID:RZCCd0Fm
はい
352名前は開発中のものです。
垢版 |
2017/11/23(木) 02:39:25.06ID:aJavQgtq
>>350
たぶん、アセットを買い忘れたのでしょう
2017/11/23(木) 02:44:43.05ID:wLnswzoG
Unityのシェーダーで質問です
カスタムラインティング(lighting○○)の記述方法で困っています。
イメージとしては標準であるシェーダーのUnlit>Textureのような
元のテクスチャと同じ色をカスタムライティングで表現がしたいです

void surf(Input IN, inout SurfaceOutput o){
 o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
}

fixed4 Lighting○○(SurfaceOutput s, fixed3 lightDir, fixed atten){
 half4 c;
 c.rgb = ■■;
 c.a = s.Alpha;
 return c;
}

■■の部分に0.0を入れた場合本来のテクスチャより大分黒くなってしまいます。
かといって1.0を入れてみても真っ白になってしまいます。

数字の問題じゃなくてどこかの設定をかえるべき場合
シェーダーのどこを修正すれば良いでしょうか
それらしい単語や参考となる資料何かないでしょうか
2017/11/23(木) 03:03:25.14ID:RZCCd0Fm
0.5をいれろ
355名前は開発中のものです。
垢版 |
2017/11/23(木) 03:05:23.42ID:aJavQgtq
>>353
アセットを買いましょう
2017/11/23(木) 03:08:03.33ID:hlwE+o0N
>>353
俺、シェーダーのことは何も知らんけど、RGBで0黒くなったり1で白くなったりするなら
明暗制御してそうだし、0.5でも入れて試してみればいいんじゃないの?
試した上で書いてるなら申し訳ない
357353
垢版 |
2017/11/23(木) 03:19:53.80ID:wLnswzoG
https://docs.unity3d.com/jp/540/Manual/SL-SurfaceShaderLightingExamples.html
ちなみにマニュアルのこのページを参考にしています

>>354
0.5や0.1をいれても元のテクスチャの色では表示されないんですよね…
(0.01刻みで全て試しました)


>>355
アセットかわないと作れないのでしょうか?
2017/11/23(木) 05:31:31.55ID:VzY+3J1y
surf 関数の中でSurfaceOutputのAlbedoにテクスチャ色を代入してるんだから、Lighting関数ではs.Albedoを使わないとそりゃテクスチャ色は反映されないでしょ

o.Albedo = s.Albedo.rgb * 0.5;

でも試してみ
2017/11/23(木) 06:55:29.34ID:VzY+3J1y
おっとo.Albedoじゃないや
寝ぼけてるな

c.rgb = s.Albedo * 0.5;

だった
2017/11/23(木) 07:46:55.69ID:Fif9lAfv
ID:wLnswzoG
質問のテンプレが完全にキムチw
361名前は開発中のものです。
垢版 |
2017/11/23(木) 09:12:04.34ID:iDiAdE9o
fps一人で作れるか
2017/11/23(木) 11:16:27.66ID:81qTUW9X
359は男前
363353
垢版 |
2017/11/23(木) 12:30:35.78ID:wLnswzoG
>>358
回答ありがとうございます
その場合でも若干元の色よりくすんで表示されるようです
どうやら調べてみたらLightingのScene->SkyBoxのAmbientが影響しているようでした

シーン全体に影響はでますが
insensityを0にした状態でc.rgb = s.Albedo * 1.0にしたら
Unlit>Textureとまったく同じ色合いになり解決しました
2017/11/23(木) 13:07:49.35ID:VzY+3J1y
>>363
Unlit/Textureとほぼ同じ動作をさせたいなら元ソースから改変したらどうだい?

https://unity3d.com/jp/get-unity/download/archive

ここからビルトインシェーダーのソースをダウンロードしてUnlit-Normal.shaderの中身を確認してみ
ライティングの影響受けるサーフェスシェーダーじゃなくてバーテックス/フラグメントシェーダーになってる
2017/11/23(木) 13:19:54.07ID:VzY+3J1y
どうしてもサーフェスシェーダーでやるなら
#pragma surface surf 〜の行に noambient を足せば出来るらしい
試したら出来た
366353
垢版 |
2017/11/23(木) 13:33:04.69ID:wLnswzoG
>>364
厳密に言うとそこからさらに独自の影をかけたいのでUnlit/Textureそのままじゃダメなんですよね
Unlit/Textureのソースだとたしかlightning offとなっていて
ライティングシェーダーそのものがOffになってました

>>365
貴方が神ですありがとうございます!
Lightingのinsensityを下げる以外は頂点・フラグメントシェーダー以外方法がないかと諦めていたのですが
この方法ならサーフェスシェーダーだけでも出来るんですね
助かりました

というわけで質問〆ですありがとうございました。
367名無し@キムチ
垢版 |
2017/11/23(木) 19:44:42.09ID:zG98k7/b
>>348
ドット絵の素材で上左右向きのものはたくさんありますが、上下左右向きのものはちょっとないと思います。
2017/11/23(木) 20:27:26.39ID:0DStohp5
いやあるでしょ
むしろ3方向素材より4方向素材のほうが多いっしょ
2017/11/23(木) 20:38:24.49ID:8VVO/uAT
はい、というわけで
「左右後頭部だけのドット絵なんか使えないだろキムチ君」と心でツッコミいれてROMってる人達
こんばんは

本日の講義のお時間です

前回に引き続き「IF分の色々」です
2017/11/23(木) 20:44:56.20ID:8VVO/uAT
IF分は次のように"多重"にすることもできます。


if( a == 1 ){
if( b == 1 ){
Debug.Log("aとb両方が1だよ");
}
}

こうすることにより1つだけではなく複数の条件がそろった時にIFを成立させる事ができるわけです。
上の例では2重ですが当然ながら3重にも4重にも無制限に行えます。
ただしとても見づらくなっていきます。


if( a == 1 ){
if( b == 1 ){
if( c == 1 ){
if( d == 1 ){
Debug.Log("aとbとcとd、全部が1だよ");
}
}
}
}

そこで算術演算子である「&&(アンドと呼ぶ)」を使う事で同じ事が見やすく行えます。


if( a == 1 && b == 1 && c == 1 && d == 1 ){
 Debug.Log("aとbとcとd、全部が1だよ");
}

この2つの例は見た目は違いますが実行結果は同じになります。
2017/11/23(木) 20:50:51.07ID:8VVO/uAT
if( a == 1 && b == 1 && c == 1 && d == 1 ){
 Debug.Log("aとbとcとd、全部が1だよ");
}

はaもbもcもdも"1"の時にifが成立します。
4つのうちどれか1つでも"1以外"だとifが成立しなくなります。

次の例では、「a、b、c、dのどれか1つでも1ならばifを成立させたい」やり方です。
算術演算子の「||(オアと呼ぶ)」を使います。


if( a == 1 || b == 1 || c == 1 || d == 1 ){
 Debug.Log("aかbかcかdのどれかが1だよ");
}

このように「&&」「||」を使う事でさらに柔軟な条件分岐を行えます。
2017/11/23(木) 20:59:09.92ID:8VVO/uAT
if文は基本は「条件が成立した時に実行したい」処理を書くわけですが
逆に「条件が不成立の時に実行したい」処理を書くこともできます。
それには「else節」を使用します。
まずはelse節がないif文の例です。


Debug.Log("IFの前");
if( a == 1 ){
Debug.Log("aは1");
}
Debug.Log("aは1ではない");
Debug.Log("IFの後");

これを実行すると「a = 1」の時は
"IFの前"、"aは1"、"aは1ではない"、"IFの後"
と4つ表示されます。
"aは1ではない"が不要です。

"else節"を使う事で次のようにできます。


Debug.Log("IFの前");
if( a == 1 ){
Debug.Log("aは1");
} else {
Debug.Log("aは1ではない");
}
Debug.Log("IFの後");

これを実行すると「a = 1」の時は"IFの前"、"aは1"、"IFの後"と3つ表示されます。
「a = 1」ではない時は"IFの前"、"aは1ではない"、"IFの後"と3つ表示されます。
理想的な結果です。
2017/11/23(木) 21:05:31.97ID:8VVO/uAT
最後に「if〜else if」を説明します。
else節の後にさらにifを使い条件判定(分岐)をさせる事が出来ます。


if( a == 1 ){
Debug.Log("aは1");
} else if( a == 2 ){
Debug.Log("aは2");
} else if( a == 3 ){
Debug.Log("aは3");
} else {
Debug.Log("aは1でも2でも3でもない");
}
Debug.Log("IFの後");

例えば「a = 1」の時は十字キーの左を押した時の処理を、
「a = 2」の時は十字キーの右を押した時の処理を、
「a = 3」の時は十字キーの下を押した時の処理を行い時などに使うことができる書き方です。

if文の章は以上です。
ここまでで貴方はif文の使い方はほぼマスターしています。
ほとんどの条件をあなたは実現できることでしょう。

わかったかクソども
2017/11/23(木) 21:06:32.13ID:8VVO/uAT
誤字は愛嬌だ
わかったかクソども
2017/11/23(木) 21:08:52.41ID:W9y7pNcP
ライティングについて教えてください
android端末をターゲットとしています。
密室で壁や天井をある程度明るく照らしたいのですが、結果としては「VR脱出ゲーム2」Blacksmith DoubleCircleさんが作っているような感じにしたいのです。
Directional lightを上からと下からと照らす方法を考えたのですが、他に何か良い方法はありますか?
ポイントライトですと、壁や天井の反射がきつい感じです。
2017/11/23(木) 21:27:06.97ID:KgDCdD6L
アンビエントライトを付けろよ。
377名前は開発中のものです。
垢版 |
2017/11/23(木) 21:31:06.48ID:ClP9LjDh
       /::::)(:::)(:::::::::::)(::::::^::::::::::\
      (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
     | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
     |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ       _________
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |     /
    .( 。 ・:・‘。c .(●  ●) ;”・u。*@・:、‘)ノ  /アンビエントライトを付けろよ。
   ( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) <
    (; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.)   \
   .\。・:%,: )::::|.  ̄ ̄ ̄ ̄  | ::::(: o`*:c /..    \_________
    \ ::: o :::::::::\____/  ::::::::::   /
      (ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_    ノ
       \丶\_::_:::::_:::: :::::_/::::  /
        | \ \ ::::::::::: :::::::::: ::: ::__/ |
    ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄    / ̄ ̄
2017/11/23(木) 21:48:03.30ID:8VVO/uAT
>>377
https://pbs.twimg.com/profile_images/895371387904245760/_8QNhwDX_400x400.jpg
379375
垢版 |
2017/11/23(木) 21:56:20.80ID:W9y7pNcP
ありがとうございました。
アンビエントライトの設定でうまくいきました。
最初はskyboxだったので白くなりすぎたのですが、Gradientにして色を設定したら思った明るさになりました。
2017/11/23(木) 21:56:54.48ID:aJavQgtq
>>375
ライト関係のアセットをかえばいいのでは
2017/11/23(木) 23:01:22.59ID:yNi8m4dC
>>309

2Dなら、intとfloat,Vector2で事足ります。
文字列を表示するなら、stringもかな。

3Dなら、float,Vector3,Quaternionを使います。
基本的に、UIは数値表示のintと文字表示のstringです。

Vector4は、Matrix4x4という行列を使用する際に使います。
あるいは、Quaternionに直接数値を入力する場合でしょうか。

でも、行列計算は、Vector3で入力して、
Vector3で出力する関数が用意されているので、
Vector4はまず使う必要がありません。

Quaternionも、オイラー角で入出力するなら、Vector3で十分です。
Quaternion積もVector3で計算する関数があるし、
角速度もVector3だし、Vector4はメッシュやシェーダー用でしょう。
2017/11/24(金) 07:21:18.19ID:F3KQBR4Q
>>350
無茶苦茶なコード書いてるんじゃねーの?
ググれば一瞬で答え出るからggrks
383名前は開発中のものです。
垢版 |
2017/11/24(金) 08:01:07.39ID:9WQWnRQq
大作よりはほのぼの系のゲーム作った方がいいのか
2017/11/24(金) 10:45:57.99ID:pP3PeJel
敵オブジェクトを操作するのに共通のスクリプトをアタッチするより、
一つのマネージャ用オブジェクトに全部の敵オブジェクトを操作するスクリプトをアタッチした方が
動作軽くなりそうだと思うんだけど、皆さんはどうしてますか?
2017/11/24(金) 10:59:19.54ID:aXB5JEdr
モノによるから意味はない。
やりたいことに対してなら意味がある。
386名無し@キムチ
垢版 |
2017/11/24(金) 20:24:41.52ID:g/8l/UEF
>>383
大作やほのぼの系ゲームよりも、人の欲望をそそるゲームのほうが絶対受けるはず!!
欲望といっても金欲はゲーム内だけじゃ満たされんし、かといってゲームクリアした人に賞金やるわけにはいかんから没。

すると残るのは無茶苦茶性欲そそるゲームしかないわけだが・・・w
2017/11/25(土) 12:10:33.67ID:dm9F8M7M
割と大作寄りのゲーム作ってるが、正直バランス調整自分でやれる気がしない
何から何までGoogleスプレットシートで調整できる様にはしているが、その要素が多過ぎる
カジュアルだけどついつい遊んでしまう程度のものを個人制作以上のクオリティで作る方が可能性を感じる

ただ、大作作るとめちゃくちゃ制作技術が伸びるよ
388名無し@キムチ
垢版 |
2017/11/25(土) 18:13:30.44ID:BMYtVJuo
>>368
>いやあるでしょ
>むしろ3方向素材より4方向素材のほうが多いっしょ

いやないっしょ
4方向素材ってのは前後左右のことでしょ。
また上から見下ろした素材はあるけど、キャラの足元から見上げた素材ってないっしょww
ないっしょwないっしょwないっしょwww
2017/11/25(土) 18:52:52.64ID:BwFivc9s
>>388
すまんが何を伝えたいのかさっぱりわからんわ
390名無し@キムチ
垢版 |
2017/11/25(土) 19:28:03.00ID:MsZJXsKS
>>389

それは>>348からたどってみないとわかりませんね。

まず、「ドット絵の素材で上下左右向きのある素材教えてください。」という質問があったのです。

当方は上から見下ろした素材はあるが、キャラの足元から見上げた素材はないと思ったので、
「ドット絵の素材で上左右向きのものはたくさんありますが、上下左右向きのものはちょっとないと思います。」
と答えたわけです。

すると>>368が「いやあるでしょ
むしろ3方向素材より4方向素材のほうが多いっしょ 」と反論してきたのですよ。

当方考えるに>>368がいう4方向素材とは、前後左右のことではないか?と・・・
だってキャラを下から見上げた素材っていままで見たことがないですから!!

つまり最初の質問で発せられた上下左右がいつの間にか前後左右にすりかわっていたわけで、
当方としてはそれを指摘したかったのでありますな!!
2017/11/25(土) 19:39:11.35ID:tNOe2BPS
「キムチ君、制作物は細かい所手抜きなのに言葉は潔癖かよ!」と思いながらROMってる皆さんこんばんは。

講義のお時間です。

今回も"条件分岐"についての講義です。

前回は「if文」を使いました。
今回はもう一つの条件分岐文である「switch文」をやります。
2017/11/25(土) 19:43:30.85ID:kleZK8qr
下から見た女の子はパンツ丸見えでふ(^^
だから何だと言われたらそれまででふが(^^
2017/11/25(土) 19:48:36.66ID:h5kxWxfc
最初の質問が言葉足らずで誤解された
誤解された回答でさらに誤解が進んだ

どっちもごめんなさいで進めればいいと思う
解決したいのは誤解されてないほうの質問でしょうし

下から(足裏側からキャラを)見ているドット絵素材は俺も見たことないかな
2017/11/25(土) 19:57:24.02ID:tNOe2BPS
前回、"if(){ } else if(){ }"の説明で下のような例を出しました


if( a == 1 ){
Debug.Log("aは1");
} else if( a == 2 ){
Debug.Log("aは2");
} else if( a == 3 ){
Debug.Log("aは3");
} else {
Debug.Log("aは1でも2でも3でもない");
}

"switch文"を使用するとこれを下のように書けます。
実行結果はif文でもswitch文でも両方同じです。


switch( a ){
case 1:
 Debug.Log("aは1");
 break;
case 2:
 Debug.Log("aは2");
 break;
case 3:
 Debug.Log("aは3");
 break;
default:
 Debug.Log("aは1でも2でも3でもない");
 break;
}
2017/11/25(土) 20:01:49.33ID:OBqKDnCd
どうでもいい
https://www.gamasutra.com/db_area/images/feature/3520/dq430.png
2017/11/25(土) 20:03:44.03ID:BwFivc9s
元の質問者は帰ってこんだろうから真実はどうでもいいとして

こういう質問内容で上下左右と言われたらキムチの言う前後左右を指す、と思うのは俺だけ?
見下ろし2Dゲームで上を向いたキャラと後ろを向いたキャラ、どっちが伝わりやすいかって言えば前者だと思うんだけどなぁ

確かに言葉狩りをして下から見上げるものを含む素材と取れなくもないけど、そういった素材より前後左右の方がよく使われるだろうから、そちらを希望していると解釈しただけ

というか3方向の素材て汎用素材としてあるの?
3方向しか使用しないゲームは山ほどあるけど素材提供として3方向に限定してるようなもんがあるのか疑問なんだけど
2017/11/25(土) 20:05:41.19ID:tNOe2BPS
見て分かる通りswitch文で出来る事はif文でも可能です。
そのせいでswitchって使い所がイマイチわからないという初心者が多いです。

switch文はif文の簡易バージョンと思ってください。

「switch( a >= 1 )」とか
「switch( a == 1 )」とか
「switch( a == 1 && b == 1)」とか

if文並みの複雑な条件式は記述できません(エラーになります)

『1つの変数の値の変化で実行させたいプログラムを変えたい時に使う』物です。
複雑な条件分岐はIF文に任せましょう。

ちなみに先程の例では「if else if文」側より「switch文」側の方が多少処理速度が速いです。
早いと言っても0.0001秒という微々たる差ですが。
2017/11/25(土) 20:17:13.50ID:tNOe2BPS
"default:"は"case"のどれにも一致しなかった場合に実行される部分です。
if文のelseに相当します。
if文でelseを書かない事が出来たように不要ならば"default:"も書かなくて大丈夫です。


switch( a ){
case 1:
 Debug.Log("aは1");
 break;
case 2:
 Debug.Log("aは2");
 break;
}

"case"は「変数がその値だったら」という意味合いで記述します。
上の例ですと
"case 1:"は"if( a == 1 )"と同じで"case 2:"は"if( a == 2 )"と同じです。
もう少し分かりやすくすると下のようになります。


string mode = "OPENING";
switch( mode ){
case "OPENING":
 Debug.Log("オープニングだよ");
 break;
case "ENDING":
 Debug.Log("エンディングだよ");
 break;
}

上の場合「オープニングだよ」と表示されます。
変数"mode"の中身を例えば"hello"と適当な文字に変えるとどれにも一致しなくなるため何も表示されなくなりなります。これは"default:"を記述していないからです。
2017/11/25(土) 20:25:18.25ID:tNOe2BPS
"break;"は重要です。
下に"case 1:"の"break;"を削除した例を書きます。


switch( a ){
case 1:
 Debug.Log("aは1");
case 2:
 Debug.Log("aは2");
 break;
}

この場合"a"の中身が1の時に「aは1」と「aは2」両方表示されます。
"break;"を付けないと処理が止まらず次の"case"も実行される仕組みです。

この特性を生かし「aの中身が1か2の時に実行させたい」などの変わった使い方もできます。


switch( a ){
case 1:
case 2:
 Debug.Log("aは1か2");
 break;
}

当然ですが「switchの中にさらにswitch」、「switchの中にif文」なども可能です。
ただし見づらくなるのであまり多少はしない方がいいでしょう
2017/11/25(土) 20:27:35.93ID:tNOe2BPS
<switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
 switch( b ){
  case 1:
   Debug.Log("aは1でさらにbは1");

case 2:
 Debug.Log("aは2");
 break;
}

この場合"a"の中身が1の時に「aは1」と「aは2」両方表示されます。
"break;"を付けないと処理が止まらず次の"case"も実行される仕組みです。

この特性を生かし「aの中身が1か2の時に実行させたい」などの変わった使い方もできます。


switch( a ){
case 1:
case 2:
 Debug.Log("aは1か2");
 break;
}

当然ですが「switchの中にさらにswitch」、「switchの中にif文」なども可能です。
ただし見づらくなるのであまり多少はしない方がいいでしょう
2017/11/25(土) 20:28:57.24ID:tNOe2BPS
これは書き途中で送信したミス投稿なので無視するように>>400
2017/11/25(土) 20:32:59.12ID:tNOe2BPS
<switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
 switch( b ){
  case 1:
   Debug.Log("aは1でさらにbは1");
  break;
  case 2:
   Debug.Log("aは1でさらにbは2");
  break;
 }
case 2:
 Debug.Log("aは2");
 break;
}

<switch文の中にさらにif文の例>
int a = 1, b = 1;
switch( a ){
case 1:
 if( b == 1 ){
  Debug.Log("aは1でさらにbは1");
 } else if( b == 2 ){
  Debug.Log("aは1でさらにbは2");
 }
 break;
case 2:
 Debug.Log("aは2");
 break;
}
2017/11/25(土) 20:37:39.60ID:tNOe2BPS
複雑になってきましたね

実は>>402
「<switch文の中にさらにswitch文の例>」には"break;"が1つ抜けており
「a = 1」の時の結果が正しくならないバグを今見つけました。

このように見づらい&ミスをしやすくなるため
switch文の中にさらにswitch文を入れる事はあまり良い方法とはいえず推奨はされていません。

以上だクソども
2017/11/25(土) 23:09:11.61ID:ZrgJVSji
書き込み多いと思ったら講座()の人かw
2017/11/25(土) 23:16:37.99ID:7JdNfh5M
これ本気でやってるの?
2017/11/25(土) 23:18:53.08ID:4b1JTNED
>>387
>何から何までGoogleスプレットシートで調整できる様にはしているが、その要素が多過ぎる

その気持ち、わかるぞ
つっても自分の場合、大作でもないんだが、パラメータを別ファイルに切り出すと、それだけでなんか安心してしまう。これは結局、問題を先送りしているだけなのか
しょうがないけど自分でやるしかないと思ってやってる
407名前は開発中のものです。
垢版 |
2017/11/26(日) 00:51:44.80ID:5UTT/Lbk
RTSを作りたいのですが
Unityの入門本で(初心者向け)
オブジェクトAにオブジェクトBを追跡移動させたり
移動制御に関する、初心者向けの良い解説本って知りませんか?
いくつかUnityの解説本を買ってみたのですが
どれも「落ち物ゲー・パズルゲー・迷路ゲー」という簡単なゲームの作り方のみで
RTSに使われそうな技術(オブジェクトにオブジェクトを追跡させるやりかたや移動制御)を
解説したUnity入門本がなかなかありません

1つだけあったのですが
その本はJavascriptを使っての解説だったので
C#となった今となっては使えません
そこら辺の技術を解説した初心者向けの良い良書はありませんでしょうか?
2017/11/26(日) 01:20:38.64ID:BAm3Dec4
良い良書はありません
2017/11/26(日) 02:05:32.78ID:5UTT/Lbk
そうですか・・・
地道に探す事にします・・・。
2017/11/26(日) 02:47:24.15ID:GFRbwchg
>>407
そういった技術、というかノウハウって言語に依存しないと思うけどJSの本じゃだめなの?
コードをまるごとコピペする気しかないってのならそりゃC#の本がほしいかもしれないけど
2017/11/26(日) 03:36:03.78ID:Yzdmzfbm
いい解説本ってことはないけど単純にやり方を知りたいだけなら
しょぼい迷路の外から敵が最短ルートを目指して追ってくる簡易ドットイーターゲームのサンプルみたいなのが
unityちゃんが大きく描かれた本に書いてあったような気がする
2017/11/26(日) 08:14:56.89ID:OJg4uSUJ
unityで10人vs10人のネットゲーはつくれますか?
2017/11/26(日) 09:33:52.12ID:JL2gBItz
作れますよ。
2017/11/26(日) 10:36:45.95ID:cF7BTTy9
人による
2017/11/26(日) 10:59:10.19ID:jn3nJ8dF
アソビモの「GODGAMES」が最大同時30人対戦でUnity製だった
既にサービス終わってるけどなー
2017/11/26(日) 11:06:29.81ID:G53UyFfK
unityで10人vs10人のネットゲーをつくりたいのですが
何かシステム的な制約はありますか?
2017/11/26(日) 11:27:29.50ID:Tki9OkQ3
416が最大の制約
2017/11/26(日) 11:34:53.33ID:jn3nJ8dF
Unity Multiplayerの使用料がかかるっぽい
自分も興味があったんで調べてみただけなので 使ったことある人 補足よろしく
ttps://docs.unity3d.com/ja/current/Manual/UnityMultiplayerService.html
419名前は開発中のものです。
垢版 |
2017/11/26(日) 13:14:35.79ID:5UTT/Lbk
>>410
初心者なもんで
やり方を1から解説してくれる解説書が欲しいのです
JsのはJsの文法ですし
それだとC#に転用する際に不具合が発生すると
対処しにくいし、どこが間違ってるのか分からないので
C#のはC#の文法で解説した解説所がほしいです

>>411
ユニティちゃんで作る本格アクションゲームってやつですか
amazonのレビューを見る限り
あんまり評判は良さそうではないですね
2017/11/26(日) 13:49:10.49ID:Yzdmzfbm
>>419
多分それ
技術書は専門性が高くないと意見が割れるから評判は気にすんな
だいたいサンプルがダウンロードできるからそれで有用か判断できるはず
2017/11/26(日) 14:02:13.20ID:SKl9hZ8R
プログラミングの基本さえ知っていれば
言語がなんであれすぐ応用効くでしょう
もし、プログラミングを初めて触るっていうなら
unityの前に何か一つのプログラミング言語使って勉強してみたら?
2017/11/26(日) 14:03:05.06ID:cF7BTTy9
>>419
UdemyでUnityの講習受けてみれば?
今なら1200円で受講できるキャンペーンやってるぞ
2017/11/26(日) 14:53:06.99ID:BAm3Dec4
こないだアンリアルフェス行ったらアンリアルを教えてくれるところが
1か月15マンとか書いてあったけど
Unityは1200円か安いな
2017/11/26(日) 15:08:22.84ID:iX6Q2R5T
>>419
まずは買ってみたら?
いい悪いとか自分で感じないと先に進めないと思う。
2017/11/26(日) 15:30:15.72ID:3rpm77vO
初歩的な質問なのですが
uGUIでテキストを複数の解像度に対応させるにはどうするのがいいのでしょうか

具体的に躓いているところは
ボタンの子要素のテキストです
ボタン自体はアンカー設定で解像度が変わっても配置が相対的に同じ場所、大きさになるのですが
その子要素のテキストサイズが少しおかしいことになります
テキスト表示領域にかなり余裕がある場合は大丈夫なのですが
入力さるているテキストの行と列に表示領域がぴったりな感じのものは表示されなくなってしまいます(収まらないため)
表示場所も中央揃えとかにしていると、文末がはみ出しているのか、中央ではなく少し右にズレた位置に表示されます

どういった対処や設定をするのが良いのでしょうか
2017/11/26(日) 15:49:08.33ID:6nBybzVV
>>407
初心者でいきなりリアルタイムストラテジーとか、まあ頑張れとしかいいようがないが
きっとパニックになって投げ出すぞ
チャレンジし挫折も大事なので辞めろとは言わないが

ゲームの歴史がなぜ

ボードゲーム→シューティング→マリオ1(アクションゲーム)→シンプルなレースゲーム→ダンジョンゲーム→大戦略シミュレーション→JRPG→格闘ゲー→音ゲー→シミュレーションRPG→アクティブタイムバトル型RPG→リアルタイムストラテジー

と段階をおいて進化してきたか
そしてそれを行ってきたのは初心者でも素人でも個人でもなく
ゲーム制作最前線にいるプロ中のプロ→集団←だった事を忘れちゃいけない

解説本が販売されていないのは
それだけ君がやろうとしていることが相当難しいことの証しだよ
何故ならRTSは沢山のゲームジャンルの集合体だからね
個々のジャンルで必要なノウハウをある程度得た人にしか普通は作れない
2017/11/26(日) 16:44:55.09ID:J6fYNozJ
>>403
こっそり見てます。
勉強になりました。
2017/11/26(日) 17:01:07.35ID:Cz7u2dE1
プログラム文法とかアルゴリズムとかゲーム開発するには前提の能力だろ?
わかりきったこと書かれても邪魔なんだが
429名前は開発中のものです。
垢版 |
2017/11/26(日) 19:03:02.19ID:5UTT/Lbk
>>421
今C#の入門本を勉強しています
理解率はその入門本の範囲で三割程度です
最初Jsを勉強していたのですが
UnityがJsをサポートしなくなったので
仕方なくC#に切り替えました
430名無し@キムチ
垢版 |
2017/11/26(日) 19:26:38.70ID:LMN33dry
>>387
Googleスプレットシート、使ったことはないですが、何に使うのですか?
パラメータを別ファイルに切り出すと言われても何のことかわからないので、具体的にお願いします。
それはExcelではダメなのですか?
431名前は開発中のものです。
垢版 |
2017/11/26(日) 20:46:59.53ID:5UTT/Lbk
Unityで
TargetというタグがついたオブジェクトAを
newtargetというタグがついたオブジェクトBに追跡させる
スクリプトはどんな風に書けばいいですか?
2017/11/26(日) 20:55:28.10ID:BAm3Dec4
その宿題の答は先生が知ってますので先生に聞いてください
2017/11/26(日) 21:25:17.56ID:mmeFUc7t
安くなってるからplaymaker買ってみたけどクッソわかりにくくて心が折れそう

使い込んで慣れれば快適になるんだろうか
それともコーディングに苦手意識がない人にとっては不便なものだったりするのかな
2017/11/26(日) 21:40:15.59ID:GFRbwchg
>>431
そんな曖昧な要件だったらAのpositionをBに代入しろで終わっちゃうぞ
2017/11/26(日) 22:18:44.73ID:c487nB0v
>>431
Lookat と MoveTowards を検索してみて
2017/11/26(日) 23:52:52.31ID:WITDBxBc
>>435
すげー、こんなんあるんか。自分で別のメソッド作ってたわ
2017/11/27(月) 00:09:57.26ID:LX1anAQd
>>436
お前の問題改善能力と検索力が不足していることは良くわかった
2017/11/27(月) 00:10:48.77ID:P0dXNlTN
Survival ShooterのEnemyMovement.csとかどうして読まないんだろうな
チュートリアルも何もかもすっ飛ばしてりゃ分かる訳ないよ
2017/11/27(月) 02:43:37.85ID:IkbbC0Am
>>430
エクセルでもなんでもゲーム側で読み込んで変数に格納出来るなら何でも良いよ
Googleスプレッドシートの強みは無料で機能も十分なことと、出先でもデータ弄りやすいこと
2017/11/27(月) 06:36:29.91ID:SISIFabW
>>437
問題があったから自分で解いた訳だが?
2017/11/27(月) 07:04:02.04ID:a0HfS9om
>>425
CanvasコンポがアタッチされているGameObjectにCanvasScalerコンポ当ててますか?
CanvasScalerコンポのUI Scale Mode を Scale With Screen Sizeに設定して、
適切なReferences Resolutionを設定してあげて、それで改善されませんか?

>>入力さるているテキストの行と列に表示領域がぴったりな感じのものは表示されなくなってしまいます(収まらないため)
uGUIのってテキストをきれいに表示させるために、スケール小さくしてフォントサイズを上げるみたいなことをやる必要があったと思いますが、
それやるとテキストのRectTransformの矩形がすごく小さくなってしまって、かつUITextコンポのVerticalOverflowがデフォルト設定のTruncateだとテキスト表示が簡単に消えてしまいますね。
(UIテキスト関連は標準のよりTextMeshProの方が柔軟なのでおすすめです)
UITextコンポのHorizontan、Veritcal両方Overflowに設定してあげればとりあえず何も表示されないということはなさそうです。
2017/11/27(月) 12:42:44.25ID:0FCRYiRe
アセットをCドライブ直下かつ日本語名を含んでいないのにインポートエラーが出るのはどんな原因が考えられますか?
スタンダードアセットすらインポートできず困ってます
2017/11/27(月) 12:51:17.76ID:XTuXoZnA
エラーの文面コピって調べろ
2017/11/27(月) 14:37:17.67ID:FrA19Mnu
>>442
アセットをかえばいいと思います
2017/11/27(月) 21:21:50.46ID:TYxiAAK6
>>442
windows2000じゃだめよ
446名前は開発中のものです。
垢版 |
2017/11/27(月) 22:47:23.35ID:jcHTc4zP
Tankという名前のCreateEmptyで作った空のオブジェクトに(中に親子関係のオブジェクト有り)
project→createで作成したTankMovementという名前のC#スクリプトを
アタッチしたいのですが
Addコンポーネットからscriptを選んでC#スクリプトを追加しようとしても
TankMovementという名前のC#スクリプトが見つかりません
どうすればいいでしょうか?

C#スクリプトがデフォルトの名前NewBehaviourScriptだと認識します
nameが悪いのでしょうか?
447名前は開発中のものです。
垢版 |
2017/11/27(月) 22:51:04.79ID:jcHTc4zP
なんか自己解決
スクリプトを書く前にアタッチすればいいみたい
2017/11/27(月) 22:51:44.92ID:SK67KIi+
エスパーするとスクリプトの中身のクラス名がNewBehaviorScriptになってる
ファイル名とクラス名が一致してないとUnityは認識してくれない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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