このブログは不定期に更新されるゲーム製作アラカルトのメモ帳です。
記事は以下のカテゴリーに分類されてます。(クリックで記事一覧表示)
- 雑記:思いついたことアレコレです。
- ゲームデザイン:ゲームの仕組みやシステムについての考察です。
- ゲーム寸感:ゲームの感想です。
- ゲームの作り方:ゲームの作り方です。
- プログラミング:ソースコードなど、プログラマー向けの記事です。
書いてる人→@eiki_okuma
一日一時間ずつ遊んだエルデンリングをようやくクリアしました。
クリアタイムは74時間なので、ほぼ丸二ヶ月。いやー長かったですね。特にソウルシリーズは初めてだったので、最初の方は大分苦労しましたし、マルギットの洗礼も漏れなく受けました。終盤はほぼ雫先生のお世話になったので、大分イージーゲーマーと言っていいでしょう。一番苦労したのはマレニア。
ゲームデザインとしても大いに参考になるゲームだったので色々書きたいことはあったんですが、クリアするまで批評というものは書けないもので、ようやく話せます。ネタバレ全開でいくので未クリアの人は注意してください。あと、結構厳しいことも書きます。
と、このゲームが傑作であることは枚挙に暇がないのですが、この辺にして。
配信後にまた気づくやつ!
— Sonic Bird (@sonicbird19) 2022年4月29日
多くの人は2体の巨人に目がいって横にいるラーヤに気づかないってやつやんw #ELDENRING #エルデンリング pic.twitter.com/MG5JZrT24a
*1:前半部分を厳密に書くと、8人産んだ結果まともな神人が生まれない=黄金律に欠陥があることに気付いたマリカは黄金律に死の回帰が無いことが原因と考え、寵愛するゴッドウィンを死のルーンで殺害して死王子のルーンを得ることを考えたが協力者であるラニが肉体の死のために死のルーンの片割れを使ってしまったので失敗。仕方ないので黄金律そのものであるエルデンリングをぶっ壊そうとしたものの半身であるラダゴンが抗って修復したためそれも失敗(OPムービーの冒頭が壊して直しての2コマ漫画になってることに気づくと笑えます)。破砕戦争を経て狭間の地はにっちもさっちもいかない状況になりましたとさ。という感じです。皆さんの解釈も同じでしたか?
*2:というか、もう直接腐敗の苔薬をフィールド上に置けばよくて、アイテム製作とか必要ないのでは
ネットワークゲーム作りたいけど何使えばいいの?という話。
古代:Legacy network system
中世:UNet
現代:暗黒期
未来:Connected games
つまり今は歴史の中間点であり、コレといったモノが存在しない。暗黒。
死亡確認!*1
現状選択一番手になるミドルウェア。Photon Cloud と呼ばれるクラウドにみんなで接続しにいく。幻走スカイドリフトでも採用。
比較的プリミティブなP2Pができる無料のフレームワーク。有料だが uMMORPG など完成プロジェクトのサンプルが存在する。
UE4の Epic が公式で出している無料のネットワークミドルウェア+サービス。UE4でなくても使える。マッチングやランキング、アナリティクスなど。
Unityの新しいネットワークフレームワーク。まだプレビュー版未満で、お問い合わせれば環境もらえるっぽい……?
とりあえずネットワークやりたい、って人は Photon。
かっちり通信させたいのでフレームワーク欲しいって人は Mirror。
*1:厳密に言えばレガシーでまだ使えるのだが確定で死ぬので使ってはいけない。
要は Screen.safeArea に親 RectTransform を合わせればいいんだけど、ググると回りくどい方法しか出てこないので。
1. Canvas と UI の間に Container 的なオブジェクトを一段噛ませる
2. そのContainerに以下のスクリプトを貼っ付ける
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SafeAreaAdjuster : MonoBehaviour { private void Awake() { var panel = GetComponent<RectTransform>(); var area = Screen.safeArea; var anchorMin = area.position; var anchorMax = area.position + area.size; anchorMin.x /= Screen.width; anchorMin.y /= Screen.height; anchorMax.x /= Screen.width; anchorMax.y /= Screen.height; panel.anchorMin = anchorMin; panel.anchorMax = anchorMax; } }
3. Container 以下の UI は画面のアスペクト比がどんなものでもちゃんと対応できるようにしておく
4. 終わり
Screen.safeArea は実解像度サイズで指定されるが、多くの場合 Canvas Scaler はScale with Screen Size を使っているので、anchorMin / anchorMax を使う必要がある。もう少しスマートに書けないか粘ったが、結局この部分はみんなが使っているものと同じ。
※1:もう作ってしまったゲームに後から対応する場合でも、意外と各 UI をバインドする箇所で Root を差し替えればいいだけなので工数は大きくない。むしろ、これで工数が異常にでかい場合は UI の作り方が悪い。
※2:回りくどい方法、と言ったがこのコードはビルドしないと確認できないので、PC上で色んな環境のテストをしたい場合は先人の知恵を借りるのが一番。
※3:~2018.4.24 で起動直後の Awake で safeArea が NaN になるバグあり。2019LTS では修正済み。2018.4.25 で修正されるらしい。
The character used for Ellipsis is not available in font asset [font name]
という Text Mesh Pro のワーニングの意味と対処について。
https://forum.unity.com/threads/the-character-ellipsis-is-not-available-in-font-asset.656425/
フォントにアンダーバーとカッコ()が含まれていないと出るワーニング。Text Mesh Pro の Font Asset Creator で設定を Extended ASCII にしてフォントを作ると自動でそれらが含まれるが、含まれていませんよ、という警告らしい。過去のバージョンでは出ないものだった。
上の URL にある TMP Settings の "Disable warnings" チェックボックスを ON にすると警告はでなくなる。
「いきなりですけどね。うちのオカンがね、オトンの仕事の話しとったんやけど」
「ほう」
「なんか横文字の開発手法がしんどい言うて、でもその名前をちょっと忘れたらしくてね。色々聞くんやけどな、全然分からへんねんな」
「はー、アジャイルとかウォーターフォールとかな、覚えにくいもんな。ほな俺がね、オトンの仕事で使ってる開発手法、ちょっと一緒に考えてあげるから」
「おー」
「どんな特徴ゆうてたかってのを教えてみてよ」
「あんな、なんかめっちゃ偉い人直轄のプロジェクトでな。誰もそのおっちゃんに逆らえんねんけど、言ってることがめちゃくちゃらしいって言うねんな」
「おー。
メテオフォール型開発やないかい。
その特徴はもう完全にメテオフォールやがな。
すぐ分かったやんこんなんもー」
「でもちょっと分からへんのやな」
「何が分からへんのよ」
「いや俺もメテオフォール型開発と思うてんけどな。
スクラムっての組んで小さいイテレーションでプロダクトを回してるらしいねん」
「あー。ほなメテオフォールと違うかあ。
メテオフォール開発にそんな秩序立ったイテレーションないからね。
メテオフォールはね、同じスクラムでもラグビーのくんずほぐれつの大乱闘の方やねんあれ。メテオフォールってそういうもんやから」
「でも、結局偉い人が全部ぶち壊しにすんねん」
「メテオフォールやないかい。
メテオフォールの前ではね、人と人の叡智は無力なのよ。
神の一声で粉々に粉砕された我々のバベルを、何度でも再建するその涙ぐましい人間の努力の物語がメテオフォール開発の本体やねん。
メテオフォールやそんなもんは」
「分からへんねんでも。
俺もメテオフォールと思うてんけどな。オカンが言うには、スケジュールはある程度現場の裁量があるらしいんよ」
「ほなメテオフォールと違うかあ。
メテオフォール開発ではね、全てのスケジュールは天界の都合によって決まんねん。
設計もデザインも何も決まってないのに何故かデッドラインはそこにあるから、
黙示録って呼ばれてんねん。
段々終業のチャイムが天使のラッパに聞こえてくんねんから」
「でも、結局その偉い人が現場に来てあれこれ口出しするから、効率下がるらしいねん」
「メテオフォールやないかい。
あいつらは大体現場に来ては好き放題かき回して帰っていくんやから。
ソフトウェア開発においてシルバーバレットなんてものは夢物語やけど、その逆は存在すんねん。
ラピュタの雷ボタンでビーマニしとんねんあいつら。
メテオフォールや絶対」
「分からへんねんでも、俺もメテオフォールやと思うてんけどな、意見はちゃんと聞いてくれるらしいんよ」
「ほなメテオフォールちゃうやないかい。
メテオフォール開発においてね、神とは基本対話なんかでけへんのよ」
「でも大事なことは殆ど届かんらしいねんけどな」
「やっぱりメテオフォールやないかい。
神にフィードバックは届かないんよ。
ただし所定の手順を踏んで正当に捧げる祈りだけは稀に届くらしいねん。
その祈りが上手い人から順番に会社ってのは出世していくんやから。
大体宗教と同じやねん。
えーほなもうちょっとなんか言うてなかったか?」
「なんかな、その偉いおっちゃんも厄介なんだけど、最近販売の偉い人もよう来て、正反対のこと言って帰っていくらしいねん」
「ラグナロクやないかい。
あのな、神が一人の間はそれでもまだマシやねん。
問題は神が二人以上居るケースやから。あいつらは現場に来て全く異なる啓示を下して帰っていくんよ。
我々民は神々の戦争に巻き込まれるしかないねん」
「でな、あんまり進捗が進まないから、本社の方からもっと偉い人が来て、プロジェクトまるごと引き取るとか言うてるらしいねん」
「ジハードやないかい。
混沌としたラグナロクの果てには全てを吹き飛ばす新たな神が待ってんねん。
しかも不思議と新たな敵が現れるとこっちは神を筆頭にどこか団結すんねん。突然聖戦みたいになるんやから。その団結力もっと最初に発揮しとけって話やでほんま。
もう完全に末期やがなそのプロジェクト。大丈夫かお前のオトン?」
「あ、でもな。この間そのプロジェクトの発表が、勝手にPRイベントで出てたらしいわ」
「メテオフォールやないかい。
メテオフォール開発のプロダクトは、大体勝手に情報が出るのよ。
しかもそこで社長さんとかがつい口を滑らして、新しい仕様が生まれるのよ。
我々はポカンと液晶越しにそれを眺めてるしかないんよ。受けても全く心の休まることのない預言やけどな」
「でも分からへんねん」
「分からへんことない。お前のオカンが聞いた開発手法はメテオフォール開発もぉ」
「でも偉い人が言うにはメテオフォールではないって言うねん」
「ほなメテオフォールではない……わけあるかい。
メテオフォールという言葉を知ってるのになんでメテオフォール作ってんねや。
メテオフォールは、みんなの心の中に一つずつあるんや。
笑っとる場合ちゃうで。お前の話やお前の。ほんま。
どうなってんねんもう」
「んでオトンが言うにはな」
「オトン?」
「いつもこれやって言うねん」
「オトン苦労してんねんな。もうええわー」
「「ありがとうございましたー」」