ゲーム開発会社がゲーム製作技術を伝授するスレ
■ このスレッドは過去ログ倉庫に格納されています
ワールドワイドソフトウェアという開発会社の者です。\n 社員がゲーム開発の質問に可能な限りお答えします。\n http://www.wwsft.com/ \n 長年RPGを中心に開発していますが、シミュレーション、アクション、スポーツ、ペット育成、麻雀など多くのジャンルの開発経験があります。 >>564 答えは社員を待っているんだ!待つんだ! てか遣り方は使ってる物によってかわるよなぁどんな答えくるかな 海外のスタックオーバーフローとか見てもわかるが外人は質問する時に、 自分でこう考えてみてこうやってみたがこんな結果になったのでどこが間違っているんだろうって質問の仕方するけど 日本人は目的だけいっていきなりやり方教えてくださいって聞いてくるのな これも教育の違いなのかね マジレスすると、根には親子関係に端を発する国民性の問題がある ・・・って長文を貼ろうかと思ったが止めとく >>565 グラデのかかった半透明シートを文章の上に置いて、 シートを下にずらすと予想 >>567 答える方も外人は親切だよな かなり親身に考えてくれるし、上から目線で説教かますやつはほとんどいない 日本人は寄付しないっていうし親切じゃないんだろうな >>561 561さん 弊社のプログラミングテクニックに追加しました。 仰っているのはこのような演出だと思うのですが、ご確認下さい。 http://www.wwsft.com/sp/ 仮想画面に文字を表示 → 実画面に描画範囲を計算しながら描いていく、という方法です。 最も一般的な方法で、全ての環境(PC、スマホ問わず)で実現できます。 なお文字列の周りを透明色にする必要があります。 >>571 これの事です!ありがとうございます。 背景は真っ黒でも良かったんですが背景がグラデーションでもできるんですね。 Androidアプリがバージョンアップ更新されると勝手にダウンロードして更新してくれますが、あれは開発側は更新バージョンをアップするだけで特別な処理は不要なのでしょうか? >>573 573さん Androidアプリがバージョンアップした際の更新方法はユーザーが各自の端末で設定します。 ユーザーによっては自動更新OFFの方も多いと思います。 仰るように特別な処理は不要です。 詳しくはGoogleのサイトをご覧下さい。 https://support.google.com/googleplay/answer/113412?hl=ja >>574 ありがとうございます。 しかし、アプリ内容は更新できたとして、既に保存されているセーブファイルなどは消えてしまわないのでしょうか? あとリソースデータだけ別にダウンドロードしたりとかもありますがあれはどうやっているのでしょうか? ここ詳しいね、 Intel Pentium G5 CoffeeLake 総合スレ http://anago.op en2ch.net/test/read.cgi/jisaku/1526884213/ >>578 セーブデータもリソースもアプリ本体とは切り離してるんだろうし消えようがなくねーか? パッと思いつくのは新バージョン起動時に必要なリソースが足りてるかチェックすればいいんじゃねーのかね。 そんで足りなきゃ自鯖からDLさせるとか。 独学だからスマートな方法が分からんから聞きたいってんなら分かるんだけど、なーんも考えないで答えだけ教えてくれってのは応用が効かなくなると思うぜ。 だから自称四天王の意見なんて聞いてないってw 天帝以外、質問に回答すんなっつうの。どんだけかまってちゃんなんだかw あー、これには返信しなくて良いからな。四天王回答にだけ書いただけで以後かかないので。 >>575 セーブファイルや本体にDL済みのリソースファイル(apk本体に入れないで用意したデータ)が消えることはありません。 リソースデータを別にダウンロードする方法はここに書くには長過ぎますので 「Android 外部ファイル ダウンロード」で検索すると色々なサイトに方法が載っています。 手順としては577さんも仰っているように 1.まず本体に必要なファイルがあるか確認 2.無い場合はダウンロード処理に移行 ※1はフラグで管理するのではなく、毎回ちゃんとファイルがあるか読みに行って下さい ユーザーが外部ファイルだけを消してしまったり、ということもあります 時間軸逆転アンカートラップ?!時魔道士が時の砂をまいたのか!? じゃあ、自称かまってちゃんの>>578 は今後無視で。 横からしゃしゃり出てるとなんか得することあるのか? 横から噛み付くのが趣味のカス犬だよw 午前中からかみこみして確実にニートも混ざっているだろw ファミコングラディウスの2面の粒々のあたり判定はどうやっているのでしょうか?ファミコンで全粒々とレーザーの当たりをチェックしてたら処理が追い付かなそうなんでレーザー付近の粒々を割り出してチェックするんでしょうか? そもそもあの粒々のオブジェクト管理はどうやっているんでしょうか 自分が遊んだゲームはみんな知ってるはずって想定なのかな 該当画面のスクショでも貼ればわかりやすいと思うんだけど >>585 ファミコンにはBGとOBJという概念があって、あの石みたいなやつは数量的にBGで表示してるはずなんだよね んで、BGは2次元の配列みたいなもんだからそれと当たり取ってるだけだと思うよ 余談だけど1のレーザーはOBJでそれ以降はBGで表現してた気がする >>585 横レスですが。 粒々は配置されてる動かない物体なので、横スクロール座標と、ビームなどの座標を合成した座標に、粒々があったら当たったと見なして消滅処理すればイイんじゃないかなあと思いました。 例えば、現在表示される画面を描画する際、8×8ドットごとに区切ったマトリクスを2次元配列で持つとかして、中身は0:空っぽ(背景)、1:破壊可能物体、2:破壊不可物体とかを設定。 これは、面のマップ情報をスクロール分だけずらして、現在表示分をコピるだけでもイイですね。 昔のテレビって640×480でしたっけ?だと、横80×60の比較用配列で済むか。 で、ビームやレーザーの現在位置をビームが移動するごとにその配列のインデックスに直接参照できるから、オブジェクトごとの衝突判定みたいな時間のかかる処理は必要ないかと思いました。 自分で作るならこうかなあ、というのを書いたので、実際にどうやってるかは分かりませんが。 m(_ _)m >>586 で、オブジェクト管理というか、表示用マップ情報を、破壊されたら、上記の仕様の場合0(背景)にしてしまえば、その回は再描画されない、と。 横レスですいません。 >>585 >>589 585さん 弊社はファミコン開発は行ったことがございませんので、 グラディウス自体は判りますが、ファミコン版2面の仕様がすぐには判らないです。 589さんのご助言のように二次元配列でBGを管理すれば実現できます。 (もし今、弊社がグラディウスっぽいゲームを作るならそうします) 589さん、ご助言ありがとうございます。 余談ですがファミコンを調べたところ解像度は256×224(240)ドットでした。 仰る通り軽い判定で実現できますね。 みなさん回答ありがとうございます。 背景配列とのあたり判定だったんですか。弾幕ゲームの考え方とは根本から違ったんですね。 レーザーも背景にしてたとは意外でした。 アーケード版の画面一杯に伸びるレーザーはオブジェクトですよね? (グラディウスに限らず) ついでに気になったのですが、雷電のうねうねレーザー(蛇みたいにぐるぐるうねって動く)の当り判定はどうやっているんでしょうか? レーザーの始点と終点を細切れオブジェクトで配列で繋いで描画と当り判定をしてるんですかね? グラディウス 2面 雷電 レーザー で画像検索すれば だいたいのイメージは出てきます >>594 おまえが質問してんだから画像くらい貼れよ ひどいな >>599 聞いてくるのは良いんじゃね。 それより、お前に聞いちゃいねぇってのに、しかも自論全力の奴が笑えるw そんなに質問して欲しけりゃ、同じ様にスレ立てろってね。 質問してる側からすれば、誰が回答したって回答は回答だろう。 意見が多いほうが取捨選択もしやすいし 明らかにそれおかしーだろって回答も無さそうだし。 ならなぜこのスレに書き込むのか?…質問スレに人いねーんだもん >>593 雷電のうねうねレーザーをYoutubeで調べ、たぶんこんな感じだろうというものをプログラミングしました。 http://www.wwsft.com/sp/ 当たり判定は、一般的な方法、すなわち距離による判定か、オブジェクトが重なったかの判定で可能です。 レーザーのうねうね具合で、一見すると何か特別な判定が必要と感じられたのかもしれませんが、 1つずつ撃ち出される弾の判定と同じになります。 >>602 見てる側からしたら名無しの無責任な回答は社員さんのじゃましてるとしか思えんよ 回答は沢山あってもまったく問題ないが スレ仕切りたいマウント君はほんと邪魔 どうも。 火種になって申し訳ありません。 なので、 不特定多数の質問に、心優しい不特定多数が答えるというスレを建ててみました。 【ゲームで、この処理ってどーやってんの?】 https://mevius.5ch.net/test/read.cgi/gamedev/1527678545/ >>606 貴方はたぶん火種になってませんよ。 マナー的に断り入れてから入ってますし、少なくとも私には、善意のだいさんしゃとして映っています。 489-491みたいな、お前はアミバそっくりだな奴が要らない子です。 駄スレでした。では。 >>607 最後にします。 フォローありがとうございます。 m(_ _)m 雷電初期のうねうねレーザー、それを書けるプログラマが辞めてしまったので途中から無くなったそうな・・・mjd? さすがに質問を不特定多数が答えるのは、質問スレでいいのでは・・・ >>603 レーザーの進行方向laDに、ターゲットへ向かうようにlaPを加減算すのですね。 あのレーザーってたまに円軌道を描くから、laPのインクリメントはいらないような気がするなぁ。 (一定時間生き延びたレーザーは、laDへの加減算が行われなくなるイメージ) C系しかやらない俺には、 HTML?とJavaScript?でここまで書けることに目からウロコだw >>603 動作つきの画面まで作ってくださりありがとうございます! 実際のプラズマレーザー(正式名)の動きにするにはまだまだ改良しないといけないようですが、非常に参考になります。 俗名はリーマンレーザー(会社帰りのリーマンが好んで使うため)と言うらしいです。 なんでlaDにlaPを加減することでああいう軌道に変化するのかがイメージしづらいですが・・・。 発想がすごいです。 >>603 なるほどなるほど。 複雑な計算しなくても面白い挙動は作れるんですね。 勉強になりました。 >>615 リーマンレーザーは止めろぉ‼ (金融システム畑) >>613 オイオイ 続編のほうが技術レベル低級なのかよw RPGとかのセーブデータですが、やはり暗号化して保存しているのでしょうか? >>619 619さん 簡単に解析できるハードや環境であり(例:パソコンでローカルに保存する) 暗号化すべき内容のゲームであれば、暗号化するはずです。 パソコン用のゲームでもデータを解析されて問題ないものは暗号化していないでしょう。 各ゲームによって暗号化の必要があるか、無いかが重要です。 例えばキャラを成長させ他のユーザーと対戦するゲームで、データをローカルに保存するなら暗号化の必要があります。 (今はそういった内容のゲームであればサーバ保存が多いですが) ちなみに弊社がスマホ用に開発したアプリで、セーブデータが解析されても問題ないものは暗号化しません。 R -TYPEの反射レーザーはどうやっているのでしょうか? 地形に応じて反射後のレーザーの長さも変わってますが >>623 623さん ご質問の意味は、 ゲーム会社勤務の社員は「高度プロフェッショナル制度」の対象になる人が多いのですか? というものとして回答します。 高度プロフェッショナル制度について調べまたところ、年収1000万円超の方が対象らしいです。 ゲーム業界にはそんな高給取りはほとんどいません。 以前も書きましたが、ゲーム業界は(同じようにコンピューターを扱う他の業界と比べ)一般的に低賃金でして 好きだからやってられるけど、、、という現場も多数存在します。 ですので高プロ対象者に該当する方は極少数だと思います。 >>624 624さん 「R -TYPE 反射レーザー」でググった画像と(昔遊んだ記憶を頼りに) こんな感じだろうというものをプログラムしました。 http://www.wwsft.com/sp/ レーザーの長さを管理する方法もありますが、その方法では障害物の反射で支障をきたす恐れがありますので、 “レーザーを短い線が何個もつながったもの”としてプログラムしています。 おまいら、何でも作ってくれるからって課題とか宿題とかそれとなく出すなよ >>626 ありがとうございます。かなり再現性高いですね ひょっとして残業で作ってくださったのでしょうか(汗)。 細切れを繋ぐ方がゲーム中も多分色々と扱いやすいんだろうなと思えました。 効果音ww 確かにゲーム制作に関わる技術かもしれねーけどさw 素材使うこともあるしシンセでイチから作ることもある。 >>629 629さん 630さんの仰っているように、 ・素材集(法人が商用利用可能なもの)から加工する ・サウンド担当者が一から作る いずれかです。 ちなみにJavaScriptなら、プログラム的に音を作り出せる仕様が各ブラウザに実装されつつあり、 将来的には簡単なSEであればプログラマーが直接音を流す(処理を組み込む)と思います。 >>631 ありがとうございます。 tone.jsとかあるんですね。 サウンド担当者はどうやって採用に至るのでしょうか?どういった点を見られるのですか? 作曲は社内で行うのでしょうか? ちょっと考えれば分かるような技術的な質問より (ってかちょっとは考えろよ的な)、 こういう質問のほうがいいな。 音作成というとドンブラを弾いているイメージ(SHROBAKO脳) >>632 DTMの掲示板を見てると、難聴や耳鳴などの症状に悩まされてる人が多いみたいだけど、 正規雇用している会社では、労災責任問われないように就業規則を徹底してるのかな 治癒不可の難聴・耳鳴を患わせてしまったら取り返しの付かない十字架になるが、一方で、頭のおかしい生産性ゼロの被雇用者に仮病でたかられたらたまったもんじゃないからな しかし個人差もあるだろうから、難聴や耳鳴などの労災回避を保証する科学的根拠・基準なんて、設定しようがない >>632 サウンドは現在、主に外注で作っています。 必要な時にホームページでサウンドクリエイターを募集 ↓ 応募して下った方のサンプル曲を視聴 ↓ 弊社のカラーに合う曲を作れる方を採用 という感じです。 過去に作って下さったクリエイターさんにまたお願いすることもあります。 >>635 意外と専属で雇っているわけじゃない場合もあるんですね。参考になります。 素材がどうのこうの言ってた人です。 外注メインなんですね。 応募しようと思ってたのに。 作例は、プログラム初学者にシンプルでわかりやすいコードに書かれてありありがたいです。 ジャンプの実際の横アクションでは、左右移動しながらジャンプすると斜めジャンプになるのと、カーソルが左右に入ったまま着地した後そのまま移動できると思うので、実装の際はどうすればよいか等ワンポイントヒントがあれば尚良いと思いました。 なんかもう初心者の都合の良い回答マシンにさせられちゃってるな 肝の部分は提示されてるんだからワンポイントヒントのところは自分で試行錯誤できないもんかね 1が不満言っていない以上、他がとやかくいうでない。ほんといちいち難癖つけたがる奴はいるもんだな。 黙って仕事する人ほど突然辞めるし、不満を言う人ほど長く続く >>638 >>639 >>640 >>641 638さん 仰るようにプログラミング初心者向けに、できるだけシンプルなコードで書いていますので、 同時キー入力は省いていたのですが、今後のサンプルには必要そうなコメントを書いておくように致します。 639さん、640さん、641さん 639さんの仰るように、ご自身で調べられることがプログラミング力の向上につながりますが、 初心者の方は何を書けばよいか全く判らない方もおられると思いますので、できる限り回答します。 同時キー入力は需要があると思うので、サンプルを用意しました。 http://www.wwsft.com/sp/ このスレをご覧になっている方の中にはシューティングやアクションゲームを 作りたいと考える方が多いのではと思い、STGを想定したサンプルも用意しました。 プログラミングのご質問を下さる皆さん、よろしければご確認ください。 >>642 おまえもそれを散々いわれてきたんだろw 同時押しの考え方は非常に参考になりました。 シューティングの実例はプログラミングの習得のモチベーション上がりますし ゲーム制作の取っ掛かりになりますね。 ありがとうございました。 モチベーションがあがる?? 製作の取っ掛かりになる??? 3軸を持つ、つまり奥行きと左右以外に空中の概念がある ベルトスクロールアクション(特に判定)はどのように作成したらよいでしょうか? 折を見て検索したり、書籍を探してはいるのですが、まずベルトスクロールの作例自体がほとんどなく、 稀に合っても2軸(プラスせいぜいが空中フラグをboolで持つ程度)ばかりです 中身は3Dそのもので見た目を2Dに見せるように作っていますが、 古くはくにおくんなども2Dで実現しているゲームもあり、効率が悪いのではないかと常に疑心暗鬼で身が入りません 最近はスマホゲームなどでも2Dベルトスクロールがありますが、どのように作っているのでしょう >>649 649さん ベルトスクロールのサンプルを用意しました。 http://www.wwsft.com/sp/ 3次元座標(X,Y,Z)をベルトスクロールする画面(2次元座標)に変換するところがポイントです。 ※変換の計算は各ゲームの画面構成に応じ調整します、今回はやや上から見下ろした感じにしています ジャンプ中のbool(trueかfalseか)だけでは(既にご理解頂いておりますように)接触判定がうまくいきません。 ジャンプ中の高さをZ軸で管理し、Zの値(及びX,Yの値)を使えば、空中での接触判定も問題なくできます。 (補足) 古いアクションゲームでは座標変換しないものもあるようですが、今回の方法であれば様々な画面構成に応用できます。 奥行への動きは別に勝手に斜め移動しなくてもいいような。 ファイナルファイトやダブルドラゴンはこんな動きしないですよね。 >>651 651さん 斜め移動させない場合は function beltX(x, y, z) { return parseInt(x-y/2); } ↓ function beltX(x, y, z) { return parseInt(x); } とすればよろしいです。 ただ画面構成を判りやすくするために表示しているラインもまっすぐになります。 説明にも書きましたが、皆さんが作られるゲームの画面構成によって座標変換の式は変えて頂くわけです。 >>652 ありがとうございます。この動きはこれはこれで参考になるのでありがたいです。 >>650 ありがとうございます、考えてもいない解決法で目から鱗が落ちました しゅごい FOR-NEXT 10億回ループまとめw追加&補正 Linux版Firefox60.0.2更新記念編 JavaScript(Core i7 8700K、IE11)....................................... 1.271秒 [Win10p64] + (*3) JavaScript(Pentium Gold G5400、Firefox60.0.2) ..... 1.308秒 [Linux....64] # New ! (*1) JavaScript(Core i7 8700K、edge)........................................1.329秒 [Win10p64] + (*4) JavaScript(Core i7 4770K、IE11)....................................... 1.581秒 [Win10. 64] + JavaScript(Pentium Gold G5400、IE11)......................... 1.589秒 [Win10. 64] JavaScript(Pentium Gold G5400、edge)..........................1.613秒 [Win10. 64] JavaScript(Core i7 4770K、edge)........................................2.102秒 [Win10. 64] + JavaScript(Celeron G1820、IE11) .................................... 2.272秒 [Win10. 64] JavaScript(Celeron G1820、edge)..................................... 2.992秒 [Win10. 64] JavaScript(Atom x5-z8300、IE11) ................................... 8.372秒 [Win10. 64] (*2) JavaScript(Atom x5-z8300、edge).................................... 9.070秒 [Win10. 64] (*2) JavaScript(Tegra3 1.3GHz、Chrome).............................36.480秒 [Nexus7.....] JavaScript(Cortex-A9 800MHz、Safari).......................36.521秒 [iPhone4S] JavaScript(PS4Slim、Netfront) .................................... 130.0. . 秒 [PS4 .] (*5) # クリーンインストールによる再計測、10秒未満の項目については10回計測の平均値 + 8700K、4770Kはturbo boostあり (*1) Linux Mint 18.3 Cinnamon 64bit版 (*2) ドンキ2in1 (*3) IE11 - Internet Explorer 11 (*4) edge - Microsoft Edge (*5) PlayStation4、CPUリソース割り当てが極端に少ないか、サブCPU担当と予想される [Win10p64] Windows10pro 64bit版 [Win10. 64] Windows10 64bit版 [Linux....64] Linux Mint 18.3 Cinnamon 64bit版 [PS4 .] PlayStation4 [Nexus7.....] Nexus7-2012 [iPhone4S] iPhone4S ファミコンドラクエ3の旅の扉に入ったときの画面効果はどうやっているのでしょうか? だからスクショとか参考URLとか貼れって どんだけスボラだよ >>657 657さん 弊社はファミコン開発は行ったことがございませんが、あの画面演出は有名でして、 あれはファミコンというハードに備わった機能で実現しています。 ちなみに同じ任天堂ハードのスーファミやゲームボーイアドバンスでも同様の演出ができます。 現在のハードではソフトウェアの工夫で似たような演出ができますので、 ソースコードを書く時間があれば公開したいと思います。 それからみなさん、このドラクエの画面演出は判りましたが、 中には調べないと画像が見つからないものもあると思います。 658さんの仰るように参考URLなどがあると助かりますので、 そのようにお願いできればと思います。 しらないが、ソフトウェアで可能だろ。 ハードでしかできないとかしょぼ過ぎる性能だ いま実物は確認してない ラスタースクロールかな?懐かしい。 シェーダ使えば簡単にできるけど 使わない場合はどうするのか期待 >>657 >>659 >>660 >>661 ラスタースクロール(風の演出)を「ゲーム プログラミング テクニック」にアップしました。 http://www.wwsft.com/sp/ 宣伝になりますが、使っているRPGの画像は、RPGの制作過程を完全公開する企画 「 One Hour Quest 」のものです。 RPG開発に興味のある方はこちらもご覧頂けると幸いです。 http://www.wwsft.com/ohq/ (補足) ファミコンというハードに備わっていると書きましたが、改めて調べたところ、 ファミコンの場合は“完全に備わっているというわけではなく、ある程度工夫して実現”していたようです。 詳しくはwikiに解説がありましたので、そちらもご確認ください。 このスレの趣旨に沿うのかわかりませんが、 曲がるビームの見た目(例えばレイストームのような)はどのように作るのでしょう 弾の進む方向を途中で変化させることはできますが、グラフィックに悩んでます。 昔は直線状のグラフィックのエフェクトをいくつも繋げたり、板ポリを角度を変えていったりしていたようですが 昨今は継ぎ目も見えず綺麗にくねくねするビームをよく見ます 毎秒いくつのパーティクルでは弾速のあるものは生成数が少ないと途切れますし、多いと処理が重すぎるのでは、と不思議です ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる