ふりかえり
前回は、ついにガチャ機能を実装!
ダイヤを使ってアーティファクトを手に入れられるようになり、育成の幅がぐっと広がりました。ゲームらしさもアップして、より楽しくなりましたね!
アーティファクトのレアリティーを実装!
今回はアーティファクトにランク(レアリティ)を導入していきます!
排出されるアーティファクトに「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%の確率なだけあって、なかなか出ない…でも出たときはテンション爆上がり!

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

