[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart4 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart4 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
289: 名前は開発中のものです。 [sage] 2021/05/26(水) 22:22:27.60 ID:JSDA3W6i 合計数値300を10個の変数に振り分けつつ、振り分け方はランダムに抽選する方法はどんなのがありますか?。 //最大ポイント float MaxPoint=300f; //最低ポイント float LowestPoint=0f; float Number1 =Random.Range(LowestPoint, MaxPoint); float Number2 = Random.Range(LowestPoint, MaxPoint-Number1); float Number3 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2)); float Number4 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2+ Number3)); float Number5 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2+ Number3+ Number4)); float Number6 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2+ Number3+ Number4+ Number5)); float Number7 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2+ Number3+ Number4+ Number5+ Number6)); float Number8 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7)); float Number9 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7+ Number8)); float Number10 = Random.Range(LowestPoint, MaxPoint- (Number1 + Number2 + Number3 + Number4 + Number5 + Number6 + Number7+ Number8+ Number9)); これだと数字が増えるほど後半が0ばっかりで良い振り分け方ではないので、 どうしたらいいのかなぁと悩んでる最中です。 波はあるけど、もうちょっと綺麗に振り分けれたら良いのですが・・・。 分かり難いと思いますが、よろしくお願いします。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/289
290: 名前は開発中のものです。 [sage] 2021/05/26(水) 23:12:22.98 ID:XE0iSvnP >>286 どんな結果を期待してるのかよくわからないけど、とりあえず2案。 案1 1〜10の乱数を生成して出た番号の変数に1加算する、というのを300回繰り返す 案2 ある程度大きな範囲で10個の乱数を生成して、その比率に応じて10個の変数に300を分配する 案1はあまりバラツキがでないと思うが、目的に合う方を選んで。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/290
291: 名前は開発中のものです。 [sage] 2021/05/26(水) 23:12:59.58 ID:XE0iSvnP >>290は>>289宛の間違い http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/291
292: 名前は開発中のものです。 [sage] 2021/05/26(水) 23:21:47.44 ID:JSDA3W6i レスありがとうございます。 行数が多くなるので、全部は貼れませんが、 for文で300回繰り返して、1-10のランダム数値をif文で条件分岐させたら良い感じになりました。 for (int i =0; i < 300; i++) { int test=Random.Range(1, 9); if (test == 1) { Number1++; } else if (test == 2) { Number2++; } } ありがとうございました。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/292
293: 名前は開発中のものです。 [sage] 2021/05/26(水) 23:43:00.53 ID:BzUIIUV5 >>287 うんわからん http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/293
294: 名前は開発中のものです。 [sage] 2021/05/27(木) 00:19:28.48 ID:2xYZ5foj >>288 アセットを買ってみる http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/294
295: 名前は開発中のものです。 [sage] 2021/05/27(木) 02:55:21.18 ID:SLQj1j9d >>292 誰かエスパー頼む http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/295
296: 名前は開発中のものです。 [sage] 2021/05/27(木) 07:31:13.61 ID:gb+qRYu8 0から1のfloat乱数を10個作って合計、合計値をAとする 300/Aを上の10個の乱数と掛け算する 誤差は自分でなんとかして http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/296
297: 名前は開発中のものです。 [sage] 2021/05/27(木) 07:56:53.95 ID:UiFe0pyC >>295 全文書いてないだけですよね。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/297
298: 名前は開発中のものです。 [sage] 2021/05/27(木) 08:37:30.04 ID:a0FlewyP 素朴な疑問なんだけど 乱数の出現率が常時10%固定で10分割すると NumberNは300*0.1=30くらいにいつもなるのでは? この式は300並んだ配列の順番を求める式ではないよね 何に使うのかがよく分からない http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/298
299: 名前は開発中のものです。 [sage] 2021/05/27(木) 08:43:06.43 ID:SLQj1j9d >>297 Random.Range、そのパラメータじゃ1-10のランダム値こねーだろ 変数10分けてるのも意味わからんし何より他の人が言ってるようにほぼほぼ同じになる値を何に使いたいのか ランダム値のランダム性の検証でもしたいのか? http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/299
300: 名前は開発中のものです。 [sage] 2021/05/27(木) 09:10:18.93 ID:UiFe0pyC >>299 エスパー現るw そうなんだろうけど、そればかりは本人にしかねぇ。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/300
301: 名前は開発中のものです。 [sage] 2021/05/27(木) 09:13:25.60 ID:a0FlewyP 0〜10はRandom.Range(0, 11)だよね 10+1をmaxに入れる 1,9だと1〜8になるので何かが可笑しい 「乱数テーブル」を作りたいなら素直にググった方がいいと思う http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/301
302: 宵闇大使 ◆SoVpkB15jY [sage] 2021/05/27(木) 09:30:05.36 ID:tYp4tuFV Random.Range(0, 5)の0が以上なのに5のほうは未満なの結構初心者には罠でふよね(^^ 僕も最初混乱しまひたよ(^^ http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/302
303: 289 [sage] 2021/05/27(木) 09:51:00.66 ID:un4LUW1y >>295 書き間違いなだけで>>297の解釈で合ってます。 ×int test=Random.Range(1, 9); 〇int test=Random.Range(1, 10); >>298 1つの変数の平均値は30の計算なので、ランダムで生成された数値が30でも問題ないです。 これは、ステータスの初期値をランダム生成させたいだけです。 体力51、魔力5、精神力20みたいな感じです。 >>302 C#とunity勉強始めてからまだ1カ月経ってないぐらいなので、C#のランダムとごっちゃになりますね。 皆様、レスありがとうございました。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/303
304: 名前は開発中のものです。 [sage] 2021/05/27(木) 10:06:08.28 ID:a0FlewyP 適当な振れ幅なら int AGI = 30 + Random.Range(-5,5+1) みたいに書けると思う intは負の値いけたっけ? floatは多用するんだけど(-30,30+1)にできるなら 30を基準にして0〜60が作れる http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/304
305: 名前は開発中のものです。 [sage] 2021/05/27(木) 10:19:53.73 ID:coz7zI8o >>292 それをしたいならifじゃなくてswitchかな for (int i =0; i < 300; i++) { int num=Random.Range(0, 10); switch(num){ case 0: Nunber0++; break; case 1: Nunber1++; break; ••• http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/305
306: 名前は開発中のものです。 [sage] 2021/05/27(木) 10:26:55.99 ID:gb+qRYu8 10個の乱数決めるのにRandom300回か 面白いね君たち http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/306
307: 名前は開発中のものです。 [sage] 2021/05/27(木) 10:31:25.08 ID:4V3hIemC ランダムな9個の仕切りで分けるのはちゃんとランダム? http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/307
308: 名前は開発中のものです。 [sage] 2021/05/27(木) 10:59:06.02 ID:UiFe0pyC うーん、ランダム http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/308
309: 名前は開発中のものです。 [sage] 2021/05/27(木) 11:01:37.11 ID:a0FlewyP https://qiita.com/memakura/items/6b3e6e06eae51725fd5d#%E4%BE%8B%E8%A6%81%E7%B4%A0%E3%81%AE%E7%B7%8F%E5%92%8C%E3%81%A7%E6%AD%A3%E8%A6%8F%E5%8C%96 配列の正規化を使ってlist*300すると簡単に出せるけど floorだから足しても300にはならないが非常にシンプル https://i.imgur.com/4FIBuVl.png http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/309
310: 名前は開発中のものです。 [sage] 2021/05/27(木) 11:17:52.51 ID:coz7zI8o >>289 これをベースに考えるなら 変数を10個作るのではなく配列にして 後からランダムに並び替えるのがいいかな float[] array = new float[10]; //この間で数値の振り分け float[] number = array.OrderBy(i => Guid.NewGuid()).ToArray(); http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/310
311: 名前は開発中のものです。 [sage] 2021/05/27(木) 12:50:53.47 ID:ocyZxuLk 0〜300の乱数を一つも被らずに10個ゲットしたいって話ならこんな感じ int v = 300 / 10; List<int> Nums = new List<int>(); for (int i = 0; i < 10; i++) { Nums.Add(Random.Range (((v * (i+1)) - v), (v * (i+1))+1 ) ) ; print( Nums[i]); } http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/311
312: 名前は開発中のものです。 [sage] 2021/05/27(木) 13:37:07.42 ID:un4LUW1y 便利なサイトがあったので、コード貼ります。 https://ideone.com/XSSWkn 300を10個の変数に振り分けたいんですよ。 例1(均等に振り分けた場合) A30B30C30D30E30F30G30H30I30J30 ※合計300 例2(ランダムに振り分けた場合) A55B11C21D46E8F26G42H35I30J26 ※合計300 この例2をやりたいんですよ。 現在のfor文を300回やるパターンでも例2は再現できてますが、 あまりよろしくないとの意見もあるので、現在模索中です。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/312
313: 名前は開発中のものです。 [] 2021/05/27(木) 14:32:43.22 ID:iQQ16bCL 二枚の白い板を、隙間なく並べたとき、板の継ぎ目が全く見えないのですが、 ライトマップをベイクすると、板の色が違う色になってしまい、継ぎ目が解るようになってしまいます。 これを、継ぎ目が解らないようにするには、どのようにすればよいですか? ご存じの方、いらっしゃいましたら、教えていただけると嬉しです。 宜しくお願いいたします。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/313
314: 名前は開発中のものです。 [sage] 2021/05/27(木) 14:33:58.71 ID:SW5j+p99 >>312 うーん>>310で実現出来てると思うんだけどダメな理由を教えて? >>289では最後に0が固まるのが不満なんだよね? 数値が決まってからランダムに並べ替えるだけで問題解決だと思ってるのだけど それとも0が複数出るのが嫌って事なのかな? その辺は下限値を決めるとかいくらでも出来ると思うけど http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/314
315: 名前は開発中のものです。 [sage] 2021/05/27(木) 14:34:27.32 ID:a0FlewyP >>312 https://ideone.com/xG6Sr8 forで回したいならコレでいい http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/315
316: 名前は開発中のものです。 [sage] 2021/05/27(木) 14:40:40.62 ID:UO0LeoxU >>312 10個の変数に割り振る際の各変数の取りうる値の範囲とか、ばらつきや片寄り具合をどうしたいのとか、仕様は明確になってるの? そちらを決めないままアルゴリズムを模索しても意味がないよ よろしくないという意見は自分がやりたいことに合致してる?ただダメと言われたから他の方法にしたいとか思ってないか? http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/316
317: 名前は開発中のものです。 [sage] 2021/05/27(木) 15:10:49.27 ID:un4LUW1y >314 シンプルで良いコードだと思うんですけど、 >310は>289をベースにしているので、ふり幅があまりにも大きすぎるのと、 0が多すぎるので、>289の考え方自体が間違ってたんですよ。 すみません。 >315 ありがとうございます。 >316 残念ながら、仕様は明確ではないですね。 ある程度ふり幅があって、数値がバラバラになってくれればいいという感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/317
318: 名前は開発中のものです。 [sage] 2021/05/27(木) 15:33:53.93 ID:a0FlewyP https://ideone.com/GJ3ECm whileで配列がnになるまで回すなら こういう書き方も出来る sum:300, 9,48,1,48,23,59,1,27,27,57, キャラメイクでアタリを引くまでリセマラはアリな派 ハズレは大いにアリじゃね? http://mevius.5ch.net/test/read.cgi/gamedev/1619223275/318
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 684 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s