やさしくかがやく大富豪3Dの制作裏
制作する時に考えたことなど。
リンク
ゲームの概要
音楽の解説ページ(仮置き)
概要
初めての3Dゲーム制作です。自分のキャラクターが登場するゲームを作るという夢がいったんは叶いました。
Panda3Dにした理由
3Dゲームを作るためにゲームエンジンを使う事があります。3D対応のゲームエンジンは Unity, Unreal Engine, Godot などがありますが、私はPanda3Dにしました。
- Pythonが使える
- Panda3Dはユーザーが少なく「アフィカス」「情報商材屋」「インプ稼ぎのための低品質な記事」が少ない
Pythonが使える
これが一番大きいです。私がプログラミングを始めたきっかけの1つはBlenderでPythonを使おうとしたからです。
低品質サイトが少ない
ユーザーが増えすぎると民度が下がってしまうでしょう。
しかし、さすがにユーザーが少なすぎました。基本設定すら分からない所もあり、何度も詰みかけました。
Panda3Dのチュートリアルは日本でもそこそこ見かけますが、ちゃんと完成させた作品はあまり見つけられず、不安にもなりました。
でも公式マニュアルがしっかりしていたので良かったです。
布教したいのでユーザーも増やしたいので 私が解説記事などを書けたらいいでしょう。
しかし、汎用的な解説をするには私の実力が足りないでしょう。
実現するとしても2024年から数年はかかるでしょう。
今の私には良さそうな情報を紹介するくらいしかできないでしょう。
ルール設定
大富豪には数多くのローカルルールがあり、それを全て含めるのは現実的ではないでしょう。
私は日本大富豪連盟の公式ルールをベースにしました。
複雑にならないようにしたいです。大富豪の布教、アナログでする時にももめないように 分かりやすいシンプルなルールがいいでしょう。
禁止あがり(反則あがり)
「禁止あがり」は「2あがり禁止、8きりあがり禁止、Qボンバーあがり禁止、Jokerあがり禁止、スぺ3あがり禁止」など数多くの項目があります。
2あがり禁止
それだけならまだしも、2あがり禁止は、革命中は3が禁止になり2はセーフになるという点で複雑です。(頻度は低いですが)非革命時に2222であがった場合、「革命が起きる前に2を出しているからアウト」「革命が起きた後で上がったからセーフ」の考え方があり、もめる原因になります。
はセーフ?アウト?
スぺ3あがり禁止
これも複雑です。
連盟公式(2024/04時点)の場合、「最後に出したカードがスペードの3の単品」がアウトです。なので はアウトですが、
、
ならセーフです。
禁止あがり自体は戦略性もあるのでなくしたくなかったです。私は、禁止あがりはJokerだけにしました。「最後に出したカードにJokerが含まれている」が禁止です。Jokerあがり禁止自体は他のゲーム(7ならべ、ページワン、ダウト等)にもあるので馴染み深いでしょう。
連盟公式(2024/04時点)では「2あがり禁止、8きりあがり禁止、Jokerあがり禁止、スぺ3あがり禁止」がありますが、このゲームではJoker以外は複雑になるのでいらないと考えました。
3かえし
これは複雑とは違います。
有名?なルールに「スぺ3かえし」があります。単品のジョーカーに対して、スペードの3を出せる。というルールです。
しかし、私はスペードだけ勝てるだと他のスートが可哀そうだと思いました。なので、全ての3がジョーカーに勝てるようにしました。スートしばりの影響を受けるようにしたので完全に上位互換ではないです。
ですが、さすがにJokerへのマークが厳しくなりすぎたかもしれません。最強のカードなはずなのにいともたやすく返されてしまう。よって他のカードの代用として使うしかなくなるのは良いバランスとは言えないでしょう。
ゲームの進行
連盟公式の1マッチと同じです。4ゲームで1セットを3回繰り返します。(ゲームとは手札を配ってから全員の順位が決まるまで)
セットが変わると階級のリセットがあり、カード交換もしないので、展開が一方的になりにくいようになっています。バランスが良いと思ったのでそのまま真似しました。
得点方式
Ver.1.0時点では、連盟公式と同じです。大富豪:6pt、富豪:4pt、貧民:2pt、大貧民:0pt。※セットの最終ゲームの大富豪は8pt
しかし、今後は他の計算方法の導入もしたいです。
アナログでやる際に不正を防ぐ
ルールを決めたり新しく作る際、アナログでも同じようにしたいです。アナログでは、故意、過失に関わらず、不正ができてしまいます。
といってもカードの交換の時点で審判なしで不正をチェックする方法がない?ので善意に頼らざるを得ないところもありますが、なるべく不正は防ぎたいです。
案1:複雑なルールにしない
複雑だと過失が多くなります。
苦労した点
Joker
難しい点1:革命に関わらず、最強のカードとして使える
といってもここは、簡単な分岐処理で済むでしょう。
難しい点2:他のカードの代用として使える(ワイルドカード)
これは大変でした。 カードを選択した時、どのカードに変身できるかを判定する処理が必要でしょう。さらに変身のパターンが複数になる時もあります。「カードを選択した時、どのカードに変身できるかを判定する処理」「パターンを選べるようにする所」「出した後、選んだランクに沿って適切な表示になるように順番をソートする」まで含めて大変でした。
この場合は789の階段になります。
この場合は KKK のトリオとする、JQK, QKA, KA2 の階段とする、から選びます。
この場合は JQKA, QKA2 の階段から選びます。階段で2より上の強さは定義していないのでKA2jkとしては出せません。

