ふりかえり
前回は、ついにガチャ機能を実装!
ダイヤを使ってアーティファクトを手に入れられるようになり、育成の幅がぐっと広がりました。ゲームらしさもアップして、より楽しくなりましたね!
アーティファクトのレアリティーを実装!
今回はアーティファクトにランク(レアリティ)を導入していきます!
排出されるアーティファクトに「S・A・B・C」の4つのランクを設定し、それぞれ排出確率を以下のようにしました:
ランク | 排出確率 |
---|---|
Sランク | 10% |
Aランク | 20% |
Bランク | 30% |
Cランク | 40% |
Sランクは滅多に出ませんが、その分強力!出たときのうれしさもひとしおです。
スクリプトの変更
ArtifactManager.cs
UnityのRandom.Rangeを使って、確率に応じたランクをランダムで決定しています。
指定されたランクの中から、ランダムでアーティファクトを1つ選びます。
// ガチャの排出率を取得 private ArtifactRank GetRandomRank() { float random = Random.Range(0f, 1f); // Sランク: 10% if (random < 0.1f) { return ArtifactRank.S; } // Aランク: 20% else if (random < 0.3f) { return ArtifactRank.A; } // Bランク: 30% else if (random < 0.6f) { return ArtifactRank.B; } // Cランク: 40% else { return ArtifactRank.C; } } // 指定されたランクのアーティファクトを取得 private ArtifactData GetRandomArtifactByRank(ArtifactRank rank) { List<ArtifactData> rankArtifacts = new List<ArtifactData>(); foreach (var artifact in availableArtifacts) { if (artifact.rank == rank) { rankArtifacts.Add(artifact); } } if (rankArtifacts.Count > 0) { return rankArtifacts[Random.Range(0, rankArtifacts.Count)]; } // 指定されたランクのアーティファクトがない場合はCランクを返す return availableArtifacts[0]; }
Unityでの設定
- Inspectorで各アーティファクトのRankを設定
- ArtifactManager の availableArtifacts リスト内の各アイテムに rank を指定します。
- プレハブなどでランク表示のUIがある場合は表示更新

動作確認
実際に何回かガチャを引いてみたところ…
- ちゃんとS~Cランクがバランスよく排出されているのを確認!
- Sランクは10%の確率なだけあって、なかなか出ない…でも出たときはテンション爆上がり!

まとめ
今回はアーティファクトにランク(レアリティ)を追加し、ガチャのドキドキ感をさらに強化しました!
高ランクのアーティファクトを引き当てると、一気に強くなれるので、プレイヤーのやる気にも直結しますね。
次回予告
セーブ機能を実装予定です!
せっかく手に入れたアーティファクトを保存しておかないともったいない!
どうぞお楽しみに!