挫折した点
AI
Ver.1.0では、AIがあまり考えません。最低限「まとめて出せるものはそうする。後はランダム。」くらいです。
大富豪の戦略はかなり複雑です。「弱いランクのカードから出す」一つとっても、革命、Jバックの考慮が必要です。他にも「詰みの手筋」「特定のランクに付随する効果(8きり、9リバース等)」「Qボンバーでどのランクを消すか」「Jokerをどのように使うか」など数多くの項目があり、さすがに挫折しました。
サウンド
技術や根気がなく、作れませんでした。しかし、世界観等を守りたいので、フリー素材等には頼りたくはないです。今後のverに期待。
今後の案
まだこのゲームは完成ではありません。時間はかかるかもしれませんがアップデートしたいでしょう。本完成までVer.5.0くらいはかかるかもしれません。
- ローカルルール追加(7わたし、10すて、すなあらし、その他オリジナル案あり)
- デザイン追加、修正
- キャラ追加、人数変更機能
- AI修正
...等。
使用ツール
- プログラミング言語:Python
- ライブラリ、ゲームエンジン:Panda3D
- テキストエディタ:Visual Studio Code
- 2Dグラフィック:Clip Studio Paint
- 3Dモデリング:Blender
- サウンド:Studio One
- PV画面録画:OBS
- PV動画編集:DaVinci Resolve
...等
参考文献
1
【ゆっくり大富豪解説】#0 大富豪の勝ち方・攻略法を伝授します。【中級者向け】 - YouTube
このゲームを作るきっかけになった動画の1つです。
私がゲーム廃人から抜け出すことができた要因の一つにもなりました。
そのチャンネルでは、大富豪の戦略についてとても詳しく解説されており、他の参考情報の紹介も多いです。著者の長年?(具体的な歴は分かりません)の大富豪士?としての結晶が詰まっているでしょう。
トランプの魅力を再確認できました。
細かいルール設定、AIのアルゴリズムについても参考になりました。
2
【Unity】 美少女3人とトランプ大富豪ゲーム - ニコニコ
きっかけになった動画の2つ目です。このようなかわいい子とトランプができたら、なんてすばらしいのでしょう。
3
ケモノ系卓上ゲームの参考。
検索用キーワード
Python Panda3D 自作ゲーム 作品 トランプ 大富豪 大貧民 オリジナル 自作 無料 ケモノ 動物