1 :
デフォルトの名無しさん :
2012/05/23(水) 02:16:19.92
2DRPGのマップを伝統的なマップチップ式で作っているのですが、 画面からはみだす部分は厳密にクリッピングしなければなりませんか?
誰がそう言ったの?
>>2 DirectDraw を使ってた頃は、大抵のビデオカードで
厳密にクリッピング処理しないと望んだ結果にならなかった。
(落ちたりもした)
今 Direct3D や OpenGL で作ってるのなら、
クリッピング処理は GPU に任せておけば問題ないし楽だ。
ただ、完全に画面外に出たポリゴンは早い内にさっさと消しておけ。
5 :
デフォルトの名無しさん :2012/05/23(水) 14:44:45.21
遠景は一枚絵にするけど海岸から水平線まで海が続いてるとき、近くのリアルな海面から一枚絵に切り替える境界はどうやって滑らかにすればいいんだろう
100キロくらい先なら境界もあまり気にならないだろ。 後は普通に色の問題。
100キロとか描画範囲にしたら激重じゃね
適当でいいだろ どうせ敵とか出すんだろ? みんな敵をひっぱたくのが忙しくてそこまで見ないって
>>9 そういうのが日本人ゲーム関係者の良いところでもあり、
同時に悪いところでもあるんだよな。
影の話も似たようなもので、適当でいい、
何故ならプレイ中そこまで見ない、と。
海外のゲーム関係者はそういう所をぬかるのをとても嫌う。
リアルな画ならリアルに見えるように境界を真面目に考えるし、
コミカルな画ならコミカルに見うるように境界を真面目に考える。
あっちはプレイヤー以外の視線「も」気にするから、適当でいいとは考えない。
だから、
>>5 は本気で考えたいなら、
海外のゲーム製作関係の掲示板で訊いた方が良いよ。
俺も含めて、ここの連中には荷が重すぎる課題だ。
適当で、そこそこで良いならここが適切だけどね。
製品ならともかく、ここで聞いてる連中は趣味でやってるだろうから そこまで頑張らなくて良いと思うぞ つーか趣味でそこまで考えてたら時間がいくらあっても足りない
12 :
デフォルトの名無しさん :2012/05/24(木) 02:33:47.74
>>7 ,
>>10 ありがとう
クロスフェードで検索しても音関係しか出てこないけど、なんとなく雰囲気は分かった。透過か合成でグラデーションかけてポリゴンから一枚絵になめらかに繋げる感じだよな。ちょっとやってみる
そうだね
Direct3Dのテクスチャロード関数とかって ビデオメモリにロードしてんの?
どこに読み込むか指定できるようになっているだろ。 なんでヘルプに目を通すぐらいの最低レベルのことができなんだ?
オンボードVGAならメインメモリ グラボさしてるならグラボのメモリ だと思ってたけど。
知らんけど指定できないと思ってる
とりあえずできないに1票
ヘルプが読めないヤツはプログラムなんて組めないんだから、 そもそも気にする必要が無い。
そう思いたいならそう思ってていいんじゃね?
ヘルプ読んでるとストレス溜まるから読んだことないけど データのロード先なんて選択できると思うぞ PC上のデータ処理で不可能なことなんてないし
> PC上のデータ処理で不可能なことなんてないし 史上最強のハッカー発見
なんでアイちゃんがテンプレ入ってるの?
24 :
デフォルトの名無しさん :2012/05/26(土) 09:31:53.10
二つ聞きたいことがあります。プログラムは大学の授業ですこしやった程度です。 一つは、トラビアンというネトゲのTSUというのがあって、それは、ネトゲ上で 人口と、人口の伸びを、随時記録して一覧にして、ネット上で誰でも閲覧できる ようにしたサイトです。 これをやるのは、人力では不可能なので、ソースからロボットを走らせて 表をつくったと思うのですが、こういうのを作るのはソースにロボットを 走らせるにはどうすればいいんでしょうか? 二つ目は、ネトゲにおいて、プログラムを直接みたり、あるいは、ネトゲの 値を変更するということはプロのハッカーなら可能なんでしょうか? ハッカーはそうとうすごいことができそうなので、プロならネトゲのプログラム をいじることくらいはできそうな気がするんですが、どうなんでしょうか?
そもそもロボットはいらない。
>>24 値の変更はネトゲにもよる
鯖で計算が行われているものに関してはほとんど無理
ここでゲーム作ってる奴らって最先端のゲームを作ろうとする割にはパイオニアにはなろうとしないよね。 ネトゲが最先端だからそれを作ろうとする割には それより先のジャンルを開拓していこうとしないよね。 何で?
>>27 やりたければ他人にとやかく言う前に自分でやればいい。
自分で出来ないのなら、胸に手を当てれば理由が分かるだろう。
ある程度形になって発表するならともかく、メシの種になりそうな事をタダでバラまいてなんの特になるの ここはプログラム板だし、企画房はよそでやってくれって話になる
31 :
uy :2012/05/26(土) 23:59:13.25
>ここでゲーム作ってる奴ら いや、作ってないち このスレは所詮、同人ノウハウ板や、 ゲ製作板についていけない落ちこぼれの集まり ム板にこういうスレ1個くらいあってもいいんじゃね?的な感じでスレおいてるだけで雑魚しかいないだろ
32 :
uy :2012/05/26(土) 23:59:32.47
>いや、作ってないち 何語wwwwww 作ってないだろ
>>32 作ってないっちゃって言いたかったんじゃないか?
35 :
uy :2012/05/27(日) 22:09:58.59
俺の中に15歳の女子中学生3年生、もうすぐ高校1年中学生最後の今春休み中みたいな人格もあるから時々おかしくなる
2dRPGのマップについてなんだけどスクロール処理ってみんなどうやってんだ
カメラを動かせば普通にスクロールすると思うが、何が問題なんだ?
2Dゲームだとカメラの概念は無いんじゃ? マップチップの位置を動かせばいいだけだけど。
「上」から平行投影で描画したほうが楽じゃね? そういうのができない特殊な環境なら仕方ないけど。
えっ? 一枚絵用意すんの?
そうだよ ただし処理のために読み込むのは画面+αだけ
javaでシューティングゲームつくっていて 目標に向かって飛んでいくっていうメソッドをつくったんですけど どうもうまくいきません。何がおかしいのかもよくわかりません。 目標Bに向かってAが進む double speedX x座標の速さ double speedY y座標の速さ double unitSpeed ユニットの速さ double theta aとbの角度 double targetX aとbのx座標の距離 double targetY aとbのy座標の距離 public void homing() { Point a = aの画像の中心; Point b = bの画像の中心; (targetX) = (double)(b.x - a.x); (targetY) = (double)(b.y - a.y); theta = Math.atan2(targetY,targetX); speedX = Math.cos(theta) * unitSpeed; speedY = Math.sin(theta) * unitSpeed; } わかりづらいかもしれませんが アドバイスをいただけたら幸いです。
>>44 どこもおかしくありません。
> どうもうまくいきません。
うまくいかないとはどういうことか、うまくいくとはどういうことかを
うまく説明できれば何らかのヒントが得られるかもしれません。
>>45 Aが進む方向がBではなく別の方向に進み
ある地点まで到達したら、斜めに動くことがなくなり、
左右上下に動くことしかできなくなり
Bまでの動きとしては
A
___/
|
B
上のようになります。わかりますかね??汗
ちゃんとBに向かってまっすぐ動いてくれることもあるんですけど、
このように意味不明な動きをすることもあります
unitSpeed>=1なんだろ
>>44 > 何がおかしいのかもよくわかりません。
そういう時は、まず public void homing() の頭にブレークポイントを置いて、
そこを通る度に以下3つを丁寧に検証する。
・意図したデータが入力されているか
・意図した計算がなされているか
・意図したデータが出力されているか
終始意図通りの結果なら、homing 関数の問題ではないということだ。
49 :
uy :2012/05/31(木) 13:59:47.54
>>44 なんでjaverってこういうありえねーメンバ変数の使い方するんだよ死ねキチガイ
http://codepad.org/oSf2nXhA def RadToDeg x
x*180/Math::PI
end
def homing_angle x , y, x2, y2
RadToDeg( Math.atan2( y2 - y , x2 - x ))
end
a = homing_angle x , y , 100 , 100
s = 3
x += (s * Math::cos(a * Math::PI/180 ))
y += (s * Math::sin(a * Math::PI/180 ))
>>46 考えられることとしては
1.AとBの間に見えない障害物がある
2.Aの位置に速度(speedX, speedY)を加算する式がバグってる
3.○の画像の中心、ってところがバグってる
4.b.x - a.x → 有効桁数が足りてないバグの可能性
>>46 atanとか使わなくても、普通に三平方の定理で計算できると思うんだが。
動きのおかしいときの各画像の位置とフレームごとの速度(x,y)はどうだったんだろう 最低そのくらいは調べてるだろうからそのデータもちゃんと載せて欲しい
53 :
uy :2012/06/01(金) 05:46:42.63
x += (x2-x) / s y += (y2-y) / s でいいじゃん
>>54 たぶん、現在位置から目的位置へ近づく割合だろ(0.0 < s <= 1.0)
当然、フレーム間経過時間などを元に動的に決定されるものだと思うが
>>51 で FA だろ。
三平方の定理と相似で解ける。
現在地
/ |
/ ̄|
/ |
目標 ̄ ̄ ̄
斜辺の長さが速度になる相似三角形の底辺と高さを求めればよい。
dx = x2-x;
dy = y2-y;
d = sqrt( dx*dx+dy*dy ); //斜辺の長さ
x += dx/d*v; //vは速度
y += dy/d*v;
ミサイルのスプライトを目標の方に向ける必要があるんじゃ? その場合は角度求めないと。
目標に向かって動かすだけなら 比率さえあればx,y方向の1フレごとの移動量は求まるけど その際に図形の回転を伴うなら確かに角度の算出が要るね
とりあえず質問者のコードは間違ってないように見える 他の部分にバグあるんじゃね?
javaがradとdegの混在命令だからだろ
質問者のコードは一応radで統一されてて それも問題ないように思う
classリファレンスちゃんと読め 以上
ネットワーク対戦ゲームの基本概念を教えてください。 たぶんこのような過程があると思うのですがよくわかりません。 @同じゲームを起動してる人を探す。 Aデータを交換する相手のアドレスを取得する。 Bそこにパケットでまとめたものを贈りつける。 RPCってやつでやりとりするのでしょうか?相手のIPアドレスを取得してパケットを贈りつければいいのでしょうか?
必要なデータを必要なときに送受信すればいいだけ。 送受信に何を使うかも、最適なモノを自分で選んで決めればいいだけ。 まずは思いつく方法を片っ端から試せ。 それで解決する。
どんなネトゲかによるだろう。 P2Pならだいたいそれで合ってる。 MMOならみんなが1台の鯖に接続する。 だけどP2Pだとルータでポート解放する必要があるから、 最近はP2PでできるようなものもMMOのように鯖を介してやることも多い。
ネットワーク対戦の難しさは、ネットワークの遅さだよ、 とだけはあらかじめ言っておいてあげる。
GBのLAN専用にしたって、面倒な手続きが簡単になるわけじゃ無いんだが、 偉そうに語り出す馬鹿が出現したな。
産業用みたいに 例えばタッチパネルとPLCのネットワークとかって インターフェイスのアドレスマップだけ設計すれば PLC側から見て単に内部メモリとしてプログラム出来る その先のやり取りはハードが勝手に決まった時間内で更新してくれるだけ こういうような仕組みがPCにも欲しい
欲しいも何もプログラムで一定の領域を定期的に同期させるように作ればいいだけの話。
だからプログラムで記述するのが古臭いんだよ
そういうフレームワークを使えばいい。
>>72 古臭いと何がマズいのか明確に言ってくれないと、
じゃあこういうのはとか、なるほどそうだね、とか何も言えないだろ
他人が組んでくれて自分の見えないところなら気にならないのに、 自分が組まないとなると文句をたれるんだよ。 つまりタダの怠け者、クズ。
>>75 ならお前はDOSからWindows作ってからやれ
「あれあったで使うが、なければないで文句は言わない」って考え方はないのかね 底辺教育受けてるとないんだろうなあ
> その先のやり取りはハードが勝手に決まった時間内で更新してくれるだけ 決まった時間内で更新できると思ってるようじゃネットワークを扱うのは無理。
ちなみにこの世で一番速い光子ですら、一秒間に地球を七週半しか回れない。 つまり、光の速度で地球の裏側に行って返ってくると、それだけで、1/7.5秒かかる。 8FPS弱ってことです。この世最速の情報伝達媒体ですらこんなものです。 もちろんネットワークは光速よりずいぶん遅いです。 間にはいくつものサーバーが挟まりますし。 その辺のことを良く考えて書かないと、文字通り、「ガタガタ」になります。
>>78 いや実際のネットワークはハードが勝手にやってるし
ソフトが介入してやってるのはホンの先っちょだけ
>>78 同期専用のハードを作ろうが、信号に異常が出たら再送なりしないといけないんだから、
確実に定期実行できるとは限らない。
それを神の奇跡か何かと勘違い出来る時点で、頭が悪いにもほどがある。
そういう人間はあらゆるモノを扱うのに向いてないよ。
結局はエラーチェックと再送を誰が担当するのか、 平均的な同期速度がどの程度か、 遅延が発生する確率はどの程度か、 失敗した場合の処理はどの部分で補うのか、 精度と処理をする場所が異なるだけの話。
>>81 ホンの先っちょだけって言うにはIPスタック作るのは面倒すぎる。
作る順番としては? 鯖:各クライアントとの入出力配列+ゲーム処理データーベースを常時更新 蔵:鯖との入出力配列により画面表示を常時更新 これが出来たら あとは入出力配列部分だけ参照更新するネットワークプログラムを作って終わり?
86 :
デフォルトの名無しさん :2012/06/04(月) 19:01:54.49
C言語で9999999ってなんですかね?
>>80 言いたいことはちゃんと伝わったが、一応指摘しておくと、
FPS の使い方がなんかおかしい
ファーストパーソンシューター厨は、遅延時間ならなんでもかんでも フレーム毎秒でしか捉えられんのだろう。
ネトゲ開発初心者はまずオセロから作れって。 FPSみたいにわずかな遅延がゲームに致命的な欠陥を生まないし、 オンライン対戦ならAIを作る必要もない。 送受信もどこに石を置いたかのデータが中心だから設計も楽。
その理屈はおかしい。 彼は趣味でやってるんだろうに、 作りたくも無いオセロゲームを作れってのは趣味にならないだろ。 作りたいものを作ってこその趣味だよ。 仮に玉砕したとしても、それでよいんだよ。 暇つぶしなわけだから。
C++について知識をください! 今シューティング作ってて、 基底クラス:敵 敵を継承したクラス:ザコA、B、C・・ みたいなよくある多態性になってるんすけど、 敵の出現タイミングを管理したいなあと思ってます! 最初に出現条件を書いてあるテキストファイルを読み込んだら、 出現タイミング、敵種類(ザコA,B,C・・・)をメンバ変数に持った構造体を確保していって、 ゲーム中にこの構造体の情報から敵を出現させていこうと思ってます。 困ってるのは、敵種類をどう指定したらいいかってことなんですけど、 敵ごとに番号を振っていって、ifで一致を確してなんてダルイことしてないんじゃないかあと思うんです。 出現条件の敵種類メンバ変数に直接ザコA、B、Cとかの型を指定できないかなあと考えていて、 出現させる際には、指定した敵種類オブジェクトのインスタンスをズバっと生成できたらカッコイイです! なにかいい方法はありませんか!ヒントください!
>>93 おおおーなるほどオブジェクトを生成するファクトリーをポリモーフィズム的に作ればいいんだな!
条件構造体を作成する段階で、敵種類に対応したファクトリーをぶち当てればいいのか!
めっちゃくちゃ参考になって大感謝です!しかもこのサイトすごく面白いです!ありがとうございます!!
95 :
uy :2012/06/13(水) 17:23:09.71
マジレスするとその「テキストファイル」をLuaか、適当に好きなスクリプト言語にして ゲーム内容はC++ではなくそのスクリプトで記述する そこまでいけると中級+ たまに自作言語にしちゃう奴もいるけど、それはゲーム製作から脱線しすぎ 個人開発なら、全部C++ソース内に内容かいたっていいんだけど でもやっぱりコンパイルして実行っていう作業よりも コンパイル時間を削減する為にもスクリプト導入が好ましい つーかそのURL全然関係ねー気がするけど、何を理解した
開発ツールの開発がだるい
開発ツールの開発を支援するツールを作れば、だるさは多少解消するかも知れん
98 :
デフォルトの名無しさん :2012/06/27(水) 14:26:23.28
モルピグ!
きゃきゃ
100
っもるぴぐ
多少のラグに目をつむればモルピグのシステムなんて素人でも作れるが 素材の準備とラグの解消、複数の鯖に分割することを前提とした設計やチート対策ってことになると難しくなってくる チート対策は最近のモルピグに利用されてるゲームガードみたいなのがあれば良いんだけど フリーウェアではないんだよなやっぱり 作ってみるかな
チート対策なんて鯖で値のチェックすれば十分
それなのにチートがはびこるのは何故
プログラマーがRMTやチートツールや対チートツールで副収入得るために わざとクライアント側からのデータ操作でチート出来るように仕組んでる
>>105 それは実際のところ割に合うのか?
リスクとリターンがどれくらいなのか、適当な状況を仮定して見積もってくれないか
俺の作った単語だけど、チートには「データチート」と「PSチート」がある。 データチートはステータスを書き換えて強くしたり、モンスターへ与えるダメージを水増ししたり、位置情報を操作してワープさせたりといったチートだ。 但しこれらはその計算処理をクライアント側で行っている場合のみ有効であり、 ステータスもクライアント側では表示するだけ、ダメージもサーバ側のデータで計算してクライアントには結果を返すだけ、移動も移動速度から計算してありえない移動距離なら切断、 とうようにサーバ側で計算するようにするだけで簡単に対策できるのがデータチートなのである。 一方、PSチートはプレイヤーの技術をサポートするようなツールを使ったチートだ。 例えばFPSのようなゲームで、次々と正確に照準を合わせたり、繁みに隠れていて見つかる確率が限りなく低いはずのに透視したように見えてしまうツールを使うチートだ。 これはプレイヤーの技術や運によって可能だったのか、それともチートなのかを客観的に判定するのが非常に難しい。 限りなくチート臭くても、毎日やってたら照準を合わせられるようになった、と言われたり、 たまたま繁みの隙間から見えた、とか、さっき繁みに入っていくのが見えた、と言われれば水掛け論にしかならないのである。 嫌疑をかけてもこ証明は難しく、プログラムで客観的に判定するとなると尚更難しい。
TASの定義でも一生議論してたら?
どうして?
110 :
uy :2012/06/30(土) 13:27:40.54
ただのツーラーだろ 少なくともネトゲで対人やってる奴はほとんどそれだよ やってない奴もいるが、ギルド単位で情報交換しちゃうから普通の奴でも知識だけはある奴も結構いる >プログラムで客観的に判定するとなると尚更難しい。 nProtect入ってればメモリ監視されてるから普通にバレてる バレた上でBANされない程度のラインを見極めることが重要
111 :
デフォルトの名無しさん :2012/07/01(日) 16:38:30.53
プログラムできなくて訳が分からない・・・論理的な思考が出来てないのかな・・・
113 :
uy :2012/07/01(日) 18:28:59.04
マジレスすると、プログラミングを会得するには一度バカになる必要がある なんでかというと、人間が脳から各神経系に伝達する電気信号よりも はるかに効率の悪い言語で、コンピュータに対し命令をださなければならない コンピュータにおいて え?なんでこうなってんの? という、疑問のほとんどは「設計者がバカだから」で終わり
バーカ
俺は今一度といたい なんでlambdaがあるのに lambdaの劣化版であるクラス使ってんの・・・バカじゃないの
何でも内包できる、以外で劣化版と呼ぶ理由がないなら なんでLispをやらんでRubyにとどまってるんだ?
ばかばっか
>>116 質問者はまともな回答欲しいなら敬語使えばいいんじゃね?
>何でも内包できる、以外で劣化版と呼ぶ理由がないなら
はあ?w
頼む、日本人だよな?お前
ここまでコミュ障とはネット越しでもキツイ
ラムダはラムダクラスだろうし、 ラムダオブジェクトはラムダクラスのオブジェクトだろうから、 何の意味も無い問題提起だな。
アスペコテに噛み付いても議論にならないからやめとけ
あんたいいこと言うね
装備なんかを作ろうと思った時 装備品リストのデータベースを作り、装備品が関わる時にデータベースを検索して該当する効果を付加する みたいなことって効率悪いですかね。 一般的にはどんな感じでやってるんでしょうか?
そりゃあプログラム埋め込みだぜ、ワイ(ry
>>122 一般的にはどうか知らんけど、俺は装備品は構造体の配列で管理してて
IDから参照してるから効率はそんなに悪くない気がする
//3番目のキャラにID=14の武器を装備
charactor[2].equip.weapon = 14;
//攻撃力を参照
at = weapondata[charactor[2].equip.weapon].attack;
作ろうとしてる物の規模によりけりなんじゃねえの ここで質問してるようなレベルならガチガチのハードコーディングでも別にいいと思う
127 :
デフォルトの名無しさん :2012/07/11(水) 14:36:20.17
FPSのようにマウスで旋回かせたいんですが 今の実装だと正しく動かない。どこが間違ってますか? 次フレームの回転行列 = 儿軸回転行列 * 兀軸回転行列 * 前フレームの回転行列
エスパーだが、とりあえず、 次フレームの回転行列 = 兀軸回転行列 * 儿軸回転行列 * 前フレームの回転行列 (↑XとYの順を逆) としてみ。DirectXは行列を前から修飾するスタイルだから。
そもそも行列の累積で計算するな。 誤差だらけになろうだろう。 行列を使いたければ、方向と位置を決定してから変換すればいいだけの話だ。
話だね
確かにD3Dのサンプルも、方向と位置を更新してから View行列を作り、その逆行列を求める方法を取っており 行列積は使っていない。 ただ、考え方は間違っていない(と思う)のに 結果がついてこないので質問させてもらった。
2重に軸の違う回転行列を使った時点で、xとyの順番次第でどちらかの回転が引っ張られてしまうだけ。 つまり考え方が間違っている。 行列は魔法じゃない。
>xとyの順番次第でどちらかの回転が引っ張られてしまうだけ。 今回に限れば、FPS風のマウスによるカメラ操作がネタだから問題ない。
というか、FPS風のマウス操作の視点を実装するとき、 視線の角度変数 rotX rotY から、 行列やクオンタニオンの乗算を使わずに、 直接一発でView行列を生成する方法って有るの? >xとyの順番次第でどちらかの回転が引っ張られてしまう って言うけど、まさにX軸回転をY軸回転で引っ張りたいわけだけど。 人間の首がそういう構造だし。 横回転の上に上下回転が乗っかってるっていう。
>>119 バカか・・・・・・・
オブジェクト指向でラムダを実装しているから
統一性のためにラムダクラスやラムダオブジェクト()になってるだけなわけで
数学の世界でのラムダがクラスやオブジェクトって概念の上に存在してるとでも思ってんの?バカか
ラムダでクラスを実装すれば、主従関係が逆になることすらわからないわけですか?初心者は謝れ
そんなに数学が好きなら、数学をすればよい。 今すぐ数学板に行って、もう帰ってくるなよ。 最も君の頭じゃ無理だろうが。
>xとyの順番次第でどちらかの回転が引っ張られてしまうだけ。 確かに x * y と y * x では結果が違う。 FPSの場合欲しいのは、y * x の方だ。 >次フレームの回転行列 = 兀軸回転行列 * 儿軸回転行列 * 前フレームの回転行列 これを分解すると以下になり、xとyを交互に掛ける形で正しくない。 rotNext = rotY1 * rotX1 * rotY0 * rotX0 正しくはこう rotNext = rotY1 * rotY0 * rotX1 * rotX0
rotX0やrotX1の添え字違いみたいなのが、何を表しているのか全く不明だし。 FPSのマウスによるカメラ操作なら、単純に、 rotX += マウスの移動量X; rotY += マウスの移動量Y; rotMatrix = toMatrix( rotY ) * toMatrix( rotX ); これでOK。 DirectXなら、D3DXQuaternionRotationYawPitchRoll使うのが確実だけどなー。
140 :
uy :2012/07/14(土) 13:57:34.10
>>137 初心者ですか?
>ラムダはラムダクラスだろうし、
>ラムダオブジェクトはラムダクラスのオブジェクトだろうから、
初心者は謝れ
つーか「だろうし」ってなんだよ
しらねーなら黙れカス
モルピグ!
し〜プラプラってもう存在価値なくなってきてりな 速度欲しいとこだけネイティヴは仕方ないけど他の部分はシーシャープとか使った方がはるかに生産性高いし iPhoneへの移植も楽々
iPhoneとか使ってるのはごく一部の情弱だけだし移植の必要なくね?
わろた iPhoneの需要は八割ぐらいだろ 電車でいじってるやつ大杉
狭い世界で生きてんな
首都圏の通勤電車に毎日乗ってる人なら実感してると思うよ
首都圏の通勤電車でiPhoneいじってる奴らの総数次第だな。
>>145 生きる世界をむやみに広げても、あんまり意味無いからなぁ
経済も生活も変数もローカルなほど良い 世界はこの真理に逆行している 我々プログラマだけが神の意思に到達しているのだ
気持ち悪い
必要なインターフェースは公開してもらわないと何も出来ないし、 世の中どんどん機能的かつコミュニティー重視になってきてるから、 むしろ寄り添ってる。
TNTNと変数は丸出しじゃ困る
でもMNMNと関数は公開してた方がいいんだろ?
privateのmnmnをあの手この手でpublicにするのが楽しいんだろ #defineとかでよー
155 :
uy :2012/07/22(日) 22:29:16.93
さっさと死ねよ気持ち悪い
わざわざ書かんでよろしい
モルピグ鯖ってかなりメモリ積んだほうがいいよな? 仮想メモリとか使いだしたら突然ラグりまくりになりそう
必要なメモリは最初に確保するなりして、動作中にメモリを確保しないような設計にした方がいい 長期間動かすから、断片化とか怖いし ま、メンテナンスなんていう名目で定期的に再起動かけたんでもいいんだけど
>>157 メモリ云々は何にどの程度の容量が必要か計算してからにしろ。
どこにスワップするほどメモリを使うんだよ?
本当にアホだな。
かなりとか言ってる時点で相当な低脳だな お前にモルピグは無理、RPGツクールで劣化FFでも作ってろ
MMUついてるし、断片化は気にする必要ないだろ。
仮想アドレスを食い散らかすと断片化する でも64bitOS使えば解決の気がしてきた
毎フレーム数百のメモリの確保と、 残す個数を決めてランダムに解放を繰り返すコードを入れてみろ。 誤差程度の影響しか出ないから。 馬鹿の考え休みに似たりなんだよ。 なんで頭の悪い奴って、どうでもいいところに気を回すんだろう? その割に容量の計算もしなければ、実測もしない。
実際やらかしたことがあるから 何も考えずに食い散らかして最終的に1GBくらいメモリ保持してると プロセスで使える2GBが断片化して数MBの確保が難しくなってくる モルピグのサーバじゃないけど
そもそも仮想メモリの管理の仕方が全く分かってないだろう? メモリの確保に領域が連続している必要性なんて無いんだよ。 だから確保できないのは断片化とは全く関係ない。 救いようが無いくらい頭が悪いな。
いや物理メモリは連続してる必要がないけど 仮想アドレスは連続してないとマズイんじゃ?
確保した大容量のメモリをマッピングしっぱなしにしているとか言う落ちか。 結局、作り方が阿呆なだけ。
マッピングは物理メモリを仮想アドレスに割り当てることでしょ? 仮想アドレスを食い散らかすこととは何も関係ないような まぁ食い散らかさなければいいんだけど
そもそもマッピングに失敗することはあっても、確保できない状態にはならない。
仮想アドレスを使い切っても確保ってできんの?
それは断片かとは関係なくメモリが足りないという。
いやだから仮想メモリが断片化して足りなく…
>>164 みたいに
OS管理下の仮想アドレスは、連続している必要がないから足りなくなることはない。 仮想アドレスが足りないというのはメモリを使い切ったと言うこと。 プロセス管理下のアドレスは、連続しているアドレスがなければマッピングは出来ないが確保は可能。 で、マッピングできないレベルで大きなメモリを扱うときは、VirtualAllocなどで必要な領域にアクセスする。断片化で確保できなくなるというのがあり得ない。
まさかとは思うがOSが管理している仮想アドレスを、 プロセスがアクセスするアドレスにそのまま落とすと思っているのか? そんな馬鹿な構造なら足りなくなるが、どこにそんなOSがあるんだ?
プロセスに割り当てられるのは仮想メモリって言わないのかな?それならスマン プロセスに割り当てられる分(最大2GBとか)が断片化するって話ね
なんとなく分かった気がする。 あっちこっちのプロセスが、メモリをろくに必要としてないのにまばらにメモリ空間を確保して 使ってるから、ページが足りなくなる、ということか?
ページングを前提にしてる人としてない人で話が食い違ってるような。
いや1プロセス内の話 仮想アドレス側がページ、物理メモリ側をフレームとすると 連続したページが足りなくなる感じ
連続したページが足りなくなるとどうなるんだ?
大きなメモリの確保(連続したページの確保)が出来なくなる ページより小さなサイズしか確保しないなら断片化は発生しないけど
連続したアドレスでメモリを割り当てられなくなる。
>ページより小さなサイズしか確保しないなら断片化は発生しないけど ちょっとこれは大雑把過ぎるような・・・ VirtualAlloc使うならそうだけど、 HeapAllocは内部で以下略
>>180 メモリの確保に連続したページは必要ない。
マッピングが出来なくなるだけ。
これだけ説明して理解できないってどれだけ頭が悪いんだよ。
>>182 あースマソ、細かいところは面倒になった
メモリの確保 仮想メモリ上のブロックを予約 番号管理なのでアドレスを必要としない マッピング 仮想メモリ上のブロックをプロセス空間上のアドレスに対応付け アクセス プロセス空間上のアドレスに対するアクセスを、物理メモリのアドレスに変換(利用者には見えない) スワップしているのなら物理メモリに書き戻す(マッピングした時点で書き戻されている場合もあるがOS次第)
でもモルピグって最初にドカッとメモリ確保したりしないだろ 一番変動があるのは同時接続してるユーザーの管理だけど、 1人当たり40KB程度必要だとして同時接続数の最大を10000人とすると約400MB 最初にいきなり400MBも確保すんの? 512MBしか積んでない鯖で理論上これでいけると思っても管理ソフト起動したら512MB超えちゃったとかあったらどうする気だよ
物理メモリが足りなければスワップするだけの話だろう。 いったい何を言っているんだ?
>>186 同時接続数の最大を小さくするか、
メモリを増やす
いくら趣味でも今時モルピグ鯖で512MBとかありえない。 趣味でも最低32GBは積んでおくべき。 16GBは普通に使って16GBはRAMDISCにするのが玄人。 仕事でやるなら最低128GBは必要。
>>178 なんのためのページングだよ。
物理メモリを連続して確保しなくてもいいように、論理アドレスと物理アドレスを
ページ単位で対応付けるわけだろ?
OSとユーザランド(物理アドレスと論理アドレス)の話じゃなくて、
ユーザランド内でのmallocに閉じた話をしたいのか?
そもそも同時接続数10000なんてメモリ云々以前に無理な話。 ソケットの管理と通信データの仕分けだけでCPUが持って行かれて、まともに動かない。 複数台の受付用のサーバと、管理用のサーバに分けないと話にならない。
C10Kか
>>190 連続した物理メモリじゃなくて、連続した論理アドレスが足りなくなるって話だったんだけど
>>193 もうちょっとコンピューターのことお勉強してから参加した方がいいよ
よっぽどだなw アビバかなんかの講師かw
結論として、モルピグ鯖でメモリ領域の確保は基本的に最初に全部やってしまう それに合わせて鯖のメモリを決定する でいいだろ アドレスがどうとかページがどうとか低水準な話はこの際どうでもいい
ログインも上限設けてそれ以上は入れなくするだろうしな。
>>191 回線の帯域が十分だったとして、家庭用PCをモルピグ鯖にした場合、同時接続数はどのくらいいけるものなの?
かなりざっくりでいいんだけど
32bitプロセスで大きなメモリブロックを扱うときは、 メモリマップドファイルを使う。 メモリマップドファイルは、物理メモリがあまっていれば物理メモリの上に載る。 かつ、使うときだけ論理アドレスにマップできる。 だから、普通に書いてれば、論理アドレスが枯渇することなど無い。
食い散らかしたらって書いたのに
食い散らかしてもちゃんとアンマップするから大丈夫。 アンマップせずに論理アドレスにマップしたままにして置いて、 それのせいで断片化してメモリの確保に失敗したっていうんなら、 アプリのつくりがまずいのは置いておいたとしても、 それは単純にメモリ空間が足りてないから失敗したと見るべき。 たとえ断片化の影響がなかったとしても、 もう少し負荷が上がったところで、そのうち止まる。 止まるのが早いか遅いかだけの違いで、 どちらにせよ、アプリのつくりがまずい。
仮に整理すれば確保できるって状況なら、 メモリ空間が足りないから失敗したのではなく、 断片化で確保できないってことだよね アプリの作りがマズイのは分かっててちゃんと書いてる 負荷ってのはよく分からん
違うよ、整理しても確保でき無い状況。
整理してやっと確保できるほどメモリが圧迫しているのなら、 次の確保か、その次の確保かぐらいで、 本当にメモリが足りなくなってとまる。 メモリの断片化によるメモリ確保の失敗なんか出してしまった時点で、 既に見積もりを誤ってる。 断片化しても動く範囲に、 論理アドレス使用量を控えるべきで、 断片化そのものを気にする必要はない。 ×断片化の対策をする ○論理アドレス使用量を抑える
コンパクションは普通のデータ構造使ってたら困難なんだが
嫌がらせのように綺麗に断片化してた部分を 修正したら結構容量空いたよ 論理アドレスの使用量を減らすってのもそこそこ大変だよね ギリギリまで使いたいなら断片化も気にする必要があるってことで まぁ64bitOS使えば(ry
仮想メモリと仮想アドレスがごっちゃになってるやついるだろW
>>194 がバカすぎるな。
>>208 64bitOSのメリットって、実質的に断片化しない、大量のファイルのmemmap可、
あたりだと思ってる。
>>209 もしかして仮想メモリって補助記憶装置(HDD)上に確保されるやつ限定の用語だった?
ちょっと混同してたかも
>>210 連続した論理アドレスが足りなくなるってどういうことか説明してみろよw
もう許してやれよ。
>>212 32bitのシステムで、5GB確保できるならやってみろよ。
お前ら普段そんなところまで考えながらゲーム作ってんの?
>>214 それ、メモリが足りなくて確保出来ないって言われるだけじゃ…
そもそも32ビットのシステムだと、そんなでかい値をmallocに渡す方法がないw
でも、PAEで物理的には5GBのメモリだってつめるわけで、 これって仮想アドレスが足りないってことだろ。
お前ら、そろそろ一旦話をまとめてくれ 結局なんなんなんだ
まるで発散した会議のようだ
ダイバージェンス
>>218 そういうのを語りたければAWEの使い方を確認してからにしろよ。
必要な領域をスイッチさせて利用するから足りなくなんてならないんだよ。
仮想メモリに関して思い込みで間違っているのが分かっているんだから、
最低限のことを調べるなりしろよ。
だからいつまでたっても間違ったままなんだよ。
まとめ ・メモリの断片化が原因でメモリが確保できなくなることは無い また、メモリの確保とアドレスの残量は関係ない、 なぜなら、メモリの確保はブロック単位必要な部分をつなぎ合わせて作るから もちろん仮想メモリの容量自体が足りなければ確保は出来ない ・連続した仮想メモリがとれない場合に問題になるのは、 メモリの確保では無く、確保したメモリをマッピング出来なくなること ・大規模なメモリを扱う場合は、必要な領域をマッピングするように作るのが常道 ・PAEを有効にしても必要な部分を下ろしてくるだけなので、馬鹿な組み方をしない限りアドレス不足は関係ない
>・連続した仮想メモリがとれない場合に問題になるのは、 ・連続した仮想メモリのアドレスがとれない場合に問題になるのは、
・MMOでサーバ側が大量メモリ確保しなければならないとするなら、そのアホな設計から見直せ
ちなみにPAEが推奨されない理由は、 4GBを超えるメモリ空間にアクセスする時に、 いったん4GB以内の空間へデータを転送して、 別の場所が必要になったら元も場所へ書き戻すという処理が、 切り替える場合に発生するから。 単純な仮想メモリのようにCPUがアドレスだけ切り替えてという訳にはいかない。
仮想メモリのアドレスが断片化して、 マッピングが出来なくなることがあるってので通じるのかな?
アドレスはプロセスごとなので、マッピング出来なくなる理由は、 結局そのプログラムを作っている奴が馬鹿なだけなんだよね。
つまり
>>168 は読まれてなかったってことか
つかマッピングじゃなくてコミットじゃ?
読み直したら物理メモリって限定してるのがいけないのか
確保されたメモリは、ブロック番号の寄せ集めで連続している必要は無い。 また、マッピングされるまではハンドルが識別子になって管理されている。 そしてマッピングされた時点でアドレスが確定するが、再度マッピングし直すと、 当然アドレスは変わる可能性がある。
無駄にマッピングしてアドレスを断片化させると、 連続したアドレスがとれなくなるので、大きな領域のマッピングが出来なくなることがある。 もちろんメモリの確保とは全く無関係。
というか仮想アドレス空間にはマッピングファイル以外もいろいろ入ってるんだけど
マッピングファイルって何だよ?
メモリマップドファイルか
マッピングをメモリマップドファイルと混同しているのなら、 もういい加減、馬鹿の巣へ帰ってと言うしか無い。
いやそっちが混同してるのかと思って というかやっぱりコミットのことだよね?
結局マッピングファイルって何だったの?
3レス前に遡って見てください
コミットは物理メモリに確実に割り当てられている状態。 マッピングでアドレスが割り当てられたとしてもコミットされているとは限らない。 なぜならマッピングによってアドレスが割り当てられた場所がコミットされっぱなしになったら、 他のプロセスがメモリを必要としたときにスワップできなくなる。 この説明で理解できた?
>>240 コミットしててもスワップは発生するでしょ?
つか予約とコミットの2段階あるからコミットは不適切だった…
ページ領域の割り当てあたりかな
仮想アドレス断片化対策は必要。 DMAやるときは物理アドレスで連続している方が望ましい。 なんでこれがわからん奴がいるの?
>>242 スワップされたらコミットは解除される。
で、コミット自体はアドレスの割り振りとは何の関係も無い。
知識が滅茶苦茶で七転八倒するぐらいなら、きちんと調べてからにしろ。
それから何度も言っているが、メモリ確保のため予約された時点では、
プロセス上のアドレスは決定されていないので、
アドレスの断片化とは関係しない。
>>243 > DMAやるときは物理アドレスで連続している方が望ましい。
物理アドレスで連続するようにプログラマが行うべきことって愚弟的に何なの?
そんなことできるの?
>>243 仮想アドレスの断片化していても物理アドレスが断片化しているとは限らない。
逆もしかり。
物理アドレスなんて、スワップが発生したら頻繁に入れ替わるから、
単独プロセスがユーザーモードでどうこう出来る問題じゃ無い。
仮想メモリとか物理アドレスとか、OSのメモリ管理のレイヤの言葉を必死に使ってるから、 話がおかしくなっている。 ユーザランドの話しかしてないのに。 単にmallocで確保するメモリのフラグメンテーションの話、で終了。
>>244 他のプロセスがメモリ使ってコミット解除されたら非常にマズいだろ…
スワップ発生したらプロセス上のアドレスが未定になるのか?
スワップアウトって、物理メモリから補助記憶装置にコピーされて、
コミット先(この言い方が正しいかどうか分からない)が切り替わることだろ?
ごめんなさいちょっと寝ぼけてました ページイン・ページアウトをコミットとコミット解除って言ってただけか
>>248 コミットが解除されても、
対象アドレスにアクセスがあった時点で切り替わるんだよ。
物理アドレスとの対応関係が外れるだけで、
プロセス空間上のアドレス自体は未定義にならない。
だからプログラム側から見たら、何が起こっているのか知ることはないし知る必要も無い。
で、これが大量発生することをスラッシングという。
>>250 うんごめん、寝ぼけてた
スラッシングってページインとページアウトが頻発する状態のことだよね
というか冷静に読み返してみると仮想アドレスの断片化を説明してたつもりだけどあんまりそうは見えないし
相手はずっと物理アドレスの断片化の話しかしてないな…
数スレッド前の変な奴を除くと、 物理アドレスの断片化の話ってどれ?
今は論理アドレスの断片化の話をしているので、 論理アドレスの予約と、そこへ物理領域を宛がうコミットの、 二段階確保の話は関係ないです。 メモリマップドファイルで物理領域確保。 使うときだけ仮想アドレスにマッピングする。 今はこっちの話です。 メモリマップドファイルを使うと、たとえプロセスが32bitであっても、 OSが64bitならば、搭載しているメモリを目いっぱい使うことが出来ます。 仮想アドレスの枯渇を気にするほどメモリを使う32bitアプリには必須の技術です。 論理アドレスの断片化が気になるほどメモリを使い込むアプリであれば、 メモリマップドファイルを使うのが普通です。 その意味でメモリの断片化は気にする必要ありません。 そのようなアプリはメモリマップドファイルを使うのが常識ですから。
物理アドレスという言葉を使ってはいるけど、実際のところ全然物理アドレスじゃない 主張をしていた奴が一人いる、という感じ。
> メモリマップドファイルを使うと、たとえプロセスが32bitであっても、 > OSが64bitならば、搭載しているメモリを目いっぱい使うことが出来ます。 OSが32bitだったら、搭載しているメモリを目いっぱい使うことが、なぜできないの? > 仮想アドレスの枯渇を気にするほどメモリを使う32bitアプリには必須 よくわかんないんだけど。メモリマップドファイルは一義的には、ファイルIOを 最適化するというか、そういう技術だよね? > 論理アドレスの断片化が気になるほどメモリを使い込むアプリであれば、 > メモリマップドファイルを使うのが普通です。 因果関係が全く意味不明。
>>250 なにのOSの話かは知りませんが、Win32であれば、
論理アドレスに対して物理領域をコミットしたなら、
それが勝手に解除されたりすることはありません。
ページアウトしてもコミットされたままです。
http://msdn.microsoft.com/ja-jp/library/cc430204.aspx >MEM_COMMIT
>メモリ内またはディスクのページングファイル内に、
>指定されたページ領域に相当する物理的な記憶域を割り当てます。
上記にあるようにコミット先は、ディスクのページングファイルでもかまいません。
つまり、ページアウト中もコミット状態です。
そして今の流れは論理アドレスの枯渇の話題なので、これらの話は関係ありません。
論理アドレスの枯渇対策には、メモリマップドファイルを使うことが有効です。
>>252 >>164 は仮想アドレスの断片化の話してて
>>165 は物理アドレスの断片化の話をしてる
物理アドレスって言い方が正しいかどうか分からない
つか
>>158 が仮想アドレス側の話だったのに、「メモリ」って書いたのが
そもそも間違いだったのか。物理メモリの話に見えるよね
>>164 の書き込みは、
元々「MMUがあるから断片化対策は要らない」という主張に対する反論だし、
「プロセスで使える2GB」というキーワードも盛り込んであるので、
普通に読めば、仮想アドレスの断片化の話をしていると直ぐ分かる。
読み落とすのは余程のバカ。
Aさんが書いてるのかAさんの立場のつもりでBさんCさんetcが書いたレスなのか判別できん。 「○レス目と○レス目がこういう主張だったから」といってもどれが誰の主張やら。
>>259 いや
>>168 で「マッピング」の意味を確認してるのに
>>169 の「確保」の意味を読み違えてここまで引っ張った私がバカです…
改めて読み返してみるとひどいな
>>260 IDが出ない板だからしょうがない
こんなにだらだら続けるなら、途中からトリップ付けとけよ
じゃあ、一度なかったことにして、初めから議論しようか
ゲームベースで議論しろよ こういうシステムを実装しようとしたときにメモリの大量確保が必要になってどうかとか
だってそうだろ? 実際ゲーム作ってて大量にメモリ確保しようとしてそこで問題が発生したなら 大量にメモリを確保する以外のやり方も議論するのが筋だろ 要はそのシステムを実装できればいいんだからさ だいたいゲームでそんなに何GBも連続したメモリ領域を確保することなんてないし
話題を変えようか。 ある程度のラグがある状態でのネット対戦のFPSでの、弾の当たり判定の話でもする? それとも、ロジックフレームレート固定で、表示フレームレートを現在の ディスプレイの更新周波数に合わせて垂直同期をとるときの話にする? ロジックフレームレート60Hzで表示フレームレート72Hzの場合とか困るでしょ。 最近は液晶が普及したので60Hzなことが多くてあまり問題にならないけどね。 それともグローバルイルミネーションの話が良いかね。 マップ状況に合わせたリアルタイム残響音とかも面白そうだね。 Zソート無しで半透明処理を実現するA-Bufferの話題とかも。 結局DX11に盛り込まれなかったんだっけか。
またフレームレート厨か それ何レスか前に散々議論されたけど 結局どっちも非固定が良いって話になったんじゃなかったっけ? 再現性を必要とするときだけロジックfpsを固定するって話だったような それより浮動小数か固定小数かの話のほうがいい モルピグで浮動小数で管理してて、そのデータを蔵から鯖に送ったら微妙に数値が変わってしまう現象とか
単にインテルFPUの80ビット型だったとかじゃねーの?
>>268 鯖蔵ともAMDのCPU
開発言語はC++
>>267 誤差がでるとマズい場所は整数で、
大丈夫な場所はちょっとくらい数値が変わっても気にしない
3Dキャラの空間での位置情報はどうすんだ? 整数にするわけにもいかないし誤差が出ると困るだろ出る
>>271 どうせ他のユーザの移動補完とかクライアントでやらなきゃいけないんだから
誤差なんか気にしない
サーバ側の位置情報もタイルごとの大雑把な整数とかでいいんじゃないかな
モルピグにもよるけど陣形で効果が変わるものだと誤差はやばいんじゃないか?
それぞれのクライアントで判定するなら誤差があるとマズいけど、 陣形の判定はリーダーのクライアントで判定して結果をサーバに送るなり サーバで計算するなりでいいんじゃ
ところでモルピグって呼び方はどこ発祥なの?
>>275 どこって・・・このスレ。
海外(英語圏)では「ッモルピグ」って読むのが普通なんだけど、
最初の「ッ」の発音が日本人には難しいということで
このスレでは「ッ」を省略して「モルピグ」って言うようになった。
だからモルピグはこのスレ発祥だけど、もとのッモルピグとあまり変わらないといえば変わらない。
なんでここってモルピグの話題がお気に入りなんだろ モルピグ自体ほぼ終了してるのに
PCモルピグは終わりだけど もう数年後はスマホの性能も上がってるから スマホモルピグの時代がくるよ
モルピグが動くくらいの性能はすでにあるし、一部でモルピグも出てる気がするけど スマホに関しては開発予算が少ないからあまり流行らないと思うよ
開発の予算が少ないのは今だけじゃないかなあ ファイナルファンタジーだって最初から億単位で金かけて作ってたわけじゃないし スマホでモルピグって出てたっけ? 調べてないからアレなんだが、まだMORPGしか出てなかった気がする
MMORPG と MORPG の発音の違いが分らん
> 鯖蔵ともAMDのCPU FPUの仕様がAMDでは違うという話は初耳です
たまにあるけどBIOSとかが頑張ってる場合もある
拡張命令を使えば計算結果は変わるが、FPUは同一の動作だよ。 違っていたら使い物にならない。 それからBIOSががんばるとか意味不明な知ったかはやめろ。
横レスですが... ieeeの仕様上は確か、内部計算時の精度は上げてokだから 同一の値は同一の値として扱えるけど、同一の値を使った計算結果自体の誤差はありえるよね?
あとvcとgccってだけで変わるよね? ぶっちゃけある程度ファジーな扱いでいいと思うけど
>>285 CPUのバグとかはマイクロコード、ファーム、バイオスでカバーするんだよ。
え?お前らゲーム作るときBIOSのことまで考えながら作ってんの?
>>288 意味不明な知ったかはやめろ。
>>286 たとえばgccだと-ffloat-storeというオプションだけど、全ての途中経過を強制的に
倍精度(64ビット浮動小数点)にする、というのがあったりするが、途中の計算が
80ビットでおこなわれたものとで違いが出る、ということはありうる。
そもそもメーカーごとでFPUの仕様は違わないという話をしているときに、 なんでCPUのバグの話をし出すんだよ。 これだらアスペは手に負えない。
浮動小数の数値が変わってしまう話題にレスしてたんだろうね 意味不明な知ったかじゃなくてKYだったってことだね
はぁ…
295 :
uy :2012/07/30(月) 12:36:05.14
ハードコーディング以外をやってる奴に聞きたいんだけど メニューとか、選択式のテキストの表示ってどういう風に処理まとめてる? 縦メニュー、横メニュー、 ブロック式メニューとか色々あるけど、正直そんなものをtypeで分けてたらとても、まとめられているとは言えない フォーカス変数作らずに当たり判定で選択式に作ればある程度はまとまる事はわかってるが それでやってる奴とかいるの?
VSとかについてるダイアログエディタみたいなのをいちいち作ってる素人はほとんど存在しないだろうな。 ゲーム屋でも結構老舗のでかいとこじゃないとそういうのはない。
uyが言ってるメニューってOSが提供してるやつじゃなくて ゲーム内のGUIの話だろ
299 :
uy :2012/07/31(火) 10:58:38.41
>>299 カーソルなのかマウスなのかそれとも両方なのか
マウスなら当たり判定周りは共通化するな
301 :
u :2012/07/31(火) 23:05:58.45
カーソルを裏方であたり判定オブジェクト もういいや
なにがどう提供してもUIはUIだが。 ツールで作成したいのか、たんに作成する手法を聞きたいのか。
ぶひ
〜なのか、〜なのか、 って2つにわけて喋る奴は大抵アホ
じゃあ、どう言えばいいの?
2つに分けて喋る奴は大抵アホ。 纏めて釣りバカと言え。
だれうま
最新のゲームループ論で秀逸なドキュメント教えて
2DのゼルダみたいなX座標Y座標駆けまわるタイプのゲームのジャンプ処理解る猛者おるかー?
ジャンプしてるって状態をステータスで持たせればいいだけじゃねーの
>>310 ゼルダがどうやってるかは知らないけど、
高さ情報を持たせるのが一番楽なんじゃないか
着地地点が上手くいかない。
2D横スクロールアクションみたいにX座標のみ移動って場合は問題ないけど、そこにY座標が絡んだ場合の着地地点の描画で悩んでるわ。
今考えてるのが、飛ぶ直前のY座標を別に保存しておいて、ジャンプ中移動した分を別のY座標カウントとして取って、
それを以前に保存したY表に・・
ってここまで書きながらプログラム作ってたら出来たわw
>>311-312 ありがとやでw
頭の良い人たちは、ゲームを作らなくなってしまったんだ。
頭の良い人たちはゲームを作らせる
316 :
uy :2012/08/03(金) 20:45:24.65
アクションゲーは作らないけど カクゲーはいずれ作らなければならない つうかカクゲーって一番時間かかるのが絶対デバッグだよな 無限コンボ探し、バランス調整 一人で作れるのかこれ 俺様は忙しい
好きで作るのであって、頭の善し悪しで作ろうとか思い立ったわけじゃないし。
他人に作らせてもいいものができるんならそいつは頭いい
頭の良い人は、無駄なことに時間を費やさないから頭が良い。
>>318 たとえば L5 の日野は頭がよかったんだな
>>316 無限コンボ探しはExcel使ってフレーム単位でチェックかけるようにすると確実だぞ
その表作るのがかなりしんどいけど
プログラムスレでなにいってんだか。
ああいうのってファジングツールとか使うんじゃないの? 人間がひたすら時間をかけるのは、なんていうか労力がかかりすぎだろう
そこまでやってたら、最近の格闘ゲーで無限コンボでまくりとかあるわけねぇw
無限コンボがあり得ない仕様にするのが一番楽なんだろうけど それじゃゲームとして面白くないんだろうな
無限コンボ対策か知らないけど、ダメージ補正と浮き分量の減少は多くの格闘ゲームで採用されてるね それに加えてフレームで制御 でもフレーム重視だとバーチャファイターみたいなフレームゲーになるからな
バーチャファイターは全技のフレーム知らないと戦えない。 初心者が適当に技出しても運ですら勝てない。 鉄拳は暴れてれば運で勝てる。 馬鹿でも勝てるクソゲー。
そういえば昔、格ゲーのコマンド処理の話で コマンド入力はどう処理するのが一番って結論になったんだっけ?
状態機械、もっと言うと正規表現みたいに コマンド入力を受けるオートマトンを作るって話があったような
いまなら処理が早いから判りやすくて誤動作置きにくく、任意の組み合わせを設定できるようなのがいいんじゃね。 1フレームに100パターンもチェックしないんだろ?
>>330 > いまなら処理が早いから判りやすくて誤動作置きにくく、任意の組み合わせを設定できるようなの
それがまさに状態機械だと思うが。
君の言う3つの条件をすべて満たす他の実装方法があるなら知りたい。
入力履歴にたいして全パターンマッチングするだけでいいんじゃね。 入力状態とその状態が継続したフレーム数が規定値範囲かどうかをテーブルにしとく。 いまじゃ0.1%の負荷にもならんと思う。
[下]-[右]-[A] というコマンド技が登録されているとして、 プレーヤーが [下]-[右]-[B]-[A] と入力したときに、 最後の [A] でちゃんと技を発動させるには、 単純に入力履歴に対して全パターンマッチングするだけでは駄目だと思うんだ。
入力猶予フレームを決めてその間の入力を取り出して 正規表現風に書けば /下.*右.*A/ がそれとマッチしたら発動、ではダメなのかな
/下.*右.*A/ がそれとマッチするかどうかを 状態機械を使わずに調べるにはどうする?
下]-[右]-[B]-[A] これってマッチしちゃっていいもんなのか? 両方を同じワザに登録しとけば。
>>336 B攻撃キャンセルA技を出したいときに、
[B]-[下]-[右]-[A] と入力するプレーヤーもいれば、
[下]-[右]-[B]-[A] と入力するプレーヤーもいる。
最後の技発動ボタンまでの方向キー入力シーケンスが比較的長い技の場合は、
なおさら技コマンドの入力途中に別の攻撃ボタンを混ぜることはよくある。
>>338 最初はバグだったのかも知れんが、今はもう「仕込み」と呼ばれて
格ゲープレイヤーの間ではテクニックとして認識されちゃってる
格ゲープレイヤーの間で掲示板のような文字ベースの会話をする場合
ナナメ入力を書きやすいように方向キーをテンキーに見立てて書くことが多いのだが
例えば…
6Bキャンセル236236C
この場合、6Bのキャンセル可能なフレームが短く
236236Cの入力が間に合わないことが予想されるので
236B236C
と入力することで成立させるとか普通に行われるよ
なるほど、これではマニアだけのものになるわ。
矢印とそれ以外を別々にキューかスタックに積んでますって感じだな
何言ってるんだろう
343 :
uy :2012/08/09(木) 20:12:08.03
ボタンと矢印を別々に保持とか!!! すげーな、ROMってたけど、はじめてこのスレが役に立ったと思った ちなみに俺様はキーボードでもカクゲーが出来る どちらかといえばそれでもやっぱりコントローラーのほうが戦闘力+1くらいだけど 相手によってはキーボードの方が良いケースもある
344 :
uy :2012/08/09(木) 22:20:10.43
格ゲーの十字キーの入力を数字で表したもの 7 8 9 4 (5) 6 1 2 3 (5)はニュートラルに戻す意味で使われることがある はどうけんなら236P ちなみに下段蹴りからのはどうけんは2K36Pのように入力しても出る
>>339 だからマッチングして「良い」ものと「ダメ」なものと「無視」していいものを組み合わせたテーブル作って
総当りでいいじゃん。
まあ、実際の処理はどうでもいいけどな。 全部if文で組んだって作れるよ。
そんなことが出来るとは知らんかったわ〜 明日ゲーセン行ってみようかなw
>>347 最近はどうか知らんがストZERO3の頃はそれで波動拳→キャンセル→真空波動拳とかできたぞ
236P236Pでできた
最初の波動拳が当たったら被ダメモーションが切れる前に真空波動拳が当たる
当然、波動拳連発しようとしてこれに化けてしまうこともある
化けるってことはシステムに問題あるのかプログラムに問題があるのか
>>346 言っていることがまだよく分からんな。
そのマッチングして「良い」ものと「ダメ」なものと「無視」していいものは、
今どんなコマンドを入力中かという文脈によって変わるのではないのか?
同じ入力が文脈によって解釈が変わるという時点で「状態機械=オートマトン」だと思うが。
たとえば、スト2のリュウはどんなテーブルを作ればいい?
>>349 状態機械=オートマトンじゃなかったな。
同じ入力が文脈によって解釈が変わることをテーブルで判断してるだけのことで、
やっていることは本質的には有限状態機械=有限オートマトンだと思う。
351 :
uy :2012/08/10(金) 08:39:53.51
つうかちょっと作ってみてわかったけど 万能に作るのは難しいよこれ カクゲーごとに最低限の実装でいい気がしてきた ↓→A ↓↓A ↓(ゲージ貯め)→A とかを 特にゲージ貯めとかを同一スタックで表現するのはむずいような ←↓→A という技と ↓→A という技がある場合とか ←↓→A→AAA でさらにコンボになる場合とか どうするのって感じ つうか俺がやってきたカクゲーは →A→AAA ってコンボがあったときに →A→AABA とかって、間違ってBを入力しちゃってても、A連打でごまかせたような気がする
レベル低過ぎて吹いたw
353 :
uy :2012/08/10(金) 09:44:00.07
>>352 まだ昨日飯くいながら30分しか思考していないからレベル低いとか言われてもなんとも思わない
じゃあ今日中にレベルの低くないソースあげといてくれ
出来ればrubyで
354 :
uy :2012/08/10(金) 09:47:25.96
そもそもゲームアルゴリズムなんて時間かければ誰でも実装可 どれだけ完璧に組むかどうかって話だろ 1作しかそのジャンルのゲームを作らないならこだわったシステムを作るよりも ハードコーディングが全体効率でみれば一番速い
入力の履歴をとっておいて、 毎フレーム技の数だけ正規検索するだけだろ。 バカすぎ。
実装は時間をかければできるけど、アルゴリズムを考えるのは行き詰まることもある まぁ趣味ならハードコーディングしといて2作目作るときにリファクタリングが賢いと思うけど ところでゲームにrubyってどうなの ツールにしか使ったこと無い
入力2 入力3 入力6 入力P 状態1 状態2へ 状態2 状態3へ 状態3 状態4へ 状態4 波動拳 有限オートマトンを教科書どおりにやろうとすると上の表をif文とかで実装することになるが なんかめんどくさそう。
正規表現のライブラリ使えば?
359 :
uy :2012/08/10(金) 10:23:42.97
>>355 「だけ」で済むわけがないからきいてんのにアホなの?
最低でも5手くらい先は読んでからレスしてもらえませんか?
>>356 速度遅い rubyで作るのはまだ趣味の領域
ボードゲー・パズルゲーとかならいい選択肢だと思うけど
オブジェクトいっぱいばら撒くゲームは作ろうとすると速度問題で死ねる
フレームの開始シグナルと、キーの押し下げと、キーの押上と、その他条件シグナルを、 順にバッファにためといて、正規表現でマッチングとるだけ。基本これだけでいける。
361 :
uy :2012/08/10(金) 10:44:50.36
押されたキーのみ保存するならこんな感じだろうけど
"22222222222333333333333666666666PPPPPPPPP" =~ /2.*3.*6.*P/
キーごとに押し下げ、押し上げを保存って、
どういうデータになっているのか想像つかない
ていうか実際は、立ち上がり中とか、座り途中とか、キー押された長さが一定未満、一定以上とかのデータも
必要になって、
>>339 , とか「→A→AAA」「→A→AABA」 のあたりも仕様に入れるなら
この正規表現の中にゲーム仕様がはいることになって
後々どえらい事になりそうな気配があるんだけど?
格ゲーは詳しくないんだけど、(ガイルみたいな溜め技以外で)キーの押された長さが一定未満だと技がでないとかってあんの?
ボタンのゴムやバネの反応が悪いと→→を入力したつもりがボタンを離す動作が反映されずに→になることはあるかもね。
364 :
uy :2012/08/10(金) 10:59:37.74
ソウルキャリバーだと防御不能技とかがある 押されたのが2秒くらいだと最大威力で、防御不可能 貯めが足らない状況でボタン離して発動すると威力弱い + 防御可能 とか てか正規表現でよさそうだった 仕様固めて、定数から正規表現リテラルの自動生成でいけるか
>>364 特定の技の最中だけ一定未満の入力を無かったことにするとかは面倒そうだけど、
押した長さで威力が変わるとかは組み込みやすそう
(発動後に長さを計測するだけだよね)
>>361 >キー押された長さが一定未満、一定以上とかのデータも
フレーム開始シグナルを入力バッファに入れておけば、
それを数えることで何フレームキーが押されていたか判断できる。
>
>>339 , とか「→A→AAA」「→A→AABA」 のあたりも仕様に入れるなら
それは勝手にそうなる。
>この正規表現の中にゲーム仕様がはいることになって
if文とかでごちゃごちゃやるよりマシ。はるかに調節しやすい。
>押されたキーのみ保存するならこんな感じだろうけど >"22222222222333333333333666666666PPPPPPPPP" =~ /2.*3.*6.*P/ >キーごとに押し下げ、押し上げを保存って、 >どういうデータになっているのか想像つかない そんなカスみたいな方式だと、連打しているのか押しっぱなしにしているのか判断できないから駄目。 キーの押し下げとキーの押し上げは別々のイベントとして記録すること。 Win32もDirectXもそうなってる。
368 :
uy :2012/08/10(金) 11:44:22.22
で、どういうデータ構造で保存してどんな正規表現かくつもりでいるわけ? 流石に1キーごとに保存してったら正規表現がかなりやばいことになるけど
369 :
uy :2012/08/10(金) 11:46:13.57
>>366 は?
勝手にそうなるわけねーだろ
正規表現 だろ?
なんで正規表現が任意のデータ以外にマッチするんだよ
むしろ正規表現だからそうなる。 間にコマンドのパターンに関係ないゴミが入っていても読み飛ばしてくれる。
371 :
uy :2012/08/10(金) 11:55:50.75
はあ、、、 初心者死ね
出来るんだから仕方ない。
373 :
uy :2012/08/10(金) 12:22:11.63
おまえがやろうとしてるデータ構造と正規表現かけ
正規表現だと、設定時に「間にゴミが入っていても読み飛す指示」が必要で、非直感的。
375 :
uy :2012/08/10(金) 12:51:29.42
正規表現のみがありえないんだろ 正規表現でまず第一条件大ざっぱに判定してからifでいい気がする 理解してれば一行で一瞬でかけるはずのコードすらかけないゴミカス知ったか初心者に話しかけられてモチベが下がった 帰る
377 :
uy :2012/08/10(金) 13:26:27.20
入力データ追加時に無作為に追加しまくって あとから正規表現頼りで解読しましょうみたいな設計が 完璧なわけはないからね もっと良い手段はあるだろう
378 :
uy :2012/08/10(金) 13:30:02.14
入力データというよりキャラの状態推移させていくほうがよくないかね ゴミも含まれるデータを生成しちゃってそれを正規表現でなんとかするっていうのはちょっと力押しすぎる
379 :
デフォルトの名無しさん :2012/08/10(金) 13:58:21.41
入力の方向と次のボタン入力受付までの情報をデータベースとしてメモリ上に持っておけば良いのではないか @↓→P A←↓→K B↓→←K ってコマンドがあって、各キーの入力の間の許容時間を今回は単純のために一律12フレームとする データベースに入れておくデータとしてはこんな感じ @↓12→12P A←12↓12→12K B↓12→12←12K ↓が押された瞬間に@とBに絞りこまれ、次に12フレ以内に→が押されたら@とBの絞りこみを維持し、 次の12フレ以内に・・・ と思ったらだめだわこれ
>>357 格ゲーはよく分からんが、正規表現ならDFAになるはず
オートマトンのテーブルを手書きするのは作業効率も保守性も悪い
たぶん入力許容時間とかの扱いも必要なのだろうから、
単純なDFAにはならないだろう、と考えると
専用のステートマシンコンパイラを用意するのが王道なんだろうね
だろうね
383 :
uy :2012/08/10(金) 15:52:10.91
試しに正規表現で書いてみたら全然うごかなすぎてワロタ 書けるっていった奴出てきてコード見せろと 「↓」「→」「P」 を入力したとしても 実際のデータは無作為に保存していけば 22222222626262626266666666p6p6p6p6p になるよ ここから解読するのは、なかなか至難の業だろ 2626262626はゴミデータとして捨てるとしても、それと同じ規則で捨てていったら 6p6p6p6p6p6も捨てられてしまう やっぱボタンと矢印は別スタックか?
384 :
uy :2012/08/10(金) 16:05:44.21
だめだこれ 正規表現はやるべきじゃない もう最初の方法でいいや 30分で思いついた方法が正義だと分かった
385 :
uy :2012/08/10(金) 17:45:14.14
やっぱり正規表現でいった、大体作れたけど、 お前らには不可能だと分かった 自分でまずフォーマット決めないとお話にならない そしてただスタックにデータを何も考えずに詰んでいくだけだと、 正規表現では機能足らなくてマッチしきれないので 正規表現でもマッチ可能なデータを、スタックに詰み込む時点で意識して作らないといけない 発想がないと詰む これは複雑だ お前らには無理
386 :
デフォルトの名無しさん :2012/08/10(金) 18:10:52.41
ちょっと数学寄りの話になるが、 楕円体と平面の接触点(最近傍点)を求めたい。 そこで、楕円体を1/半径でスケーリングして、半径1の球に変換し、 接触点を求める関数を作った。 void get_closest_point_plane_ellipsoid( const plane_t& plane0, const cvector3_t& ellipsoid1_position, const rmatrix3x3_t& ellipsoid1_axis, const cvector3_t& ellipsoid1_radius, cvector3_t& closest_p, float_t& depth){ const rmatrix3x3_t to_cube_scale = scaling< 3 >( rcp( ellipsoid1_radius ) ); const rmatrix3x3_t to_world_scale = scaling< 3 >( ellipsoid1_radius ); const rmatrix3x3_t to_cube_space = mul( to_cube_scale, ellipsoid1_axis ); // ローカル座標空間に変換→立方体スケールに変換 const rmatrix3x3_t to_world_space = mul( transpose( ellipsoid1_axis ), to_world_scale ); // 非立方体スケールに変換→ワールド座標空間に変換 const cvector3_t plane_noraml_l = mul( to_cube_space, plane0.normal ); const cvector3_t closest_p_l = normalize( -plane_noraml_l ); closest_p = mul( to_world_space, closest_p_l ) + ellipsoid1_position; depth = dot_coord( plane0, closest_p );} でもこれがちゃんと動かない。コーディングミスではなくて考え方が間違っているんだと思うが、把握出来ない。 誰か俺でもわかるように、何が間違いか教えてくれないか?
お前がバカなだけだろw
やはり3Dゲームはモデリングが必須なんでしょうか。 うまく二次絵を使って作る方法等はあるのですか?
パッパラパッパーでも作ってろ
上,下,右,左,パンチ,キック の 押し下げ がそれぞれ U,D,R,L,P,K 上,下,右,左,パンチ,キック の 押し上げ がそれぞれ u,d,r,l,p,k std::tr1::regex g_hadouken( ".*D.*R.*d.*P.*" ); std::tr1::regex g_syouryuken( ".*R.*r.*D.*R.*P.*" ); std::tr1::regex g_tatumakisenpuukyaku( ".*D.*L.*d.*K.*" ); こんな感じで出来たよ。これは右側向いているときだけだけどね。
393 :
392 :2012/08/10(金) 20:45:50.38
あ、もちろん、技の間に別の技を挟んだりもできるよ。
タメだけはね、別でやったほうが良いね。 というのも、タメは無限の時間タメることが有りえるから、 過去の全ての入力に対してマッチングする必要でてくる。 別でカウントして、溜まったら、マッチング用のバッファに「溜まったよイベント」をプッシュして、 それ以降は上記と同じようにマッチングかけてもよいんだけど。
>>389 ゲームにもよる
・ファイナルファンタジータクティクス
・サガフロンティア2
なんかだとキャラクターは全部二次絵だぞ
3Dの板に二次絵を貼りつけてそれっぽくしてる
マップは3Dだけどそんなに緻密なモデルじゃない
FFTもSF2もカメラアングルが変わるからマップが3Dで作ってあるけど
カメラアングルが変わらないならマップも二次絵で可能
最初はパラッパラッパーみたいなのから作るのが妥当だろうね
あとスレ違い
>>395 たとえば三角タメの場合は、コマンド シーケンス全てを別にするのか、
それともタメ部分だけ別にして残りのシーケンスを正規表現に切り替えるのか?
398 :
397 :2012/08/10(金) 21:34:58.01
>>395 すまん、タメだけ別にしても良いんだけど、と言ってるな。
読みこぼしてた。
>>392 ところで、入力バッファにはどれくらい過去の入力から残しておくの?
さぁどうだろうね、コマンドの長さによるからね。
>>396 ありがとうございます。
調べてみます。
>>400 例えば
>>392 の3つのコマンド技しかなかったら、
どれくらいのサイズのバッファを用意する?
同時押しとかめんどくさそう 2F以内にズラシ押しなら同時にみなされて しかも技によっては1F目の判定を出しつつキャンセルとかしないといけない
404 :
uy :2012/08/10(金) 22:20:36.10
>>392 それって、入力データはちゃんと整形してあんの?
たとえば
↓→A って技の場合に
プレイヤーが必ずしも
↓↓↓↓「下ボタン押しあがり」→→→→「右ボタン押しあがり」A
と入力するとは限らず
もし整形してないなら↓のデータは動かないんじゃないの?
↓↓↓↓↓→→「下ボタン押しあがり」→→→A
↓↓↓↓↓→→→→→「下ボタン押しあがり」「右ボタン押しあがり」A
これは普通のカクゲーならこれでも普通に動くけど?
やっぱり2chだとこのくらいが限界かな?
405 :
uy :2012/08/10(金) 22:23:22.49
ていうか
↓→Pの技は普通に入力したらさ
↓↓↓↓↓↓↓↓→↓→↓→↓→↓→↓→↓→→→→→→→Pになるんだよ
意味わかる?
君の正規表現にはゴミデータ削除がはいってません やり直しです
>>391 ソースを晒さない奴には教えない
>>404 正規表現読めないの?
>>392 を良く見てみ。全ての押し上がりを拾っては無いでしょ。
>↓↓↓↓↓↓↓↓→↓→↓→↓→↓→↓→↓→→→→→→→Pになるんだよ
俺のやり方だと押し下がりと押し上がりを拾ってるのでこんな無様なことにならないんだけど。
407 :
uy :2012/08/10(金) 22:32:43.81
>>406 ああ
>↓↓↓↓↓→→「下ボタン押しあがり」→→→A
これだけが動くケースかwww
どちらにしろ君の正規表現だと
↓↓↓↓↓→→→→→「下ボタン押しあがり」「右ボタン押しあがり」A
↓↓↓↓「下ボタン押しあがり」→→→→「右ボタン押しあがり」A
この2パターンは動かないんだろ?
ゴミじゃん
あと
>↓↓↓↓↓↓↓↓→↓→↓→↓→↓→↓→↓→→→→→→→P
これは別にwwwwこういうデータをそのまま入れるって意味ではなくプレイヤーのキー投下の様子のことだぞ?
>↓↓↓↓↓→→→→→「下ボタン押しあがり」「右ボタン押しあがり」A >↓↓↓↓「下ボタン押しあがり」→→→→「右ボタン押しあがり」A これは待ったく別のコマンドじゃねーか。 例えば昇竜拳は 623P だけど、これを6323Pとすると、出ないよ。 右を入力した後、一度ニュートラルに戻す必要がある。
409 :
uy :2012/08/10(金) 22:38:16.07
ゴミ!!!!!!!!!!!!!! つくりましたー(キリッ)! とかいって 1パターンしか入力うごかねーのかよ!!!!! はーまじで携帯でスレチェックしてわざわざpc起動した意味ありませんでしたね!! がっかりしたわ!! 正規表現で作るなら 元々カクゲーの入力用なんてものを作るには想定されていないゆえに機能の足りていない正規表現を ある程度は使いこなせないとお話にならないって覚えておいたほうがいいよ あとで詰むよ? ちなみ俺は、貯めも↓↓Pとかも一通り作れて あとは正規表現は半自動生成して簡易コマンド化しちゃえば完成ってところ もうやだこのスレこの板
410 :
uy :2012/08/10(金) 22:41:47.42
>>408 今時バーチャファイターでかたられても困る・・・・しかも、別のコマンドじゃないから
同じコマンドだよそれ
そんな事も分からないの?
カクゲーやった事ある?
これだけは言っておくけど正規表現で描くなら数パターンにマッチさせるように書かなきゃ意味ねーわ
".*D.*R.*d.*P.*" ← これしかかけないならIFで書いたほうがマシ
あとさww
「d.*」 ← これ何?wwww
「キーDownボタンあがりましたー!」って情報って1回だけの発行じゃないの?wwww 何度も発行しちゃってんの?Wwww
意味不明なんだけどwww
昇竜拳もまともに再現できないような実装でこの先やっていきたいなら勝手にどうぞ。
>>408 (SF4Wikiから)
しゃがみ昇龍
今作では昇龍コマンドの6(1P側右)が3(1P側右下)で代用できるため、しゃがみ状態から昇龍が出せます。
入力方法は 「323+P」 。
このため、中足から昇龍にコンボしやすくなっている。
33(353)のバーチャ式入力でも出せる?ようだ。
123212321・・・と入力してパンチボタンを押して出すことも可能
対空や、ブランカのローリングを落とすときなどに非常に使える
レバーだけ入力しておいて、上記の技が見えたときや、相手が飛び込んできたらパンチボタンを押す。
見た目は、ただしゃがんでるだけなのがポイント
413 :
uy :2012/08/10(金) 22:43:26.55
>>411 正規表現で厳しいものが今後出てくるのは把握してるよ
でも別にそういうコマンドに関してだけはIFに分解してかけばいい
かけるように設計すればいいだけ
414 :
uy :2012/08/10(金) 22:45:39.90
また俺の勝ち、圧勝 もうやだこのスレこの板
415 :
デフォルトの名無しさん :2012/08/10(金) 22:45:44.24
>>413 こういう問題にIFなんか使うなよダサいな
>あとさww >「d.*」 ← これ何?wwww 正規表現読めないの?それとも「 . 」を見落とした?
417 :
uy :2012/08/10(金) 22:46:54.65
まさかswitch(笑)とかいう気じゃないよな
418 :
uy :2012/08/10(金) 22:48:48.54
>>416 俺が聞いてるのはそこじゃないよ
君の設計では
「キーDownボタンあがりましたー!」って情報を何度も発行してんのか?って話だ
俺は、ヒントになってしまうけど、1回しか発行してないから・・・さ
d.*
じゃなくてこれは
d? になってるよ
?にしておけば、キーのアップがこのタイミングでされてもいいしされなくてもよくなって
>>412 このあたりもちゃんと動く
それだと 23P でも発動してしまうから駄目だろ。
>>412 これどういう正規表現になるんだ
(3|6|9).*(1|2|4|5|7|8).*(3).*P
か?
421 :
uy :2012/08/10(金) 22:58:36.79
>>419 ?
「キーDownボタンあがりましたー!」って情報を何度も発行してんの?
それを聴きたい 間違ってそうだから 答えられない?
そうだよ、それ間違ってるよ
>>420 ゴミデータの読み飛ばしだろ
.*ばっかりやってないでこの辺の正規表現使えと
{0,2}
>>392 > std::tr1::regex g_hadouken( ".*D.*R.*d.*P.*" );
これって、23214P でも技が発動してしまわないか?
(これと左右逆のg_tatumakisenpuukyaku もだけど)
あと、どれもコマンド全体の最後に ".*" を拾ってるのは何故?
毎フレームでマッチングテストをするのなら、
ある時点の入力から、現時点の最終入力までテストすればいいのだから、
その後の未来に何が入力されるかは、技発動には関係ないような気がする。
格ゲーのコマンド処理が意外と面倒だということだけはわかった
424 :
uy :2012/08/10(金) 23:00:09.70
つうか別に1個の正規表現でやらずに 複数個のRegexpあってもいいのに、もう白旗かな? また勝ってしまった・・・ もうやだこのスレこの板
425 :
uy :2012/08/10(金) 23:01:53.54
とりあえず 1 正規表現はこんな事に使う道具ではない事 2 作っていく途中に正規表現じゃ判定しきれない状況が来ることの想定 3 詳しくない子はあきらめろ
やーだお
>>422 リバーサルの入力猶予があるゲームは余韻も受け入れる
KOFとかは押しっぱなしでも受け入れるからリバーサルが簡単
ギルティギアみたいなシビアなゲームだと余韻はカットするから押し離しの2Fしか猶予がなくてリバーサルが難しい
>>427 あ、なるほどね。
最後に ".*" を拾ってる理由は納得した。
>これって、23214P でも技が発動してしまわないか? それは確かに不味い。 >あと、どれもコマンド全体の最後に ".*" を拾ってるのは何故? >毎フレームでマッチングテストをするのなら、 >ある時点の入力から、現時点の最終入力までテストすればいいのだから、 >その後の未来に何が入力されるかは、技発動には関係ないような気がする。 1フレーム中に素早く複数キーが入力されることがあるので、 入力フレームの最後がパンチになっているとは限らない。
自演乙
>>249 それって前方一致でテストすればいいだけでは?
まぁ最後に ".*" を拾っては駄目な理由は何も無いけど
>これって、23214P でも技が発動してしまわないか? std::tr1::regex g_hadouken( ".*D.*R[^r]*d.*Z.*" ); 改良しといた。
>>432 それって、235P でも発動してしまわないか?
434 :
デフォルトの名無しさん :2012/08/10(金) 23:22:32.38
そのまえにめちゃくちゃすぎる Rの直後に rて 1フレーム後かよと
435 :
uy :2012/08/10(金) 23:27:31.41
すいませんでした ごめんなさい もうきません
>>392 > std::tr1::regex g_syouryuken( ".*R.*r.*D.*R.*P.*" );
「R.*r.*D」は右に入れたレバーを下に倒した時の
キーシーケンスを意図しているのだと思うけど、
実行環境が r を D よりも先に拾うとは限らないと思う。
同フレーム内で押し上げよりも押し下げを先に拾う環境で
RDrRP と入力されるとマッチングしない。
>>433 無理。3から5に至るためには、下と右の二つのキーを押し上げる必要があるが、
このとき、右より下を、ほんの少しでも早く押し上げないとマッチングしない。
だから、どうやっても6状態が一瞬入る。
>>434 正規表現が読めない人ですか?
タッチパネルやモーションセンサーの時代なのに そんな縄文時代の入力デバイスでのやり方を議論する必要があるのか
>>436 >同フレーム内で押し上げよりも押し下げを先に拾う環境で
どこの糞環境のことか知らんが、
WindowsでDirectInputを使っている限り、そんなことはありえない。
ハードウェア割り込みで人間の分解能を超えた無茶苦茶高い精度で入ってくる。
しょぼい環境で自前でポーリングでもしていたらその限りではないが。
>>437 じゃあ 2325P なら?
2 で D
3 で R
2 で [^r]
5 で d
マッチするんじゃないか?
441 :
440 :2012/08/10(金) 23:50:41.31
>>440 君は正規表現が読めないなら、黙っていればよい。
> 2 で [^r]
これはおかしい。[^r]は「r以外」って意味だ。not r。Rの押し上げ以外。
つまり、Rを放すなって意味だ。だから、「2」にはならない。
444 :
442 :2012/08/10(金) 23:52:53.36
かぶった
445 :
デフォルトの名無しさん :2012/08/10(金) 23:57:31.52
俺的にはdが連続してデータ入るのがよくわからないけどどうなってんのそこ? 押されてないキーのデータも全部ごちゃ混ぜな中から判定してんの? 正規表現リテラルじゃなくてデータのほうがみたいわ
>>443 ゲームパッドの内部処理によっては内部でそういうことが起こりうるだろうけど、
どちらにしても人間の分解能をはるかに超えた世界での出来事なので問題ないわな。
もし人間の認知できるレベルで入力順序がひっくり返る糞ゲームパッドがあったとしても、
どう考えてもそのコントローラが悪いしな。
>>445 糞フォントのせいで「 . 」が潰れて見えて無いんじゃないの?
あえて全角で書くと、d.* だよ。dは連続しない。
しかし、正規表現でコマンドを登録するのも、 このレベルになってくると簡単・直感的とはやや言いがたくなるね。 もう少し長いコマンドや複雑なコマンドだと、 "236P" から ".*D.*R[^r]*d.*Z.*" に変換するような トランスレーターが必要にならないかな。 コマンドを考えるプランナーは、たぶん [^r]* の必要性には気づかないよ。
それなら入力のほうを揃えたほうが早いな。 つまり、斜め入力を検出したら、上下左右の入力はUPされるようにする。 そんで、斜めがDOWNする。
トランスレータくらいいいだろ ほとんどのデータはGUIで作ってバイナリ変換してファイルにするし
ステートマシン以外の実装方法が判らないから、ずいぶんハッテンしたなww 正規表現じゃなくても判りやすいパターンマッチングの処理を自作するのもアリだよ。 ゲーム用の表現がどうしても欲しくなるだろうからね。 正規表現も便利だから勉強するのはアリ。 入力が1フレーム16bitとして5分間続いたとして2バイト*60フレーム*60(秒)*5 で36000バイト。36KB。 いまじゃ大した量じゃない。 溜め対策含めても1分も履歴とりゃ十分だな。
いや、正規表現、結構重たいから。
もしかしてワンダースワンで開発されてらっしゃる?
正規表現って結局オートマンだろ 最近のPCならほとんど問題ないと思うが
456 :
uy :2012/08/11(土) 08:31:59.91
フレーム単位で技磨いてる格ゲプレイヤーがタッパネルは想像つかない USBポートじゃ遅いとか言い始める連中 コントローラーでプレイしたがる層は残ると思う それにこの部分は格ゲーだけじゃなくキャラがコマンド技受け付けるゲームなら全てで使えるはず
タッチパネルをなぞるように操作する格ゲが(新規ユーザに)流行るかもしれないし、 先のことは分からんなぁ。しばらくはコントローラが主流だと思うけど。 一部を浮き上がらせるとか、タッチパネルの操作性を改善する技術も出てきてるしそっちにも期待したい
オートマン
>>451 1分の履歴を取る理由が分からない。
コマンド入力を調べるためなら多すぎるし、
リプレイのための履歴なら少なすぎる。
コマンド受付時間が最長の時間内に入力可能な最大入力数分だけで十分だと思う。
それを超えるバッファを用意しても、仕様的に発動できないんだから
コマンドのマッチングには不要。
あと、別人だろうけどリバース時の猶予とか言ってるレスもあるが、
コマンド完成から実際に発動可能体勢となるまでの猶予時間を設定しておけば良いだけの話。
その猶予時間中の(どうせ捨てる)入力まで正規表現で表現する必要性が見当たらない。
リバースじゃなかった、リバーサルね
461 :
デフォルトの名無しさん :2012/08/11(土) 13:47:46.43
正規表現はこんなことに使う道具ではないから 「とりあえず動く実装」ってレベルだろ ifをかかずこれだけで仕様満たせたんならそれは運が良かっただけ
こんなところに使う道具いではないwwwwwwwwwwwわろすwwwwwwwwwwwwwww そうやって可能性自分で潰していく雑魚PGに未来はないよwwwwwwwwwwww 使えるところで使うのが訓練されたPGだからwwwwwwwwwwww
>>462 カッターで野菜を切る、みたいな感じだな
>>463 それでいいんだよ
包丁がないから新しく買いに行くのが駄目なPG
とりあえず切れればそれでいいのがよいPG
買いに行くならまだ良いが、新しく包丁を作り始めたらたちが悪い
うんこ
正規表現は記号列の集合を指定するための記法だから そういう意味では今回のようなケースに向いていてもおかしくない ただ、入力に時間制限とかの実現が必要だから、 ちょっと変種みたいなものになっちゃう
時間制限も正規表現で表現可能だが?
ばぶー
>>468 時間制限も正規表現で表現可能だとしても、
その実装例をこのスレに誰もレスしていない。
だから、適切なのか、もっと良い方法があるのか、議論できない。
俺自身は、時間制限付きのコマンドを正規表現で表現するのは、
普通のコマンド以上に複雑になると思ってる。
どうやって表現するんだろ。
ある同じ入力が来ても、直近の入力からの経過時間によって、
それぞれ別の記号とするのだろうか。
それとも正規表現自体を拡張するのだろうか。
フレーム開始イベントをFとして、 P([^F]*F){0,10}[^F]*K とかすればよいだろ。頭悪すぎ。
472 :
uy :2012/08/11(土) 15:25:39.67
>>462 可能性とかそういう問題じゃない
俺が言いたい事は
1 正規表現はこれを行う事を想定しては作られていない
2 限界が来るから
3 インタプリタ入れることも覚悟しろよ
ってだけ
既に貯め技については正規表現で実装できなくなっちゃってるんだろ?
ゴミじゃん
>>471 すまん、俺の頭がうまく回らず、よく分からない。
>>392 の例にある
std::tr1::regex g_syouryuken( ".*R.*r.*D.*R.*P.*" );
これが 12 フレーム以内に入力しなければ発動しないとして、
この元の表現を
>>471 式に変えるとどうなるのか示してくれないか。
>>472 溜めも正規表現できるが?
少し上のレスみても理解できないならお前は全くセンスないからこの道は諦めたほうがいい
>>473 コマンド全体で12フレームということなら、後から別でハジけばよいだろ。
そこは別に複雑にならないんだから。
だから、全体の制限時間をどうやって正規表現で表現するのか分からなかった。 コマンド入力のマッチング テストで必要となる制限時間って、他に何があるの?
↓ > 3Fいないに\ > 3Fいないに→ > 3FいないにP 合計で9Fみたいな感じ
コマンド全体ではなく、コマンド中のそれぞれの入力に対して、
そのコマンドの一部として認識する制限時間を設ける意図が分からない。
>>478 だと、永井愛だしゃがんでいて、それから波動拳コマンドを入力しても、
技が発動しないことになってしまう。
480 :
479 :2012/08/11(土) 16:33:43.06
あぁ、でもコマンド全体で制限時間を設けても、 コマンドの最初の入力と次の入力の間はその制限時間から外さないとマズいか
>>479 するだろカス
22222222222222222222222222222233666P
なら最後には同県入ってるから問題ない
482 :
uy :2012/08/11(土) 16:39:44.00
>>472 まさか正規表現の他にカウンター用意するとかいう話?
いやいやいや。。
それで実装できる気になられてもこまる
もう少し考えろ
俺は昨日の時点で終わってるから高みの見物にきてるだけだよ
自演乙
484 :
uy :2012/08/11(土) 16:44:49.02
つか時間制限ってなんだよw ばか? FILOバッファ作れカス 5000くらいあれば十分だろ ゲーム仕様で一番長い貯め技にあわせろカス
485 :
479 :2012/08/11(土) 16:45:31.07
>>481 そういうことか。
話がかみ合わない原因が分かった。
君は、レバーを下に入れ続ければ 2 がバッファにたまり続けるシステムを意図している。
俺は、レバーを下に入れ続けても、1個しか 2 がバッファに入らないシステムを意図していた。
昨日から今までずっとそのつもりでレスしてきて、
途中でどうもよく分からない箇所があったが、このせいか・・・
486 :
uy :2012/08/11(土) 16:47:25.92
コマンド同士の接点についての時間制限をいってるなら キーがなにも押されていない状態が20フレームくらい連続したらバッファクリアでいいだろカスが そんなこともわからないの?
487 :
uy :2012/08/11(土) 16:49:55.29
まだ作れないの? もう土曜日おわりだよ?
正規表現使わなくても技対応入力テーブルから全パターンマッチングで作れるでFAでいいな?
489 :
uy :2012/08/11(土) 17:28:28.71
だろうね 正規表現にしてみても全パターンかくことになる その部分は多分未来永劫変わらないだろう(まともに作っていればね) 正規表現でやればコード短く簡易コマンド入力解読機構が作れるだけで そのかわり複雑 別になんでもいい
>>488 キャンセル技やタメなども含める場合、
1. 技対応入力テーブルはどのような表現で作るか
2. パターンマッチングはどのようにやるか
という問題があって、それを解決する一例が正規表現だと思う。
だから、正規表現使わなくてもと言うからには、
1 と 2 のそれぞれの問題について正規表現以外でどう対処するかを示し、
それが正規表現に比べて有利な点がいくつか無ければ、
とてもじゃないが FA にはならないと思う。
491 :
uy :2012/08/11(土) 17:31:50.67
ああ違うな 自作言語作ってコマンドから技正規表現リテラルを自動生成 結局 236Pにマッチさせたいなら 何らかのメソッドに236Pと引数を渡す 別にその中身とか正規表現だろうが違おうが知ったことじゃない 早く作れるものが正義
492 :
uy :2012/08/11(土) 17:36:52.56
たとえば P PP PPP で先行入力を受け取って それぞれ初動から違う技として発動するなら IFじゃないとかけない
。。
494 :
uy :2012/08/11(土) 17:44:01.21
あ おれはかけるけど 上がってるソースみるとおまえ等には無理だよね
495 :
デフォルトの名無しさん :2012/08/11(土) 17:49:58.00
ソウルキャリバーで実際にそういう感じの技ある AbAAAA っみたいな入力で Aは通常攻撃 Bはキック(bというのはかなり短い入力という意味) これで 素早くAb押した後に AAAAで AやBの攻撃は動作せずに別の技になる さあ正規表現でやろうとすると最初からやり直しだ 大丈夫?
496 :
uy :2012/08/11(土) 17:51:59.55
俺はこれも全部想定して最初からやってるから回避策もわかってるけどおまえ等には無理
>>490 68000の12Mhzとかで動いてたスト2とかがそんなクソ重い処理してると思ってんのか。
>>497 そういう事を言ってるのではなくて、今回の件に限らず一般的に
例示も無く検証も無いままで FA というのはおかしくないか、という事。
おかしくないよ みんな好き勝手言ってるだけなんだから
>君は、レバーを下に入れ続ければ 2 がバッファにたまり続けるシステムを意図している。 >俺は、レバーを下に入れ続けても、1個しか 2 がバッファに入らないシステムを意図していた。 前者はありえないでしょう。 一フレーム内で複数の操作を素早くすると拾えなさそう。
501 :
uy :2012/08/11(土) 19:54:41.41
だから何度もいってるけど正規表現はこういうことに使う道具じゃないからね もしまともに動くシステム作れたらそれはハッキングといって差し支えない これからも問題や仕様追加のたびに正規表現とにらめっことかさ 詰むからな? 作った奴しかメンテできない 正規表現で作るのはあくまで趣味レベルのはりぼて入力機構
でもさ、if文とかで入力バッファをコマンド解析するとするでしょ。 そしたらまず、コマンドの最初に該当するものをバッファの中から探すわけじゃない。 擬似コードで書けば、find( input_buffer, "A" ); とかになるでしょ。 だったら別に、find( input_buffer, "AB" ); とか2文字になっても良いし、 findが正規表現を受け付けるなら、正規表現で検索しても良いじゃない。 君は何か正規表現を特別なものと考えているようだけど、 要はただの検索なわけだし。検索はありふれた操作だし、 そこに正規表現を使ったからといって、べつに特別なことじゃないよ。
503 :
uy :2012/08/11(土) 20:31:20.91
違うよ IFでやる場合はバッファそのものを加工しながらためていく 何も考えずにpushしていかない 最初に→が押されたら →から派生する次の技のボタンが押された時にのみpushする ボタン上下左右ABCDとあるとすれば、8個のツリー構造があるイメージ コマンドを入力していくにしたがってそのツリー構造を辿っていく
そんなバカなやり方はねーなw
正規表現をどう使おうと使う人間の自由。 使い方が決まっていてそれ以外しちゃダメってのはあまりにも視野が狭すぎる。 アホな使い方しているならともかく、目的を達成するために手元にある道具を使うのは普通。 なんでもかんでも否定するケツの青いガキは、口じゃなくて手を動かせ。
506 :
uy :2012/08/11(土) 20:42:09.47
本当のところいまレスみて1分で適当に考えて書いただけだけど よく考えてみるとそっちのほうが完璧だな 正規表現()
>>504 それほど馬鹿げた方法とは思えない。
状態A --> 状態B --> 状態C --> ・・・
とあって、最初に→が押されたら状態Aになって、
その状態Aの時に次の「正しい入力」があれば状態Bに遷移して、
正しくない入力なら状態Aのまま。
次に状態Bの時に・・・
で、制限時間内にゴール状態にたどり着けば技発動。
たどり着けなければ最初の状態Aに戻る。
というのを、IF 文で実現する方法もあるし、
グラフのノードをクラスで表す方法もあるし、
他の方法もある、という事だと思う。
技毎に独立した別々のグラフを構築しても良いし、
全技を合成して共通のグラフを構築しても良いが、
アッパーキャンセル真空波動拳のつもりが普通の波動拳になってしまわないためには、
後者の方が対処が楽だな。
>>507 >で、制限時間内にゴール状態にたどり着けば技発動。
>たどり着けなければ最初の状態Aに戻る。
それだとABACってコマンドがあったとして、
ABABACって入力がきても受け付けなくなるからこまる。
そういうのが面倒だから正規表現を使おうって話になったのさ。
>>507 それはおかしい
46K
236P
て技があったときに
後ろに一瞬下がろうと思って4押したけど相手の隙に気付いて236P出そうとしたときに不発になる
なぜなら最初に4が押されたときに状態Aとやらになってしまうから
それで格ゲー作ったなら途中でそういう現象に気付くと思うんだけど
実際気づかなかった?
なるほど
俺の勘違いだった。
>>507 は無かったことにして、話を進めてくれ。
512 :
uy :2012/08/11(土) 21:29:21.22
どう考えても正規表現よりいいのにな そもそも他のカクゲーと入力の癖を同じにする意味はない 俺はソースが綺麗ならいいや お前らが2日間正規表現に費やした時間 <<越えられない壁<< 俺が飯食いながら1分で考えたレス
>>507 の方法でも、コマンド解析を開始する位置を一つずつずらしながら
何回もマッチングすれば出来なくも無いけど、
でもそれって正規表現検索ライブラリが内部でやってることと同じだよな。
形式的定義から離れて拡張された現代の正規表現は、 強力すぎて対応するDFAに変形できないので NFAに近いマッチングを試みるしか無いw
昔の非力なCPUでも問題なく動いてたコマンド入力方法をいまさら変える意味はないよな
昔の非力なCPUではどうやって実現してた?
条件分岐とフラグで。って見てきたように書いても実は見てないがw
元々は、条件分岐をずらーっと並べるよりも 良さそうな方法がないのか、という話じゃないの
古代人はコマンドハードコートしてたんかよ
最初はな。 数が増えてきたら、正規表現みたいな感じのマッチングができるようなのを書いてただろうけど。 テーブルとチェック関数で毎フレーム総当り。 キャラはせいぜい6人もでてこないからその程度だろう。
キャラの数なんてたかが知れてるから 何とかif文でも頑張れるという辺りが実情なのかな
>>507 の案も技ごとに状態を持つならありだと思うけどね
それなら直感でも分かりやすい
技い:236P
技ろ:63214P
技は:214K
技に:236236P
ってあったときに、まず2が押されたら
技い、は、に、が状態Aになる。
次に3が押されたら、技い、に、が状態Bになって、
技は、の状態はニュートラルに戻る
次に6が押されたら、技い、に、は状態Cになるが
技ろ、が状態Aになる
次にPが押されたら、技い、が発動
という具合だ
実装ではキャラごとに技データをコマンドのまま保存
プログラムではそれを構造体配列に突っ込んで毎フレームforとかで回して入力と状態をチェック
>>523 だからその状態機械方式は正規表現の劣化実装と何が違うんだよ
正規表現の実装を知らないから仕方ない
たんなるパターンマッチングを正規表現というならもはやif分ですら正規表現
それは違う
実装を知らないってのは実装方法ってことか? それとも実装されていることを知らないってことか? なにいってんのかよく判らない。
>>530 話の流れわかってないってことはアレだろうな
モルピグの次は格ゲーかよ お前らが作ろうとしてるゲームってなんでことごとく主流から外れてんの
主流から外れたゲームは、どうしても数が少なくて自分に合うゲームがなかなか見つからないからじゃ あと主流から外れたのに生き残るゲームってこだわりの強いユーザが多いよね
534 :
甘酒 :2012/08/13(月) 08:06:27.37
こういうスレを待っていた。
ところで
>>1 は何の言語使ってる?
HSPだよ
537 :
デフォルトの名無しさん :2012/08/13(月) 09:07:55.73
>>536 あ、ごめん解らないアレなひとだった?君の心を傷つけちゃったねすまない
大丈夫だよ君みたいなカスも日本では受け入れてくれるからね
競争激しい国だったら路頭に迷って野垂れ死にだけどな
539 :
uy :2012/08/13(月) 11:25:30.99
どうせ俺が出したアイデアだから必死に否定してるだけだろ
あんまり
>>503 の設計叩いてる奴の事を真に受けない方がいい
ゴミデータの中から正しいものを見つけ出そうとする
正規表現で作る方が""異質""なのは言うまでもないから
だからお前らは2日間もバグ取りやなんやで時間くってるんだろww気づけww
俺は無茶な方法でもコード量少ないほうを選ぶから散々否定した挙句に正規表現でいくだろうけど
ツリー + IFでやる形のも後で実装したい
お前らは今回のネタを何の言語で作ってたの?
なんかstd・・・とかいう文字を見た気がするからC++でやってたのかもしれないけど
こういうプロトタイプ作成にはLL使ったほうが10倍幸せになれるよ
>>503 が言うトライを作る方法?
トライは一種のDFAだから、記述上は特殊な正規表現にあたるわけで
正規表現を否定するのにトライを肯定する意味はあるのかと
なんでこんなにギスギスするんだろう…
543 :
uy :2012/08/13(月) 12:13:36.75
>>541 >>385 いや、この時点で既に
そんで処理をまとめるなら正規表現を直で書くんじゃなくて
自言語か何かでラップして、正規表現をメタする形になるところまで分かったから
別にツリー+IFで書いたとしても、自言語からメタするデータが変わるだけで
ゲームロジック自体を記述していく部分にそこの内部実装は関係ない
で、そもそもメタするなら正規表現ではなく
後からデバッグしやすくする為に分解されていたほうが良いという考えがある
しかし、
>>508 の問題が残るので、
結局正規表現を使うuyであった。
545 :
uy :2012/08/13(月) 13:13:36.48
この程度のロジックも一瞬で思いつかないとかもうね
ABCDってコマンドがあったとき、 ABCBCDって入力を受理するのは、 if文ではしんどい。非決定性有限オートマトンだからね。
548 :
uy :2012/08/13(月) 13:54:05.52
ABCD っていう技があっても ABCBCD ← こういう技はないんだろ? だったら ABC の後の 「B」「C」の入力はスルーするんだよ で、Dが入力されたらバッファに詰む 無駄なデータはバッファに入れません
>>548 アホやな
ABCBCDで必殺技が出なくても
タイミング次第でABCのあとにBかCを通常攻撃で出す可能性があるだろ
それなのにスルーして入力バッファから除外したらバグじゃねーか
お前みたいなバグ生産機は迷惑だから業界から足洗ってくれ
550 :
uy :2012/08/13(月) 14:03:15.51
はぁ・・・ 知能低いな ABC まで入力したあとに 次の入力待ちうけフレーム数を 考えられないバカか お前の実装だと ABCまで入力した後で5秒くらい待機した後にDおすと技が出るのかよ しねヴぁ?
>>550 お前がしね
有効フレーム数なんざ調整でいくらでも変わる
お前のやり方だとまず間違いなくどこかにバグを仕込むことになるから早くチンコ切ってゲイバーに就職しろ
>>508 の問題が出てくるね。
本来、(AB)ABAC と解釈されるべきところが、
君のやり方だと、AB(AB)AC と解釈されるので、
コマンド入力の時間制限がおかしくなる。
ちゃんと入力したはずなのに、時間切れで発動しなくなる。
553 :
552 :2012/08/13(月) 14:09:47.01
御免間違った。結論は変わらないけどね。
>>508 の問題が出てくるね。
本来、(AB)ABAC と解釈されるべきところが、
君のやり方だと、ABA(BA)C と解釈されるので、
コマンド入力の時間制限がおかしくなる。
ちゃんと入力したはずなのに、時間切れで発動しなくなる。
554 :
uy :2012/08/13(月) 14:13:27.96
>>551 なんで1歩ずつ1歩ずつしか教えないと前に議論すすまねーんだよ
さっさと歩け
ハードコーディング前提でお話しちゃってる時点でありえない
初心者はさっさと「S」「I」「N」「E」
>>552 その括弧は何
AB って技と ABACって技か?
Aが矢印ではなく、攻撃ボタンだとするなら
まず「A」だけでひとつの分岐が終わって次の状態へ変化だよ?
555 :
デフォルトの名無しさん :2012/08/13(月) 14:15:17.64
>>550 カスやなぁ
uyのおっさんっていい年こいてそうだから、たぶんやったことあると思うんだけどストリートファイターってゲームのシリーズあるやろ?
あのゲームのゴウキはシュンゴクサツの間に通常技はさむぐらい余裕でできるぐらい入力猶予長いって常識なのよこの業界では
弱P弱P前弱Kの後に通常攻撃して強制キャンセルでシュンゴクサツぶっ放すぐらいは楽勝でできんのよこれが正しい入力システムな
だけどお前の腐った脳みそで必死に考えたごみ入力システムだとシュンゴクサツ入力中にほかの行動一切取れなくなるわけ
まじでゲーム業界やめてくれないかなおっさんあんた頭堅すぎるんだよ
そんなんでゲームリリースしたら稼働1日目でバグ発覚でコミュニティーサイトは大炎上して最悪基盤回収して大赤字になるんだけど?
おっさんそんときどうやって責任取るつもり?
ちなみにこんな複雑なコマンドでなくても、
>>508 の方式だと問題が起きる。
例えば、AB っていうとてつもなく簡単なコマンドがあったとしよう。
プレイヤーがAAB って入力する。
本来なら、(A)AB と解釈して欲しいところ。
ところが
>>508 のやり方だと、A(A)B と解釈されるので、
タイミングによっては時間切れになって発動しなかったりする。
結論 uyは痴呆症
558 :
uy :2012/08/13(月) 14:19:55.73
>>555 なんだこいつキメェな
老害は死ね
少し譲歩してABACだかにも対応させること前提で喋ってるけど
その辺りの入力の癖もゲーム仕様だからな?
はっきりいって俺は、しょうりゅうけんコマンドが
いつまでたってもコントーラーでは出せないからキーボードを練習してキーボードでもいけるようになった
普通(?)のの入力ロジックでは正しく技を出せない奴がいるのも事実
もし俺がカクゲー作る事があってもしょうりゅうけんコマンドはゲーム仕様に入れないか、だしやすいように調節する
560 :
uy :2012/08/13(月) 14:22:35.38
>>556 状態変化の意味すら分かっていないなら初心者死ね
ボタンが8個あるなら8個のツリー構造を書け
すべてのcase分岐を手書きで書け
いっとくけどこれは正規表現以上に細かいことをするためのツリー構造だからな?
何のためにソースコードをわざと冗長させて正規表現分解しようとしてるか
意味が分かってなさ杉
>>560 お前はそれ以前にスレの流れ理解してないんだが?
562 :
uy :2012/08/13(月) 14:24:38.07
リプリザルエンジェルくらって初心者死ね
>>554 頭が悪すぎて分からないか。
ABってコマンドがあったとするでしょ。
プレイヤーがAABって入力するでしょ。
君の方式だと、最初のAを読み取ったあと、状態が変わって、B待ちになる。
二回目のAは読み飛ばされる。
でもこの読み飛ばした二回目のAこそ、
本来プレイヤーがABコマンドとして意図して入力したAなんだよ。
AABを(A)ABと解釈するのと、A(A)Bと解釈するのでは、
コマンド受理までの時間が変わってくるので、マズい。
564 :
uy :2012/08/13(月) 14:36:30.74
>>563 おまえさぁひとつ聴きたいんだけど、
正規表現でそっこうで作るのと
ソースコードをわざと冗長させて正規表現分解して作るのでどっちが柔軟性高いと思ってるんだ?
面倒くさいという意見はいらない
返答になって無い件
コミュ力そうとう低いよなuy ぜんぜん話が通じない
567 :
デフォルトの名無しさん :2012/08/13(月) 14:44:18.53
まず、 AAという技と ABという技があるとする AABという入力があって、指定フレーム内なら A「A」B この真ん中の「A」は「B]に書き換えられて ABという技が発動する または 書きかえは行わずにAAという技を発動して「B」は読み捨てる どちらをだすようにも作れる この程度は自由自在に組めて当然だろ? 正規表現で、これらの優先順位をいじるのは並大抵の苦労ではない
568 :
uy :2012/08/13(月) 14:47:11.66
お前らの「そんなゲーム仕様にしない、そんなゲーム作らない」 プランナ「いいから言われたとおりに作れバカ」 お前ら「正規表現わけわかんね・・・」 こうなる
優先順位は正規表現の仕事じゃないでしょwww それはコマンド解析した後の話。 AA技中にAB技を禁止すれば、後者の動作になるし、 特に何もしなければ、AA技は即効でキャンセルされてAB技に移る。
昔の格ゲーで使われてたコマンド入力のソースを持ってる俺が勝ち組だな
571 :
デフォルトの名無しさん :2012/08/13(月) 14:53:50.63
ふう
572 :
uy :2012/08/13(月) 14:55:24.05
えええええええええええええええええぇぇぇぇぇぇぇ?? > 優先順位は正規表現の仕事じゃないでしょwww ぇぇぇぇぇぇええええええええええええええええええ?? コマンド解析 って正規表現のことだよねえwwwww?????? それじゃ こういう事になるの? switch(技) { case /正規表現/ if 優先順位 { 技A } else { 技B } } ゴミッカスじゃん・・・
>>523 だと
>>508 のような問題が起こる。
>技は、の状態がニュートラルに戻る
ここが問題。
違うボタンが押されたからといってニュートラルに戻すのではなく、
前の入力から次の入力までの時間制限をもうけて、
その時間内に次の入力が来なかった場合にニュートラルに戻せばよい。
この実装を
>>523 の例で説明すると、
技は、はニュートラルには戻らず3の次に1がくればそれが時間内であれば、技は、も状態Bに移行する。
いいから
>>563 の問題に答えろ。
コマンドは入力時間に制限があるんだから、最短一致でマッチングするのは当たり前。
プログラミング以前に、カクゲーの常識なわけ。
同じコマンドを入力に対して二通りに解釈できるなら、より時間が短くなるほうで判定する。
でなければ時間制限に対してフェアじゃない。
プレイヤーは、AABを、A(A)Bでなくて、(A)ABと解釈して欲しいわけ。そっちのが時間が短いから。
ところがお前の提案した
>>548 は、最長一致風。頭がおかしいとしか。
コマンドを出来るだけ長く解釈してどうする。コマンド入力に時間制限があるカクゲーなのに。
折角素早く入力したのに、わざわざ長いほうで取ってきて、タイムオーバーです、では、誰も納得しない。
クソゲー。わかる?
>>572 ある技の発動中に、別の技を発動してよいかどうかは、
コマンド解析とは別の話だろ。そんなことも分からないのかよ。
格ゲーなんだしそれぞれで作って対戦するとかw
脳の発育障害持ってる素人いじめんなって
ひひーん
uy… (´・ω・`)
お前らスト2式のコマンド一式入力後に技が発動する話ばかりしてるけど バーチャ式のコマンド入力はどうするの? 特に正規表現厨 ディレイやコマンド入力後の溜め技とかどうするの?
>>580 正規表現でなにが問題なんだ?
具体的に述べよ
>>581 正規表現はマッチしたら技が発動するだろ
ディレイも含めてマッチかけるの?
でもディレイがくるかどうかなんて分からないよね
ぶひひ (´・ω・`)
>>582 ディレイバージョンとそうでないバージョンでコマンドを二つに分ければいい
なんでこんな簡単なこともわからないのかな
585 :
uy :2012/08/13(月) 15:51:27.85
世界にこんだけカクゲーあって 実装方法などいくらでもあるのに 正規表現しか認めない子が必死必死 ちょっと書いてみてるけどいまこんな感じ # 第零 初動 if stack.empty? if key_down RIGHT stack << "6" joutai = 1 # switch joutai # 第一 状態 case 1 if key_down DOWN stack << "2" joutai = 2 # 第二 状態 case 2 if key_down A stack << "A" joutai = 3 # 技解読 if stack == "6A" 技6A発動 stack.clear
586 :
uy :2012/08/13(月) 15:53:09.55
分かった事は、 ちょっとしたカクゲーでも 状態の数は1キャラにつき数十個〜100くらいになるだろうってこと そしてそのすべての状態において、すべてのキーをチェックする為のIF文を書かなければならない事 メタしないと死ぬ
587 :
uy :2012/08/13(月) 15:56:29.37
正規表現でのため技の実装は 分岐1 /A{50,999}/ 分岐2 /A.*/ こんなのを2個用意して、分岐1のほうを先に判定すればためてるかそうでないかは分かる
>>584 2つ?
PKなら2つでいいんだろうけどPPPKは?
590 :
uy :2012/08/13(月) 16:08:37.17
>>588 なんでスルーされてるかわかってないようだな
AA という技がある前提で話しているのか
AA という技は存在しない前提で話してるのか曖昧なんだよお前の文章は コミュ障が
で、どっち
とりあえず
A
AA
AB
↓→A
↓↓A
この辺りの技の実装から考えたらよい
┐('〜`;)┌
>>584 ディレイ無しとディレイありを分けるってことは正規表現で一つにまとめるのが現実的でないってことだよな?
ディレイ記号を~とすると
PPKの場合
ディレイ無し:PPK
ディレイあり:PP~K、P~PK
の3種類あるけど、ディレイありの2つを1つにまとめて書けるならそもそもディレイ無しともまとめて書ける
言ってることが矛盾してる
矛盾がないのは
>>584 がPKのようなディレイが一ヶ所しか入らないような非常に限定された条件でしか考えられない精神構造だということになるが
そのディレイあるなしで分けるという考え方をPPPKにまで適用すると8パターンも正規表現を書かなければならない
これも現実的でないと思うんだけどこんな簡単なこと分からないほどヴァカなの?
ディレイだけならまだしもディレイに寸止めキャンセルとかどうする気だろう。
>>590 AAというコマンドがあろうがなかろうが、ABというコマンド解析には何の関係も無い。
なにせ、AAとAB、それぞれのコマンドは別々に解析されるのだから。
業AA発動中に業ABを発動して良いかどうかは、コマンド解析の後の話。
まだ問題が良くわかっていないようだな。
単純に、お前のやり方だと、AABという入力に対してABというコマンド解析をすると、
二回目のAを読み飛ばして、A(A)Bと解釈する。
しかし、実際にプレイヤーが期待しているのは、最初のAを読み飛ばした(A)ABという解釈だ。
A(A)B と (A)AB では、コマンド先頭から終了までの入力時間が変わる。
コマンド入力に制限時間がある、カクゲーでは致命的。
595 :
uy :2012/08/13(月) 16:29:35.96
>>591 結局質問の中身がなさ過ぎてそれすら答えられないのか?
初心者は死ね
596 :
uy :2012/08/13(月) 16:32:15.52
>>594 >AAというコマンドがあろうがなかろうが、ABというコマンド解析には何の関係も無い。
え、つまりお前、 AA っていう技さえない状態の
ただのABという技の実装方法を聞いてる段階かよ
マジでありえない
>しかし、実際にプレイヤーが期待しているのは、最初のAを読み飛ばした(A)ABという解釈だ。
お前がバカなんじゃないかな
ABという技の 最初のAを入力した時点でキャラは動いている
もう少し良く考えてから質問しろよバカ
何でこんなにバカなの? コマンドABの解析において、最初のAを読み飛ばすって意味って、分かるだろ、普通。
>え、つまりお前、 AA っていう技さえない状態の >ただのABという技の実装方法を聞いてる段階かよ >マジでありえない そのありえない状態で躓いているのがお前だ。残念だったな。 AABという入力に対して、ABというコマンドを解析するとき、 (A)ABと解釈するのと、A(A)Bと解釈するのでは、 コマンド先頭から後尾までの入力時間が変わってしまう。 プレイヤーが求めているのは前者の解釈。 お前のコードは後者の解釈。
そろそろ双方コード出して議論しような その方法を押してるってことは実際の実装で問題なかったんだろうし
600 :
uy :2012/08/13(月) 16:43:39.35
{n}の数字を、フレーム数だとしよう
A{5}A{5}B という入力があったとき
>>594 このバカは、最初のAを読み捨てて
A{5}「A{5}」「B」 これが欲しいといっている
しかし実際は
「A{5}」 A{5}B この最初のAが押された時点でキャラは動き始め Bを待っている状態である為
AAという技がなければ
A{5} 「A{5}」 B この2番目のAは呼び飛ばさなければならない
しかし? >> 594 このヴァカは 一度めの A{5} で既にキャラは動いているにもかかわらず
なぜか一度目のA{5}を読み捨てようとか言い始めている
その実装方法では
A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}B という入力があったら
「 A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5} 」 A{5}B これだけのデータを読み捨てる気なのだろうか? どんなゲームだよ
一体キャラはどんな動きをしてるんだよ
完全に
>>594 はバカであることが証明された
601 :
uy :2012/08/13(月) 16:45:34.59
>>597 ちょっとさぁ・・・
過去ログ読んでからレスしないか?
バッファには無駄データ入れないって言ってるのに
もしかして
>>594 このヴァカもバッファにまだ無駄データ入れるような設計で話すすめてんの?
正規表現じゃないっつってんのにバカだな
>>600 あまりにもお粗末なんで横から突っ込みいれとく
>A{5} 「A{5}」 B この2番目のAは呼び飛ばさなければならない
2番目読み飛ばしてどうするよ
AAが無いなら2番目来た時点でフレームカウンタクリアして
「A{5}」キャンセル 「A{5} B」コマンド成立
すべきだろうって話
物事の本質を理解してますか?
>>601 入力AABに対する、ABコマンドの解析において、
君の言うところの無駄なデータって、二回目のAだろ。
最初のAを読み取った段階でB待ちになるから、二回目のAはプッシュしないんだろ?
でも、そのお前の捨てた二回目のAこそ、
プレイヤーがABコマンドを実現するために意図的に入力した「A」だろ。
仮にABコマンドがAを入力してから5フレーム以内にBを入力しなければならないとして、
今、入力が A{1}A{5}B であったとき、
君の方法だと、二回目のAを捨てるので、AとBの間が6フレームになって、
本来発動するはずのコマンドABが発動しない。
>>601 そしてこれ
>A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}
タイムアウトして普通に入力確定されるから読み捨てにはならない
脳足りないのに脳内だけで完結して実際にコード組めないやつの典型例
いいからコード出して議論しろ
一度たりとも書いたことないコードなんか出せるわけないだろ
正規表現でこと足りるからコードなんか不要
uyはコード出てくるのを必死に待ってるんだよwww 自分で書けないからコピーして使うんだろwwww
609 :
uy :2012/08/13(月) 17:42:37.67
>最初のAを読み取った段階でB待ちになるから、二回目のAはプッシュしないんだろ? >でも、そのお前の捨てた二回目のAこそ、 >プレイヤーがABコマンドを実現するために意図的に入力した「A」だろ。 wwwww 本当に頭悪そうだな お前絶対プログラマになったことが間違ってる お前の文章は、まず矛盾して間違っている が、自信満々にレスするって事はお前の中ではつじつまがあっているんだろう つまり説明がドヘタなゴミPG そういう奴の相手は悪いけどしないことにしている >>A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5}A{5} >タイムアウトして普通に入力確定されるから読み捨てにはならない だからキャラはどういう動きするんだよ
610 :
uy :2012/08/13(月) 17:50:21.18
ツリー+IF + 状態推移 で書いてたけど
ちょっとこれは状態数が増えすぎる
コードジェネレータから作らないとやっていけない
正規表現で書いていても、
技の発動ロジックとは別に、キャラのグラフィックを変更していくために
状態推移は行うだろう
ただし正規表現内にそれは容易に組み込めないから、まったくの別の場所に書く事になる妥協した設計になる
ツリーで書けば、1箇所にかけるはずだけど、流石に面倒くさくなって飽きた
正規表現でいいよもう
正規表現で作れない仕様のゲームは作らないでいいじゃん
擬似コードは出した
>>585 これ
状態用の変数、フラグ用の変数、フレームカウント用の変数、とか色々必要になってくる、フレームカウント用の変数に関しては
全ボタン用必要になる可能性さえある
はい、正規表現でいいよー
Aがパンチならキャラはパンチ出すだろ パンチの入力確定後ディレイが30ならパンチ2発 そんなことも考えられないとはちょっと信じられないほどやばいよ
>>610 >>585 仕事したこと無いだろお前
仕様変更が常の業界でそんなの誰がメンテすんだよ
さすがは言語仕様が変わっただけでぶーたれるrubyユーザーだけある
613 :
uy :2012/08/13(月) 17:55:37.76
話しかけんな しかもディレイの話なんて誰もしてないのに ディレイの実装とかもっと後だろ お前が説明下手なのは数レスで分かった もういい お前らC++でプロトタイプ作っていたんですか? 流石にC++でプロトタイプ作成はありえないよ それともコードかかずに脳内設計ですか? マジでこういうのrubyの専売特許だからrubyやったほうがいいよ
この段階でディレイ考えていないとか設計なめてるだろ >お前らC++でプロトタイプ作っていたんですか? Yes
uy (´・ω・`)
616 :
uy :2012/08/13(月) 18:36:34.01
入力の話してると思ったらいきなりディレイの会話にシフトしてやがる コミュ障に話しかけられて最悪 ネットやンナ
ディレイは入力だろ
(´・ε・`) uyがいぷしろんなんて知るわけねー
つうかディレイをコマンド解析プロセスで考える時点で終わってる それはキャラクタの状態機械の仕事であってコマンド解析システムの仕事じゃない
>>612 >>510 のように言っていた uy が
>>539 のように
自分は結局は正規表現でやると言っているのだから、
仕事ではなく趣味レベルのはりぼて入力機構を想定してるのだろう
プログラムとは全く関係ない仕事についてると思うぞ
仕事でプログラマやってて、この一連のレスはない
こんなに自信満々にアホなこと言ってるuy君の作ったゲームに興味あるわ 自信満々なら当然だけどなんらかの成功経験があるってことだからゲームの一つや二つは作ってるはずだよね アホなことしか言わないのにちゃんとした形で成果物を出してるという謎に純粋に興味がある uy君、ちょっと君の代表作のタイトルさらしてみないか?
コマンド解析終わってから各入力間の入力間隔チェックするとか終わってるよね コマンドバッファには「入力が無かった」という入力情報も当然積むよ こうすることでボタン押下とディレイが同時に判定できる
>>623 ディレイはコマンド解析には含めないよ
「強パンチのモーション中に素早く強パンチ」で強パンチ>技Aのコンボが
「強パンチのモーション中にディレイをかけて強パンチ」で強パンチ>技Bのコンボが出るとする
コマンド解析機は入力を解析してただ単純に2回の強パンチコマンド(キーバッファではなく整数化されたコマンド)を送るだけ
一回目の強パンチコマンドを受け取ったキャラクタは強パンチのモーションを出す
@強パンチの途中あるフレームより前に再度強パンチのコマンドを受け取った場合キャラクタは技Aを出す
A強パンチの途中あるフレームより後に再度強パンチのコマンドを受け取った場合キャラクタは技Bを出す
こういうことね
ありがちな間違え方なんだが
「強パンチ→すぐ強パンチ」と
「強パンチ→ディレイして強パンチ」という二種類のコマンドが存在するとして作るとうまくいかない
コマンド解析はあくまでパターンマッチングだけが仕事であり
技をどのように派生させるかはすべてすべて整数変換済みコマンドを受け取ったキャラクタが担当する
いまどきの格ゲーはもれなくこういう作りになってる
低レベルの入力の正規化、コマンド解析、コマンド解釈はすべて別のレイヤが担当しています
φ(`>ω<´)メモルノダ
626 :
uy :2012/08/13(月) 19:52:41.78
>>621 上げる意味が見出せない
それに俺はそれほど複雑なものを書いてプログラム的に面白いゲームは作ろうとしていない
しかしそれではあまりにつまらないから根幹部分については、無駄に本気で設計してる
最高の設計の上にしょぼいゲームを作るのが趣味
自分の絵を見せる額縁がゲーム製作だと認識してる
おまえらとはちがう
628 :
uy :2012/08/13(月) 20:29:38.42
どうせお前らそんなに俺が上げるソースを望んでない
実際
>>344 にアップしたけど、24時間で1人しかDLしてないから消したわ
理解できるように、わざわざrubyの中の簡単な構文だけ選んで書いてやったのに
どうせお前らは技術的な会話をしてるフリがしたいだけ
技術そのものの本質に触れはじめると頭疲れるからかすぐに消えていくのを知ってる
じゃあ俺もフリだけしてるよ 本当は作れるけどね はーもういい
>>609 早く
>>603 に答えろよ。
こんな簡単なコマンドすらまともに解析できない解析エンジンに
何の意味があるよ。
入力AABに対する、コマンドABの解析において、 プレイヤーの意図する(A)ABと解釈せず、A(A)Bと解釈する、合理的な説明はまだですか?
うんこ
さっさとコード書くかバイナリでいいからうpしろよ 入力バッファぶち込んで解析できてたらそいつの主張が正解でいいだろ まさかここまで白熱しててだれもコード書いてないなんてこたないだろ?
そんなことよりはやりのソーシャルゲーについて語ろうぜ
636 :
デフォルトの名無しさん :2012/08/13(月) 22:05:51.99
629 二度と話しかけないでよね
>>634 ソーシャルゲーはプログラムレベルで論じるところはほとんどないだろ
あれはゲームのルール的な面がほとんど
ソーシャルゲー程度のプログラムを書けるSEって、実際にはどの程度居るんだ
俺はネットワークの基礎からわからん 標準C++と描画ライブラリがあれば作れるものしか作ったことないし
ただのケータイソーシャルゲーだったらCGI作れるくらいのレベルで作れる モルピグはそうはいかんが
MMORPGはまだ簡単な方で、FPSとかのリアルタイム性の高いもの方が難しい。
ソーシャルゲーで難しいのは、ゲーム部分というより ユーザーが増えた時のスケールアウトじゃないの (ネットワークゲーム全般に言える話ではあるだろうけど)
>リアルタイム性の高いもの方 高いもの方って何?
FPS>モルピグ>>>>>>ソーシャルゲー アメ公に日本人にSPF開発は無理だって言われたらしいな
FPSって書いてあるだろ。
書いてあるね。 ?
SPF50+
1コしかワザないとしてそれをどう解決するかを考えれば、あとは応用で解決するよ。 溜めと方向入力がある超必殺技の判定を1個考えるんだ。
はぁーー >167 名前:uy 投稿日:2012/08/10(金) 18:07 >rubyの正規表現の質問です >連続して10回以上...無限にマッチさせる構文ってないですか? >/6{9}6+/ >いまはこんな事をやっていますがもう少しスマートな書き方あれば教えて欲しいんですけど
650 :
uy :2012/08/14(火) 00:36:54.49
本当は、俺はゲームなんて 数年前に1個作ったのが唯一のゲーム、他は小さすぎるのでカウントしない それはC++かいた、だけどあんまり嬉しくないんだよね 俺はゲーム()を作る事なんて楽しくない、世界を作りたいだけ それを考えると世界を作れるのは絵と音とストーリーであり、プログラムなんてお飾りに見えてくる プログラムで何を作っても嬉しくない ゲームを作るのではなく、どう世界を作るかしか、今は考えてない 4,5年もプログラミングやってて、ゲーム1個しか作れていないことに別に後悔などない 世界を作れなかった練習作のゲームなんて、俺にとっては無いものと同じ 1位になるか、ドベになるかしか 俺にはないんだなって 夜の月夜にふとおもふ
口だけか
俺も久々になんか作ってみっかな ローグライクとか興味あったんだが意外と面倒で投げたんだよな リアルタイム3Dのが簡単だわ
絵も音楽もストーリーもプログラミングより難しいからuyには無理。 この中でストーリーは割りとどうにでもなる。最近は王道の方が好まれるので、むしろ王道で。 絵は今は3DCGがあるのでまだ何とか。 3DCGをトレースするなどすれば少なくともデッサンは壊れない。 難しいのは音楽。音楽理論そのものも難しいが、 まず耳がよくないとダメ。それからリズム感も必要。 どちらも天性のものなので、どうしようもない。 作るのにも大変時間がかかる。 楽器が演奏できるのなら良いが、打ち込みとなると、10倍手間がかかる。 ミキシングも非常に難しい。各パートのバランスは常に変化するから。 しかし、一番やってて楽しいのも音楽だったり。でも一番飯の種になりにくい。
音楽は著作権切れたクラシックでおk
656 :
uy :2012/08/14(火) 01:25:32.75
言いたい事は、ゲームのロジックやアルゴリズムに関しては 別に知ったかで喋ってないよって事 安心して鵜呑みにするがよい 俺様のゲ製作は順調に進んでいる 結局クオリティの高い作品を作るなら複数人での開発の方がいい でも複数人での開発になったら俺は間違いなくプログラム担当になる、 は? って感じじゃん だから俺は自分で絵を描くし音を作るしストーリーを作る あえて一人で作る理由は、ただやりたいからってだけ 俺はもう人間が嫌いになってしまった、嫌いな人間共からの評価などあまり考えない 自分が満足できるものが作っていけるかどうかがすべて 俺様はプログラミングの神
プログラミングに達成感が得られないタイプか。 向いてないよ。 仕事にはしないほうがいいな。
それでも世界を表現したいっていうなら、まず音楽をやることを俺は薦めるけどね。 人気シューティングゲームの東方も、音楽ありきで作成したらしいし。 絵やストーリーやゲーム性が狂っていても、笑って許せるが、 黒板を引っかく音は、誰しもが眉をひそめ、耐えられない。 それぐらい音楽は本能に根付いていて、その洗脳効果は高い。 だから、逆に、音楽さえ素晴らしければ、後がどうでも許されたりする。 不協和音は誰が聞いても不協和音だし、変なコード進行は誰が聞いても変なコード進行と、 正解不正解がハッキリしているにもかかわらず、 聞き分けられるだけの耳が無いことには修正不能だったりする、ある種のマジカルさもある。 一般に、人間が同時に聞き分けられる音は2音までだけど、和音は3音以上だからね。
世界なんて簡単に作れる printf("Hello World!");
660 :
uy :2012/08/14(火) 02:10:27.32
素材から作るっていうのは基本だろうけど 俺は気が触れている ソースコードは完璧にしないと落ち着かない 落ち着かないのでコーディング作業キリがつかないと絵の1枚すら描けない だから俺はゲームは自分が完璧に作れる範囲で設計し、ソースコードを完璧にした上での創作を選んだ 俺様の真の目的は厨2過ぎると自覚している、気持ちは既に決まっていた
当たり前だけど、何か作るとき、まずは一番の難所から挑戦する。それで無理だったら諦める。 かつての君にとって一番の難所はプログラミングだったんだろう。 絵やシナリオや音楽は、義務教育で結構な範囲をカバーするし、 少なくとも、それがどういうものなのか想像できるけど、 プログラミングはやったことなければ、それがどういうものなのか全く想像できない。 だから恐怖するし、ゲーム作るならまずプログラミングから片付けたくなるのは分かる。 しかし、実際にはプログラミングが一番簡単。難所の読みを誤ってるわけ。 軽視されがちだけど、一番難しいのは音楽。同人ゲー作成の最大の難所。 考えてみれば名作といわれるゲームは音楽も良いのが常だろ。 市販ゲームに限らず、洞窟物語にしろ東方にしろ、音楽へのこだわりがはんぱ無い。 洞窟物語なんか、自前の波形エディタとシーケンサまで用意して作りこんでる。 音楽はえてして後に回しがちなんだけど、それは誤り。 一番の難所だし、成功している同人ゲーは音楽から片付けてるのが多い。 同人ゲーは音楽がしょぼいから、ショボケーになるといっても良い。 絵やシナリオのしょぼさは音楽でカバーできるけど、逆は無理。 今のまま突き進んでも必ず音楽でつまずくよ。
>>655 だよな
あと自動でランダム作曲してくれるソフトも便利だな
確かベクター辺りにもあった気がする
プログラミングは簡単だから一人でも間に合う。エロゲーなんかだと、プログラマ一人なのは割と普通。 だからuyがいくらアホで作業が遅くても、ニートとしてのありったけの時間を投入すれば間に合う。 絵とシナリオは作業量が多いから、だいたい複数人でやってるのが普通。 一人でやるのはきついけど、ゲームのボリュームを落とすことで、なんとか減らせる。 出来上がったところまでで完成でよい。 音楽は一人でやってることが多いけど、それは才能があっての話。 プログラミングと違って耳のよさとリズム感という天性の才が必要だけど、 それは後から簡単に手に入るようなものでもない。 音楽理論そのものも、複雑怪奇でプログラミングより遥かに難しく、習得に時間がかかる。 しかも、音楽はシナリオを短くしたところで、シチュエーションに合わせて一通り必要になるので、 作業量を減らすのが難しい。最低でも喜怒哀楽+OP+EDで6曲は必要。 普通に曲を作るだけでも難しいのに、喜怒哀楽やOP感ED感を出すとなるとさらに難しい。 耳のよさとリズム感と、どこをどういじればどうなるのかという音楽理論を総動員しなければどうにもなら無い。 同人ゲー作りで音楽は本当に難所だよ。
>>662 試してみれば分かるが、自動作曲ソフトの吐き出す曲は聞いていられないクオリティー。
特にゲームの場合は、何回もループするので、余計に耐えられない。
自動作曲ソフトが吐き出したものを手直しするにしても、
どこがおかしいのか判断できるだけの耳と、
どう直せばよいのか分かるだけの音楽理論が必要。
絵のように練習したからといって上手にならないのが作曲の怖いところ。
絵は外注にだしてもある程度やり取りが発生するが、 音楽は割と丸投げしやすい。難所は放り投げるが吉。
>>664 試してみたから言ってるんだが30〜40吐き出せば使える曲の1つくらいある
完璧ではないが聴くに耐える曲は1つくらいできる
30〜40吐き出すのは面倒だか音楽理論も知らないフリーの音源はないという状態だとそれだけの作業で作れるのはありがたい
確かに良い曲ではないから最近は環境音でもいいかなと思ってる
街中の雑踏のシーン用なら雑踏をレコーダー持って歩けばいいし
森の中のシーン用なら近所の山でとってこれる
それでもボス戦ではやっぱり音楽欲しいから音楽理論なしでも作れるらしいACIDを検討中
667 :
uy :2012/08/14(火) 04:45:36.76
長文多すぎだろ 俺が個人でゲ製作はじめたのは何年も前 お前らとはちがう そして今後死ぬまでやっていく覚悟がある お前らとは覚悟がちがう
668 :
uy :2012/08/14(火) 05:02:50.46
俺は1日中ゲ製作する時もあれば ネトゲをし続ける1日もある お前らとは経験値も違う お前らとは目標の高さも違うしスキルレベルも違う つうか俺はゲームなんて作ってない 俺が作ってるのは1つのソースコードと世界だ 俺様の最終目標は、ゲームを大勢にプレイしてもらうことではない ある目標を達成するためのひとつが、ゲ製作であるだけで 毎日それだけをやっていられるほど暇でもない お前らとは格が違う
669 :
uy :2012/08/14(火) 05:12:16.84
お前らにこの背の荷は分からない お前らとはこの身に背負っているものが違う ガチでほとんどすべてのものを再利用できる設計と、 "そのつもり"なので、1年2年で終わる活動ではない 俺様はゲ製作とは別にプログラミングの神になろうともしている これは目標とはズレた、ただの自己満足 ソースコードに一切の妥協は入れない ゲームプログラミングを軽視するお前らとは違う
実を言うとuyはもうだめです。 突然こんなこと言ってごめんね。 でも本当です。 2、3日後にものすごく 激しい荒らしをやります。 それが終わりの合図です。 程なく長文の連投が来るので 気をつけて。 それがやんだら、少しだけ間をおいて 終わりがきます。
671 :
uy :2012/08/14(火) 05:35:24.75
おまえらとはちがう
ふっふっ
673 :
uy :2012/08/14(火) 06:13:14.79
うんこちんちん
TVはオワコン
なんでもいいから完成させるのです。それを繰り返せば いろんなモノが作れるようになるよ。
677 :
uy :2012/08/14(火) 12:17:41.91
時間があればrubyの実装ソースをすべて理解し mazhよりもrubyを理解し、その技術でruby界隈に対し全面戦争を行いたい プログラミングに達成感はないでも妥協するとはいってない OSも作るし言語も作るしゲーム、世界もつくる 俺様に妥協はない この調子で世界でもっとも優秀な技術者であり続けたい
678 :
uy :2012/08/14(火) 12:22:35.94
なんちゃってな
679 :
デフォルトの名無しさん :2012/08/14(火) 12:22:40.38
こんなスレで昼間っからくだ巻いてる時点で妥協だらけの人生だろwww
680 :
uy :2012/08/14(火) 12:26:10.18
681 :
uy :2012/08/14(火) 12:32:35.59
今日も俺様の手によってひとりの二次元キャラクターが誕生しそう 俺様はすべての二次元キャラクターを大事にする ぼくの考えたら最萌えキャラ()で何かをモデルにしたわけでもなく自分そのものをアウトプットしてしまったときに そのキャラクターのエロ絵を描いた時のどうしていいかわからなさをおまえ等は絶対知らない
それは正直に言うとすごい気持ち悪いレスだと思う
683 :
uy :2012/08/14(火) 12:46:30.30
音楽が重要だとかいうけど気のせいだからな 重要なものなど作り手によってかわる 俺様にとって重要なのはソースコード そしてキャラデザ 無名作家のただ一冊の同人誌で東方界隈を騒がしたさなえ21をおまえ等は知らない 絵だけでもこんな世界は作れる おまえ等にあれかける?
684 :
uy :2012/08/14(火) 12:47:17.25
集中する
ゆとり東方厨だったのかどうりで……ある意味納得したわ
俺も絵も音楽もプログラムも一人で作ってるけど ぐだぐだ言わずに作品どんどん作ったほうがいいよ 口だけじゃ何も始まらないから
(´・ω・`)
(´・ω・`)…
689 :
uy :2012/08/14(火) 14:56:12.31
えらそうな奴が多いな どうせ数年で飽きて創作やめる癖に上から目線キリッキリッだな 創作なんて別に特別なことではなく 普通に遊ぶし2CHネトゲもする それで時間が足りなくなるならそもそも才能がない
690 :
uy :2012/08/14(火) 15:02:14.72
背負っているもののサイズがFlote::INFINITY おまえ等ではこの荷を持てない
一番偉そうな上から目線だれかなぁ??
>それで時間が足りなくなるならそもそも才能がない おまえちゃんとした作品作れたこと無いって言ってたじゃねえか 自分で言っといて全然時間足りてねえだろwwwwwwwww
カッコつけたセリフが間違ってるとか恥ずかしすぎる
uy って何人いるの?
恥ずかしくて人に公開できないようなゴミしか作っていないuyがいっちょ前に語るスレですか?wwwwww 上から目線で語るならそれに見合う実績を示してくれないとwwwwwwwwww
>>694 ばか、一人に決まってんだろ
そんなこというと、「おれの名前を勝手に使ってる馬鹿がいる」とか
ぬかして、自分じゃない演技し始めるからやめれ
697 :
uy :2012/08/14(火) 17:50:16.01
どうせ数年で飽きて創作やめちゃうおまえ等には関係のない話 そんな覚悟で音楽がどうとか難易度とかゲ製作技術を語るなよ 創作してきた時間もおまえ等よりは長い そもそもゲーム以外をしばらく作ってただけ おまえ等は人間 俺は人知を超えた存在
(´・ω・`)
699 :
uy :2012/08/14(火) 17:53:47.42
超一級のアルゴリズムで書いて ゲームロジックに条件分岐やループが存在しないパズルゲープログラムもあるが おまえ等には見せない 創作意欲の「色」が違う
アルゴリズムに超一級も何もない
701 :
uy :2012/08/14(火) 17:57:13.57
結論 おまえ等には無理 そこで座って休んでて良いよ
さくさく動いて落ちなくて面白けりゃゲームなんて何でもいいのよ 中身のアルゴリズム何て一般利用者はどーでもいいわ
まあ確かにある意味では人知を超えてるがw
ゲームのCMで 「独自のアルゴリズムを搭載」 「マルチスレッドによるゲームエンジン」 「デバイス入力とコマンド解析を分離したシステム」 「ゲームデータは階層化されたフォーマットで保存」 とか打てば訴求力があると思ってる種類の人間だろ
>>704 それ、お金を出してくれるお偉方をだ説得するために言ったのが
後でないがしろにできずCMに使われちゃってるだけだと思うよ
ここの連中より自分の方が注いでる時間も少ないし密度も低いのになんで語るなって言えるんだろう ゆとりが悪いんじゃなくて政治と親が悪いんだけどさ、かわいそうだよ
708 :
uy :2012/08/14(火) 18:34:58.35
709 :
uy :2012/08/14(火) 18:47:57.70
俺がやりたかったことを誰かがやってくれるならもう少し気楽に創作できた気がする おまえ等が誰もやってくれないから俺ばかり最高に忙しい 俺はひとり前に進む はりぼての覚悟しかないおまえ等なんてもう休んでいたらいい 以上
何か知らんが乙
>>709 uyのタイプの人間は出来合いのものがあってもプライドが許さず受け入れない
また使い方も調べもせず自分で一から作ろうとして何も成せずに終わるんだよ
人生無駄にしたくないならノベル系がいいならきりきりとかそういう選択肢もあるし調べた方がいい
気に入らないところはプラグインを作って拡張できるから開発欲も満たせるよ
オブジェクト指向に合わないとか損しすぎかわいそす
713 :
uy :2012/08/14(火) 20:34:27.39
効率的すぎてプログラミングの作業とかもうほとんどない プログラミング作業はあくまでプログラミング意欲を発散したいからゲーム内部に無駄な機構作ってるだけで 整理されまくって再利用性が完璧だから コードをかくのは楽しいよ どんどん資産が貯まっていく感覚
そんなに優秀でなぜ糞げー一本しか作れないのか疑問だ 普通こういう俺は優秀みたいなセリフって相当出来のいい作品リリースして世間も評価してから言うよな
いいんだよ言わせておけば
ゲーム用の GI や表面下散乱、影や陰、水や炎、煙や霧などの グラフィックス系のエフェクトの質問もここで良いいですか?
717 :
uy :2012/08/14(火) 21:41:18.36
はい
てめえには聞いてねえよ死ね
>>716 プログラムレベルの話ならここでいいと思うよ
>>1 の1行目読んであなたが良ければどうぞ
720 :
uy :2012/08/14(火) 22:01:40.70
そもそもお前らって職業的にゲームPGで、
ゲーム製作の担当はプログラミングなんだよね? で、それだけなんだよね?
なんか、何年間も自分創作活動してますみたいな雰囲気漂わしてる奴いるけど、
同人作家はこの板にそれほどいないと思うんだけど
>>718 はい次の方どうぞ
粘度の非常に高い半固体みたいな液体をゲーム内で表現したいのですが、 参考になりそうな論文や記事がなかなか見当たりません。 納豆のように糸を引く表現です。 といっても、納豆ほど水っぽくはなく、もっと固い感じですが。 キャラが光線銃で当てた壁などの性質を様々に変化させ、 その変化を利用して面をクリアするタイプの3Dアクションゲームです。 ネバネバしたものが流れる様子や、張力を使って天井からぶら下がる様子を ちょっとキモい程度にはリアルにしたいです。 流体力学を使って粘性のある流体をシミュレートする資料は多くあるのですが、 どれもその流体の剪断応力を考慮して渦を表現したり、 他の物体に流れの力を与えるという表現をするための粘性であって、 糸を引くようなネバさを表現した資料は見つけられませんでした。 試しにネバネバした天井から糸が引いている姿だけ作ってみようとしましたが、 天井から細長い「つらら」が垂れ下がっているようにしか見えませんでした。 物理演算とグラフィックスの両方をもっと磨く必要があるのですが、 資料のなさに嘆いています。
>>721 ちなみに、流体力学をバカ正直に粒子法で表現したところ、
1フレームの絵を作るのにかなり時間はかかりましたが、
ネバッこい液体を表現することはできました。
ただ、ゲームとしては全く使えません。
リアルタイムを考慮した方法で参考になりそうな資料を探しています。
調べてみたがよく分からん そもそもゲームで物理シミュってあまり使わないから疑似的にそう見える方法を見つけなきゃだめかなと 液体のりみたいなのを表現したいんだと思うけど、それだったら飛び散ったり垂れ下がったりするのを 直径いくらの球体とみなして垂れ下がったときに引く糸は球体の大きさに応じて根元を太くしたり ほかの粘液に引っ付くときは直径に応じて接触面を馴染ませて広げていくとかじゃないかな
ビルボードみたいに考えるといいですよ 二次元上での粘性流体を計算すれば次元が一つ減るので超早くなります 演算結果から三次元のスライムのように見えるような描画の工夫は自分で考えてください
>>720 基本的にオタク業界だから職業ゲームPGが趣味で絵描いたり音楽制作やるとかザラだよ
PGだけやってるわけじゃないよ
右渡は全部できるんだよなしかも結構高いレベルで おじさんあこがれちゃうわぁ〜
ネット通信は、Winsock か ASIO のどっちがいいんだろ?
>>727 どっちでもいいよ、好みの問題。
俺はずっとWinsock使ってるな。
モルピグまで作ったけど問題なかった(鯖はLinuxだからLinuxについてるsocket)。
韓国大統領発言:「悪影響、数年続く」日本側懸念
韓国の李明博(イ・ミョンバク)大統領が14日、独立運動家への謝罪を天皇訪韓の条件だとする発言をしたことで、
日韓関係の展望はまったく見通せなくなった。日本側の外交関係者は
「信じられない発言だ。悪影響は数年単位に及ぶのではないか」と述べ、来年2月に発足する韓国の次期政権下でも
日韓関係の修復は簡単ではないとの見方を示した。
発言は、地方視察での教育関係者との会合でのもの。10日の竹島上陸について話してほしいと参加者に言われ、
「思いつきではない。深い配慮と(日本からの反発という)副作用がありうると(検討した)」などと述べた上で、
天皇訪韓に自ら話題を移した。李大統領の真意は不明だが、
予期せぬ質問に不用意な答えをしてしまったということではなさそうだ。
韓国政府は、李大統領の竹島上陸後、竹島周辺に整備する予定だった「総合海洋科学基地」の建設を
当面見合わせることにするなど、日本側の反発を意識したかのような動きを見せていた。
それだけに今回の発言は唐突感があり、与党セヌリ党の議員からも「日本にとっては敏感な問題なのに……」と
今後の展開を危ぶむ声が出ている。
日本政府当局者は「竹島上陸への対抗措置の検討が行われている状況で、こんな発言をされたら感情的反発が強くなる。
決していい結果にはならないだろう」と話す。
一方、韓国外交通商省当局者は取材に対し「何もコメントできない」と言葉少なに答えた。
http://mainichi.jp/select/news/20120815k0000m030047000c.html
各所で話題になってるスレ違いニュースなんぞわざわざ貼らなくていいよ
俺の作るゲームに完成は無いキリッでもなんでもいいからとにかく一旦 遊べるところまでつくり上げるのです。経験年数なんて何年でもいいから。 自分のわかる範囲内までしか作らないでやめちゃうと勉強にならない。 車輪の再発明だっていくらでもしていい。アルゴリズムや考え方の勉強に なるから。 あ、再発明に関してはあくまで趣味で作る場合の話だけどね。 時間がいくらでも使える趣味での制作だったら何の問題もないよ。 でも音楽も絵も出来るってのはいいね。俺はプログラムしか書けないからなぁ。
解像度の低いドット絵なら素人でも描ける 32*32くらいならいける RPGならそれでバックバッファのサイズを320*240にして フロントを640*480にすればそれなりになる DirectXってグラボの対応してる解像度一覧取得できるけど 取得できない解像度のバックバッファも作成できるよね あれって問題ないの?
あれはフルスクリーン表示する時の画面解像度一覧じゃないの? バックバッファのサイズは、1〜MAXの間なら何でもいいはずだよ。 変なサイズ指定しても、内部的には条件を満たす最小のバッファに丸め込まれてる。
ドット絵ってたった1ドットの色を変えただけで、 たった1ドットずらしただけで、雰囲気が変わってくるからな。 どうせ俺プログラマだし、絵下手だし、時間もないし、この辺りで良いだろと 作業を終えようとしたところで、ちょっと色を変えてみると、 あら不思議すごく良い感じになった。 もうちょっと描いてみよう・・・ なかなか終わらない。 なんてことがよくあった。
で?
ドット絵下手なら豆腐でいいじゃん
それ、ドット絵じゃなくてもいいじゃん
いまどき2Dかよ!モデリングしろよ!
約40万ポリゴンのリアルな豆腐が主人公のゲーム
3Dはみんな同じように見えて個性が出ない2Dのが魅力的 技術的にも3Dのが楽だしやるなら2Dのがやりがいある
3Dはリアリティにこだわっていくと全部一緒になるよな そらそうだわな、目指してるものが一緒だもんなw
やっと気づいたか
みんないつかはゲームからリアルに回帰していくもんな 目指すところは一緒なんだよ
3D=リアリティ追求とか本気でいってるのか想像力の欠如はプログラマとしてもだめだろ 自由度が一軸分増えてるんだよデフォルメ等の表現の幅もどれだけ増すか分かるだろ 個性が出せてないのは能力の限界を自分で決めてしまっているだけ
一次元増えたお陰で、リアリティーが出て、ごまかしが効きにくくなって、 デフォルメの表現の幅は減ったわけだが。 ミッキーマウスの耳やジョーの前髪が立体的にどうなっているかって話。
非常に滑らかに有機的に動く2Dは、それはそれであり ゲームには、非現実感という軸も十分おもしろい
>>743 の言いたいことはなかなか伝わらないものだな
>>745 任天堂辺りは今でもデフォルメ沢山やってるけどな
リアル志向に移行したシリーズもあるけど
ゼルダみたく両方やってるシリーズもあるし…
デフォルメ表現の幅が狭くなったんでなく
昔はデフォルメ表現を止むを得ずやってたトコが沢山あって
そこがデフォルメをやめたってだけじゃね
どちらにせよ、3Dになってからデフォルメは難しくなってる。 2Dみたいに適当にかいとけばよいってわけには行かない。 どんな角度から見ても破綻なくデフォルメするのは難しい。
>>745 >>750 カメラとの角度でモーフィングしたり表現の仕方はいくらでもあるだろ・・・
それが自分で限界作ってるってこと
ハードと違ってソフトウェアってそういうものでしょ?
日本人はそういう風に頭が固すぎるから3D分野で遅れとってるんだよ
ミッキーマウスの耳がモーフィングするんですか。怖
>>751 そのモーフィングはデザイナにとってもプログラマにとっても、
一筋縄ではいかない、けっこう難しい事じゃないか?
デフォルメが難しいから、じゃあモーフィングで、
と簡単に言えるものではないと思うが。
デフォルメ? トイストーリーみたいなもん作れってか? バカじゃね? そもそも映画と同じでリアルな人間みたいなキャラ出して作りたかったクリエイターが多いんだよ それで似たようなものができるのはデフォルメ等の3D技術の足りなさが原因ではなく システムやストーリーに関する発想が貧困だからだよ 分析が間違ってたらどうしようもないよ
アニメの技法知ってるととてもじゃないけど3D計算で真似したり超えたりできるとは思えない
757 :
uy :2012/08/15(水) 23:23:28.31
質問なんだけど ■ ■ ■ ■ こういう4つのオブジェクトがあって ↓へ向かってて ある地点までいったら ■ ■ X ■ ■ クロスさせたいんだけど どう実装したらいいか分かりません><
技術不足すぎる
コルーチンで書くと楽だよ
>>757 それでプログラムが書けるわけないだろ
仕様書を書くくらいに詳細に質問してこい
まぁそれができるなら、大半はここに質問する前に自己解決すると思うが
>>754 いくつかカメラに対しての角度毎のモデルデータ用意しておくだけだよ
用意してない角度は補完する
モデルデータ作るほうも限定した方向からみて破綻してないか意識するだけでいい
パターンが数倍になるだけで難しいとこないからやってみ
764 :
uy :2012/08/15(水) 23:39:21.02
あ、出来たし、もういいです つかえねースレ。 でも出来れば4つじゃなくて、 任意の左右上下対象のオブジェクトでこういう事やりたいんですけど アルゴリズムが思いつきません><
お前ならできる 考えろ
そのくらいuy製根幹部分でなんとかなるだろ
>>764 日記はブログかツイッターでどうぞ
質問するなら、回答者にわかるように考慮してください
この程度で迷うカス脳でよく自画自賛できるよなこいつ
次スレは、 uyを生暖かく見守りつつも、時にはイジリ、時にはアメを与えてその抑揚を楽しむスレ に改名な
次スレで思い出したけど 最初に立てた奴はまさか24スレまでいくと思ってなかっただろうなw
みたいです
8月15日に攻撃対象へ指定されていた、日本のコミュニティサイト 「 2ch 」 は現在スムーズに稼動している。
インターネットカフェ ネトテロデウンヨンハプ は14日、光復節当日(8/15)、日本のコミュニティサイト 「 2ch 」 を対象とした
集団サイバー攻撃の計画を立てた。 計画が出ると、このカフェでは、(2ちゃんねるへの)攻撃に参加するというネチズンたちが列をなした。
しかし、このカフェは、15日早朝、突然の計画を取り消した。
カフェは、 『攻撃予定日は9月ですが、光復節(8/15)に日本サイトの攻撃はない』と公示した。
詳細 2012/8/15 ソース韓国語 inews24
http://news.inews24.com/php/news_view.php?g_serial=682052&g_menu=020310
773 :
uy :2012/08/16(木) 15:47:19.25
質問です 弾幕とかのパターンの作り方についてなんですけど 基本的に、こうやって呼び出して Danmaku.pattern0( obj ) ↑これの内部で複数個のオブジェクトを発生させたりとかやってるんですけど、 angleや速度や、生成個数の 引数をちょっと与えるだけで、まったく別の弾幕になるものもあるじゃないですか? だから、そういうものに対しては Danmaku.pattern0( obj , { :angle => 40 , :n => 10 } ) とかってハッシュ引数渡したりするんですけど、 これだとハッシュ引数の存在するパターンとハッシュ引数の存在しないパターンが作られてしまい 実装ソース見ないと、ハッシュ引数にangleを指定したからといって、 パターンの様子が変わるかどうかが分からないメソッドだらけになるんですけど どうやってまとめたらいいんですか? 引数は渡さないべきなんですか??
そういうのは抽象ファクトリでいいよ
いいよね
776 :
uy :2012/08/16(木) 16:16:24.46
>>774 は?
インスタンスの作り方についてじゃないんですけど
>>776 あたま大丈夫?
自分のレス見直してこいよ
778 :
uy :2012/08/16(木) 16:22:46.30
やくたたず
マジレスするとそういうのはハードコーディングするものじゃない 普通のプログラマはスクリプトor設定ファイルで持っとく 他の人が作った弾幕を利用できることを考えるとBulletMLとかの導入を検討してみては
>実装ソース見ないと、ハッシュ引数にangleを指定したからといって、 >パターンの様子が変わるかどうかが分からないメソッドだらけになるんですけど なんだその言語、捨てたほうがいいぞ 不正な引数が指定されたら例外投げてプログラム落とせよ
781 :
uy :2012/08/16(木) 18:01:35.75
>>779 C++で書いてたころはスクリプト化してたこともある
けど根本的な解決にはなってない、スクリプトはスクリプトでハードコーディングだから
例えばこんな弾幕があったとして
def pattern o
x , y , img = player_center_get( img.new )
ang = homing_target x , y
[40,20,-20,-40].uy_map.+(ang) { | m |
create( :enemy_shot , x , y , img , { angle: m , speed: 3 } )
}
end
↓ これの動作イメージ
○ ← てき
/ / \ \
/ / \ \ ← 弾幕
▲ ← プレイヤー
ちょっと配列の部分 [60,50,10,-10,-50,-60] こうすれば、まったく違ったパターンになる
これはパターンとしての記述量が少ないものだからコピペは許されるけど、
行数の多いパターンをコピペして新しいパターン作ろうとすると行数が膨らみすぎるから
それスクリプトで根本的な解決になってるじゃん
783 :
uy :2012/08/16(木) 18:08:14.39
def pattern o , hs = Hash.new
a = hs[:aaa] || [40,20,-20,-40]
speed = hs[:speed] || 2
x , y , img = player_center_get( img.new )
ang = homing_target x , y
a.uy_map.+(ang) { | m |
create( :enemy_shot , x , y , img , { angle: m , speed: speed } )
}
end
こうやって引数とって、コピペを回避するんだけど、
パターンごとにこれやられると、分けがわからなくなる
上手いまとめ方が分からない
引数を受け取るメソッドと受け取らないメソッドで区分分けとか、弾幕パターンの仕様を、どこかにメモっていくしかないのかな?
>>780 デフォルト引数も知らないの?
基本的にはっしゅ引数の解凍は
def func o , hs = Hash.new
n = hs[:n] || 0 # この 0 はデフォルトの値 つまり、呼び出し時に func(o,{}) でハッシュが何も指定されなければ0
end
意味わかる?
784 :
uy :2012/08/16(木) 18:09:39.71
>>782 そのスクリプトって、コピペ & ハードコーディングしまくりの再利用不可データでしょ?
それは結局ソースコード中の一部にハードコーディングしていい領域を作ってしまうのとあまり大差ない
俺はそこも妥協したくはない
>>784 お前がスクリプトを全く理解してないから変なイメージを持って駄目だと決めつけてるだけ
こういう場面では普通はスクリプトで鮮やかに解決する
プロジェクトの事情でスクリプトが使えなければデータファイルから構成できるようにコードを書く
786 :
uy :2012/08/16(木) 18:24:05.07
>>785 スクリプト導入もデータファイル導入もやったことはある
C++開発においてのスクリプトの導入は
・コンパイル→実行までの待ち時間の削減
・C++よりも簡潔な記述
この2点くらいじゃね?
仮にC++でなんらかのスクリプトを導入したとしても
色々とC++側の情報にアクセスできないと厳しいから
>>757 こういうのは作れないよ?
そしていまはC++からスクリプトを触っているんじゃなくて
スクリプトからC++触ってる感じだから、
スクリプトに、スクリプトを導入する意味はないだろ・・・ファイルわければいいだけ
>>786 >
>>757 > こういうのは作れないよ?
余裕で作れるし
つかむしろスクリプトが最も有効な場面だろ
ホントにお前はさっきから何を言ってるんだ
788 :
uy :2012/08/16(木) 18:40:00.01
BulletMLとかその他の弾幕スクリプト見てきたら思ったよりもずっとハードコーディングだった 俺はが言ってるのはそのスクリプト内部で 似たような弾幕を作る時に コピペをなくすために どうやってアルゴリズムパターンをまとめてるかなんだ 無理なの?
シンプルなBulletMLでいいだろ
>>783 デフォルト引数は関係ないだろ
その関数が受け付ける名称以外の引数が渡されたらプログラム異常終了させろよ
791 :
uy :2012/08/16(木) 18:51:59.07
C++しか経験ないんですか? 動的言語は引数のチェックとかそういう事をやる言語じゃない
792 :
uy :2012/08/16(木) 18:53:04.48
確かに出来た方がいいけどな、キーワード引数とは違うから、言語自体が対応していない事を 自分のコードで書いてもソース冗長していくだけ そこはあまり問題になってない もういい
794 :
uy :2012/08/16(木) 18:59:05.65
もう少し調べてからしゃべろ パラダイムが違うのでそれはやらない そしてそんな部分は問題じゃない ちょっと自分で思いついたからおまえ思考のじゃまちょいはなしかけないで しね。
ブロントと同じ空気を感じる だがブロントとは違って邪悪だ
おまえはあほか パラダイムとか関係ないんだよただの設計方針だっつの 自分で引数が本当に適用されるのか不明とか泣き言言っておいてそれだ 今一瞬のことしか考えられないのかよ
伸びてると思ったらまたかご丁寧にuyって名前使ってくれてんだから素直にNGしとけよはかどるぞ?
uyをNGにしない理由を聞きたい そんなに構いたいのか、それとも構ってほしいのか
動的言語使いは細かい思考ができないからしゃあなし
>>798 ・専ブラは使ってない
・uyのためだけに専ブラ導入するつもりは無い
ぷよぷよ作りたいんですが、どうしてもます単位の移動しかできなくて困っています。 回転したら、軌道に沿った中間を表示するようなアニメーションしたり、着地モーションさせたり、製品版みたいな操作性のものを作るにはどうしたらいいでしょうか
802 :
uy :2012/08/16(木) 19:42:50.21
それ裏方で二次元配列のマップでも作ってんだろ それを捨てろ あたり判定でやれ ブロックの一個一個をオブジェクトにする で着地したとかはオブジェクトにたいしメッセージをとばしエフェクトの生成
>>801 今はぷよを左へ移動する場合
1."←"入力
2.ぷよを隣のマスへ移動
ってやってると思うけどそれを
1."←"入力
2.ぷよを左へ移動させるアニメーションを再生(ぷよがピクセル単位で左へ移動するアニメーション)
3.アニメーション完了後ぷよを隣のマスへ移動
に変えれば行けるよ
アニメーションするならタスクシステムって呼ばれる仕組みが便利だからその辺調べてみて
それとおそらく今の描画方法は構造体かint型かの2次元配列に入れてるぷよの色情報から
ぷよを描画してると思うけど、そこにぷよのピクセル単位のオフセット座標も入れてやって
ずらして描画できるようにする
タスクからそのオフセット座標を操作してやればアニメーションになるよ
これはあくまで一例だから自分にあったやり方探してみるのもいいかも
>>802 そんな嘘には惑わされないですよ!アクションゲームじゃないんですから・・・
>>803 超ありがとうございます!
すごいです、タスクシステムだといけそうです!
ごった煮リストはやめた方がよいのに。まぁ好きにすればよいさ。
806 :
uy :2012/08/16(木) 20:13:21.17
スクリプト化しろ
離散的な時間軸のゲームの時間軸上の点と点の間を補完するのって結構面倒なんだよな 普通にリアルタイムゲームのほうが解りやすい
くそuy、一人キャップつけろっつってんだろぉぉぉぉぉぉぉぉぉ!!!
809 :
uy :2012/08/16(木) 21:47:24.06
ダミーというか 画像を持たせずにタスクとxy座標だけを持たせた親オブジェクトつくって それの子に画像を標準させる実体オブジェクトをつくって 親オブジェクトは入力受けたらすぐ移動 子オブジェクトに動けとのメッセージと自身の以前いたxy座標を送って指定座標までゆっくりmove できた
日記はブログかツイッターでやりやがれくそやろーーーー
残念ながら朝鮮人がまともになるには、一度、徹底的な敗戦をさせることが必要。 日本は一切の支援を打ち切り、朝鮮半島を中国に占領させなければならない。 そうして初めて、朝鮮人は自分たちのキチガイぶりと愚かさを知るのだ。 そういう意味で、アキヒロは最後に2つ重要なことをした。 ひとつは日本の愚かな親韓派というエセ右翼やパチンコ保守の立場を完全に崩壊させたこと。 もうひとつは朝鮮半島を日本や世界から孤立させ、徹底的な敗戦に向かう用意をさせたこと。 アキヒロの置き土産は、やがて焦土と化した朝鮮半島で朝鮮人の細い目をようやく、わずかながらに 広げることだろう。それは遠い未来への大きな財産へとつながる、小さな礎といえる。 例の小林ナントカとかいうお下劣漫画家や産廃王子も、アキヒロの英断のおかげで 立場が完全に崩壊し、支離滅裂な発言を繰り返し逃げに転じている。 従来のパチンコ朝鮮人とつるんだエセ右翼の立場を堅持すれば、例の教育委員会と同じく、 国民の怒りを買って襲撃にあうとビビリはじめたということだろう。
なんかもう、どこに向かってるかわからんよね どこぞの一国のドンは。。
813 :
uy :2012/08/16(木) 22:36:56.26
咲のことじゃなかろうな 日本をわかっていないなそいつ
814 :
uy :2012/08/16(木) 23:44:32.63
ひとりキャップ、略してトリップをつけろって何回言ったらわかるんだいuyは
数学できないuyにとってはな
818 :
uY ◆gXFLM6waxs :2012/08/17(金) 00:30:21.60
それの何が凄いのか分からない ほとんど直線にしか動いてないじゃん 弾幕生成時の角度とスピードが違うだけの組み合わせ
途中曲がったり加速したりしてる弾もあるような つか弾幕ゲーってあーゆー弾もありなんだ、よく避けられるな
820 :
uY ◆gXFLM6waxs :2012/08/17(金) 00:37:27.53
ちょっとそのページのURL紛失してわからんけど
http://dixq.net/g/ ここの人が絵の線画を弾幕にするようなツール作ってたけど
そういうのはスクリプト化したら作れないから
おいおまえちゃんとみたのか 少なくとも東方とか市販STGとかのレベルの弾幕なら余裕で記述できる程度のテンプレだけど 何作る気だよ また負け惜しみか
>>818 とりあえず、トリをつけたことを評価する
823 :
uY ◆gXFLM6waxs :2012/08/17(金) 00:43:28.02
バラバラに生成されたオブジェクトが読み込んだ絵の線の上に集合して、 そこからまた散らばるような弾幕を作りたいんですけどBulletML (笑)程度でかけますか?
じゃあかけると言っておく
>>814 オープンなのがいいんじゃね。 別に自作してもいいと思う。
http://shinh.skr.jp/sdmkun/sdmkun.gif ここにあるような弾幕だったら
弾幕1個1個に対しての状態変数みたいなものがほとんどいらないじゃん
弾幕を生成してからNフレーム後に当たり判定を有効にさせるとか
画像の回転や透明度を、制御( 加速的な加算で )とか
そういう細かいことやりたくならないの?
ただ単純にスピード、アングルを指定するだけなら
>>781 にかいたように俺なら5行もかからない
俺はいま根幹部分の作成に入ってるけど、
ただの加算じゃなくて加速的な加算の出来る機構を作ろうとしてる
お前らには無理
>>823 BulletMLはプログラムからのパラメータが指定できるから
次の手順で実現できるよ
1.Bulletとして次を定義しておく
・初期位置はランダム
・プログラムからパラメータとして目標値を指定できるようにする
・Bulletの挙動としてn秒で目標値に到着し、m秒停止後ランダムな方向に進む
2.プログラム側で画像解析して目標点の座標リストを作成する
3.2のリスト数分Bulletを生成し、各Bulletへパラメータとして目標点の座標を渡す
>>826 す、凄まじいなこの弾幕
到底よけられん
> ・Bulletの挙動としてn秒で目標値に到着し、m秒停止後ランダムな方向に進む これってさ、全弾が目標座標に到着してからのm秒カウントだけど、大丈夫なの? それに「やろうとすれば出来る」とかはどうでもいい Bulletを介さずに素で書いたほうがはるかに楽だって事 少なくとも既にBullet(笑)よりは簡潔に弾幕表現できてるから一生使わないよ どうみてもXMLは冗長だろ アルゴリズムに関係のない記述が、あのソースの中に何行あることか
>>826 uyの作った弾幕のgifってあげられないの?
あげられないよ 忙しい
>689 :uy:2012/08/14(火) 14:56:12.31 >えらそうな奴が多いな >どうせ数年で飽きて創作やめる癖に上から目線キリッキリッだな >創作なんて別に特別なことではなく >普通に遊ぶし2CHネトゲもする >それで時間が足りなくなるならそもそも才能がない 忙しい→才能ない
それに弾幕って見た目的な綺麗さならプログラミングの知識たいして要らずに作れる 俺はいま設計を本気でやってる ゲーム中で動きのあるオブジェクト、プレイヤー、敵、ショット、エフェクト、アイテム関連の 動作パターンをすべて流用できる(事を目標にした)設計にしてる だから一部をスクリプトで書くとかはありえない 弾幕だけ作ってるわけじゃないし
いまははなしかけないで
>>832 はなしかけんな
でそれはいつ完成するんだ うp
シューティング程度のプログラムでそんなに高飛車になられても(笑)
なんだ、弾幕シューティングツクールを作ってるのか
838 :
uY :2012/08/17(金) 08:08:30.71
シューティング限定じゃないけどな 俺様はカクゲも作らなければならないので あらゆるゲームを想定しながら設計してる あちこちevalでメタプログラミングが入り始めてヤバイ これrails超えた
トリ
書き込んで2分後にレスとかどんだけF5押してんの?
ワロタw
1分後にレスしてるのはF5押しまくってるからなのか…
ふう
844 :
デフォルトの名無しさん :2012/08/17(金) 15:57:26.83
>>820 アホすぎだろ
スクリプトでできるしwww
>>830 作ってないし作れないものをうpできるわけねーだろwww
846 :
デフォルトの名無しさん :2012/08/17(金) 16:07:39.08
>>826 それ全部スクリプトでできますけど?
つかスピードと角度指定なら1行で十分ですよねwww
847 :
uy :2012/08/17(金) 16:19:18.72
C++しかできないのかと思えば今度はスクリプトの連呼だよ スキルレベルゴミカスと俺からみての一般レベルがいるようだ 何かレスほしい?いらないよね
ゴミカススキルはuy君だろ 常にしょぼい発言ばかりでしかもコミュ障 かわいそうwww
849 :
uy :2012/08/17(金) 16:48:18.27
加速ってのはちゃんと考えたらそれほど単純な処理じゃないんだよリアリティのでる加速が当加速だったり単純な加速になってるか? 別に今は乗り物の発進とか作っているわけじゃないけどさ 1フレーム目には001加速 2フレーム目にも001加速 3フレーム目には002加速 複数指定可の指定した速度に到達したら加速を今後100フレームさせないとか など細かい指定がほしいんだよようは 初期速度 加速速度 加速率(加速速度を加速する処理) wait(数種類ある)もっと機能あるしこれからも増えるけど これがを簡潔にやれるようにかいてんだよ 毎フレーム001ずつ加速なんていう単純なものは作ってない その処理を提供するクラスはめちゃ複雑な実装だし使うのも複雑 俺はこれを加速カウンタと名付けてゲーム内のオブジェクトの角度や透明度などあらゆる場所でつかってる もちろん加速させないカウンタもあるよ こっちもそれなりに複雑だけどな 俺様のソースの中でインクリメントやそれに該当する処理はほぼなくしてる 一部分だけ別実装しても仕方がない 弾幕についても同じ 弾幕に使ういくつかの基礎的パターンは敵の動きやエフェクトとおなじだろ? わかりやすいのならまる段幕とか、得点オブジェクトが自きにホーミングしていく動作とか、おなじなんだよ そこら辺をマジでマジなくらい流用するソースかいてんの 邪魔すんな
>>849 それなんかのギャグか?
そんな糞簡単な処理で四苦八苦してるとか笑えるんですけどwww
今の仕事やめて芸人にでもなったほうがいいよ君wwwww
>>849 それ1個の数式で書けるんだけどもしかしてuy算数苦手なの?
それでいつも忙しそうなのか 数学できない底辺は大変だな
853 :
uy :2012/08/17(金) 16:57:05.68
そのXMLのしょっっぼい初心者作品のスクリプトでなにができるってんだよ 使わねーて 初心者作品は初心者が使うには周波数あってお似合いなんだろうな しかもよくみたらそれJAVAかよW スクリプトの冗長性に納得したああああwww あれでもJAVAよりは簡潔だからwwwあれでいいと思っちゃうんだろうな JAVAは隔離しろよwww JAVAで作られたスクリプトすすめてくるのがあり得ない ちゃんと実装言語みてからいってほしい
855 :
uy :2012/08/17(金) 17:02:07.24
>>851 ごめんそのクラス状態変数が15個くらい内部で存在する
仮に1行でかかれても
例えば現在の速度や加速度やWAIT情報が外部から取得できないだろが
てつられちゃいけないよね
およそ200行及ぶクラス
これからも機能増えていくことが確定してるクラスが一行とかどんなまぬけだ
856 :
uy :2012/08/17(金) 17:04:02.08
>>854 いやそいつJAVERだよ
過去日記読めばわかる
速読術みにつけてないやつって大変だね
1行でかけるコードを無い知恵絞って200行で書くまぬけなら知ってる
>>857 uyさんのことを悪く言うやつはゆるさねぇぞてめぇ
859 :
uy :2012/08/17(金) 17:05:50.90
>>852 数学的に処理できる範囲の話なんていましてたか?
それに俺は数学は最低限はできる
uyさんかわいそう
>>858 お、俺そこまで言ってねえよ!名前だすなって!
862 :
uy :2012/08/17(金) 17:09:54.16
純粋に加速していくだけならまだしもカウンタにWAIT入るとマジめに複雑だからな 実装も初期化も複雑 ちゃんと自分のコード覚えれる頭がないと作れても使えない 四則演算やインクリメントのほとんどないゲームプログラムなんておまえ等の知らない世界
最低限て四則演算レベルってことでしょ?
>>862 俺の根幹部分はBulletMLより冗長であるという虚勢を張っているのですね?
865 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:18:56.21
866 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:19:50.76
100.my_times do sequence 23 wait 1 end rubyならこれだけで表現できるのになぁ・・・アホだろ
いまさらxmlは無駄が多い(ドヤッ って、何年前で時間止まってんの?亡霊?
868 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:22:00.45
もっといえば 100.my_times sequence: 23 , wait: 1 do end じゃないか? 一行ワロタwwwwww 作品名: bulletml 評価 : 0点 効率 : × 発想 : ありきたり 完成度: ひどすぎ 感想 : 作り直せ
869 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:23:03.03
>>867 そwwwwwれwwwwwをwwwwwww
つかえとwwwwwwいってるwwwwwおまえらがwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwww
別に、XMLが無駄が多いんじゃなくて・・・・
用途がちがうよね、 うん
これはXMLの間違った使用例
そうかuyはぼっちだから作業分担したり出来合いのデータ利用したりするためのI/Fは要らないんだ 理解できないはずだ そのコードは他言語でそのまま動くの?
871 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:29:30.27
この程度でいいならLispでいいじゃん・・・っていうね
XMLはLisp以下
通りでABAはゲーム数多くても長年活動してても雑魚臭が消えないわけだよね?
D言語とか新しいものにすぐくいつく奴は2種類いて
珍しいことを気まぐれでやって俺SUGEEEしたがってるだけの奴と、
極自然に情報が拾えちゃう奴がいる
こいつは前者
>>870 > そうかuyはぼっちだから作業分担したり出来合いのデータ利用したりするためのI/Fは要らないんだ
いや、 その通りだけど、 「必要」ないんだけど
>>869 "xmlを使え"とは言ってないよ。
無駄だろうけど、実バイナリ編集用データそのまま使う必要ないでしょ。
で、その上bulletmlを超えられないことは火を見るより明らかなわけで。
見苦しいなあ、追い詰められて草生やして
uy ← ゴミ
874 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:31:50.06
俺bulletmlみたいなの作ったことあるわ C++で初めてSTG作ったとき確かそんなかんじ で、それは効率悪いと気づいてすぐにやめたんだよね プログラミング始めて1年もたたずに気づいちゃった・・・ この人何年やっているのかな
(´-`)oO(なんでこの子使ってもいないライブラリの作者の悪口言うんだろう)
妄想癖まで発症したか 真剣に通院をお勧めする
877 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:33:42.27
>>870 > そのコードは他言語でそのまま動くの?
これに対しパーフェクトな反論をしてやるとさ
bulletmlでかいた弾幕はbulletml以外で動くのか???? だよ
ほかのスクリプト使いたくなったら
いままで作ったものを全部書き写すのかよ効率わりーー
[股間部分作ってる俺SUGEEE] [自分のより汎用的なライブラリが既にあった] [それ効率悪い] [似たようなの作ったことある] ←Now 負け惜しみがすぎるなuyは
880 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:38:17.76
>>879 867 :デフォルトの名無しさん:2012/08/17(金) 17:21:39.57
いまさらxmlは無駄が多い(ドヤッ
って、何年前で時間止まってんの?亡霊?
>bulletmlでかいた弾幕はbulletml以外で動くのか???? だよ BulletML使って書けばスクリプト差し替えだけで動く そのためにいろんな言語向けに移植されている >ほかのスクリプト使いたくなったら >いままで作ったものを全部書き写すのかよ効率わりーー スクリプト使わずにハードコーディングしてる奴のセリフwwwwwwwwwwwww
>>880 uy「xmlは無駄が多い(ドヤッ」
日本語もできなかったとは
883 :
uY ◆gXFLM6waxs :2012/08/17(金) 17:49:22.50
ぇええー?よく分からないけど お前らは根幹システムに使っている言語が C++だかJAVAだかC#だか知らないけど そんなに頻繁にコロコロ変えてるのかね? まずはそんな状況にいることを危ぶめ
想像力が欠如してますね 脳の病気です 1.非PGに「このボス用の弾幕作っといて」と丸投げできる 2.他の人が公開している弾幕をファイル差し替えだけで利用できる 過去のアーケードSTGの弾幕がBulletML公開されているものもあるため利用できる
よってたかってuyさんをいじめるのは良くないことだと思うの
886 :
uY ◆gXFLM6waxs :2012/08/17(金) 18:09:48.45
あーもうほらいつの間にか移植性とか社畜の話だよ
個人ゲ製作で移植性気にしながら作ってる奴とかいる?
これだからム板は
>
>>870 > そうかuyはぼっちだから作業分担したり出来合いのデータ利用したりするためのI/Fは要らないんだ
>いや、 その通りだけど、 「必要」ないんだけど
887 :
uY ◆gXFLM6waxs :2012/08/17(金) 18:10:40.94
>>884 > 2.他の人が公開している弾幕をファイル差し替えだけで利用できる
ポトペタでパクり作品作りたいならツクールでやってれば?
移植性普通に気にするだろネトゲとか作ったことないの?クライアント環境は千差万別だよ まあドマイナーな糞げーなら移植性無視してハードコートで済ませちゃってもいいのかもしらんがね そんな多彩な環境でプレイされる事なんてないだろうしな
889 :
uY ◆gXFLM6waxs :2012/08/17(金) 18:15:52.35
883 :uY ◆gXFLM6waxs :2012/08/17(金) 17:49:22.50 ぇええー?よく分からないけど お前らは根幹システムに使っている言語が C++だかJAVAだかC#だか知らないけど そんなに頻繁にコロコロ変えてるのかね? まずはそんな状況にいることを危ぶめ 論破。
>>889 プロジェクト中で何種類かの言語を目的別に使いまわすのが当たり前ですけど
一つの言語に絞って他をないがしろにしてるほうがやばいからそんな状況を危ぶめ
w
>>890 言語によって強い分野、弱い分野があるから普通は目的別に使い分けるけど
rubyじゃないとプログラム組めない子なんだ、勘弁してやってくれ・・・
rubyがなくなれば平和になるんだろうな
uy鬼君でrubyお肉不味
895 :
uY ◆gXFLM6waxs :2012/08/17(金) 18:48:43.56
こうして相手との力量差を認めないから差が開いていくんだろうな
w
898 :
uY ◆gXFLM6waxs :2012/08/17(金) 19:14:36.07
お前らがいままで書いた一番規模の大きいプログラムって 言語と規模どんくらいですか? 動的言語は、静的言語の10倍の情報量があるとして、 俺はもうすぐ1万行行くから、およそC++換算で10万行ってところかな メタしまくりだから実際はそれ以上だよ
1行でできることをわざわざ200行使って書いてるんだから50行の間違いだろ
900 :
uY ◆gXFLM6waxs :2012/08/17(金) 19:27:30.51
>>899 お前程度でこれ何やってるかわかる?
俺のいってた加速カウンタはこんな感じのメソッドがずっと続いていく
def count_function
if @loop_wait > 1
@loop_wait -= 1
return @c
end
@c += @add
@add += @plus
@add *= -1 if @c >= @rrrr || @c <= @nnn
@c = @rrrr if @c >= @rrrr
@c = @nnn if @c <= @nnn
if (@c >= @rrrr) or (@c <= @nnn)
@loop_wait = @loop_wait_wait
end
if @loop_wait_ex.include? @c
@loop_wait = @wait_ary
end
return @c
end
ずっと続くとかセンスなさすぎる…
902 :
uY ◆gXFLM6waxs :2012/08/17(金) 19:33:31.74
はやく一行でかけよ
ガウスの足し算て知ってるか
変数名wwwwwwwwwwwwwwwwwwwwwwwwwwwww
なにこれ振動さすの?
907 :
uY ◆gXFLM6waxs :2012/08/17(金) 20:02:16.57
>>905 加速やwaitを抜きにして考えれば
メソッドの戻り値が呼び出す度にこうやって変化していくもの
1 2 3 4 3 2 1 0 1 2 3 4
でこの間にwaitとか、加速を入れられるわけ
何にでも使えるカウンタだよ
プログラミングにおいてのアルゴリズムのほとんどは
1 , 2 , 3 と 1 , 2 , 3 , 1 , 2 , 3 と 1 , 2 , 3 , 2 , 1 のカウンタで表現できる
これは俺様が見つけたパターンであり、どこの教科書にも書かれていないと思うけどこんなに基礎的なものは他にない
>こんなに基地外なものは他にない
ふひ
釣りなんだろ? 俺様が見つけたとか言っちゃてる辺り
>カウンタで表現 専門学校1年生がこんな感じ
初心者は簡単にシンプルにやりゃ良い事をなぜか無意味にへんなやり方で無駄したがるよね
いいんだよ、若いんだもの
914 :
uY ◆gXFLM6waxs :2012/08/17(金) 22:09:24.98
そんなに教える気ないですし
アスペか
韓国最大手の釜山貯蓄銀行が破産。自己資本比率は驚異の-50.29%
http://engawa.2ch.net/test/read.cgi/poverty/1345217353/ 釜山(プサン)地方裁判所は16日、債務超過に陥った釜山貯蓄銀行に対し、破産を宣告しました。
釜山貯蓄銀行は去年2月17日に営業停止処分を受けたのに続き、去年4月29日には、BIS=国際決済銀行による
自己資本比率がマイナス50.29%と、健全性を示す基準の1%を大幅に下回っていたため、
不健全金融機関に指定されました。
当時、釜山貯蓄銀行の資産総額は1兆3000億ウォン、借金は3兆5000億ウォンで、
資本金の増額や第三者による買収など経営改善の可能性も低いことから、
管財人が清算に向けて破産を申請していました。
5000万ウォン以下の預金資産や優良資産などはすでにブリッジバンクのイェソル貯蓄銀行に引き継がれており、
破産宣告により、釜山貯蓄銀行に5000万ウォンを超える預金を預けている
預金者と後順位の債権者は、破産手続きによる配当を受けることになりますが、
残った資産を処分しても、配当として受け取る資金はほとんどないものとみられます。
ただ、5000万ウォン未満の預金者は、今後もイェソル貯蓄銀行の管理のもとで、金融取り引きを続けることができます。
これに先立ち、今月14日には第一(チェイル)、第一2、プライム相互貯蓄銀行が
ソウル中央地方裁判所に破産申請を行っており、
トマト貯蓄銀行とパランセ貯蓄銀行もすでに先月、裁判所に破産を申請しています。
http://world.kbs.co.kr/japanese/news/news_Dm_detail.htm?No=44906
917 :
デフォルトの名無しさん :2012/08/18(土) 00:41:09.54
z
なんでこんなに暑いのにみんな元気なんだろうと思ったら夏休みなのか
夏休みってなーにー?
移植性は考えないけど、すべて流用できる設計にしてるのか なかなか新しいな
韓国経済が急激に失速している。一番の原因は、これまで韓国経済を引っ張ってきた原動力である輸出に陰りが見え始めたためだ。
輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ
「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。
■好調に見えたのはヒュンダイやサムスンだけ
韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。
これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。
韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。
そのため、輸出の不振は即韓国経済の失速に直結する。
なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に
比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。
さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す
。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。
http://headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all
922 :
デフォルトの名無しさん :2012/08/18(土) 03:13:49.12
_
923 :
uY :2012/08/18(土) 03:48:46.28
最高な気分ですよ すべての辻褄がリンクした お前らがバカにしている設計 大規模なのに小さな設計だ さてオブジェクト指向とはなんだったのだろうか 静的言語とはなんだったのだろうか このソースとともに世界に問いをかけたい
そーすうp
そしてトリ
○○とはなんだったのだろうか
927 :
デフォルトの名無しさん :2012/08/18(土) 04:46:15.50
s
釣りかガチかは知らんがガチで言ってるなら この手の仕事に就くことも趣味範囲で徒党を組むことにも向いて無さそうだな 実に多いのだがプログラマーと言う人種は傲慢な奴だらけなんだよな でも現場なら対人能力も求められる職であったりする
929 :
uy :2012/08/18(土) 06:13:58.46
だからなに 日記はミクシィにでもかいてろ 俺様のさっきあげたソースがすべてだよ 理解できないんだろ そういうこと
>>929 @c = 10
@add = 5
@plus = 1
@rrrr = 15
例えばこの状態のとき変な動きするけど
もしかして使う側もものすごい繊細なパラメータ設定が必要になるんですか?
韓国国内からも非難されてるのか… 韓国の大統領って辞めた後消されちゃうんでしょ? ちょっと同情するわ… 日本も挑発に乗って国交断絶してあげようよ…
933 :
デフォルトの名無しさん :2012/08/18(土) 09:46:23.02
>>930 使うほうも難しいとかuy本人が言ってただろ
自分でも扱いに困る糞ライブラリしか作れないんだからあんましいじめちゃ可哀そうだぞ
>10 :uy:2012/05/06(日) 05:18:10.42 >Ruby以上の言語は無いよ >あとは別言語の資産をどのようにしてRubyで扱う為のパイプラインを作るかだよ > >俺も今あることをやっているが >手間がかかる上に上手くいく保障が無い >883 :uY ◆gXFLM6waxs :2012/08/17(金) 17:49:22.50 >ぇええー?よく分からないけど >お前らは根幹システムに使っている言語が >C++だかJAVAだかC#だか知らないけど > >そんなに頻繁にコロコロ変えてるのかね? >まずはそんな状況にいることを危ぶめ あの、、言ってる事が矛盾してるんですけど、、
>>929 uyなのるならトリつけろや
つけねーなら名無しで書き込んどけタコ
ばぶー!
uyはさすがに恥ずかしくなってこなくなったな
938 :
uY :2012/08/18(土) 14:44:20.55
>>930 >@c = 10
>@add = 5
>@plus = 1
>@rrrr = 15
この場合の動作は、
まぁnnn も引数ないとダメだから それを 0だとすると、
1フレーム目に @c+@add(+5) → 15
2フレーム目にaddされて @c+@add(-6) → 9
3フレーム目に @c+@add(-7) → 2
4 @c+@add(-8) → 0
5 @c+@add(+9) → 9
6 @c+@add(+10) → 15
7 @c+@add(-11) → 4
...
と、こんな感じでそのうちaddがplusのせいで15を超えるから最終的には
1フレごとに0と15を行き来するだけの処理になるだけ
使う側も詳細パラメータ渡さないとだめだよ
元々IFでかいたら、20行とか30行いく上に状態変数も
必要になるような処理を、メソッド内部でやってるに過ぎない
uY ◆gXFLM6waxs
やってることが因数分解の再発明レベル。 世の中にまったく役に立たない。
いつからYが大文字になったのかと思ったら新しいトリつけてからか uy ◆pdu1UZmweEはどうした?
942 :
uY ◆gXFLM6waxs :2012/08/18(土) 15:00:44.59
お前らとはちがう 俺もこれ最初に作ったとき自分が使いこなせるか分からなかったけど 思っていたよりも使う場面が多く いつの間にか手に馴染んだ ここら辺がおまえらとの開発効率の違い 俺様の自信の裏づけ
943 :
uY ◆/uuWdTQ106 :2012/08/18(土) 15:01:47.12
uy ◆pdu1UZmweEさんはトリを忘れて死にました
成果もださずに自信持つw
946 :
uY :2012/08/18(土) 15:08:38.59
>>945 @nnn > @rrrr の場合に @add がマイナス値なら許される
この場合はカウンタが逆計算になるようにinitializeでやってる
@nnn > @rrrr && @add > 1 の動作は保証してない
nyが何をしたいのか それが一体どうしてすごいと主張しているのか 真剣に理解不能なんだけど みんなわかってて話してるわけ?
動作は保証してない(キリッ
949 :
uY :2012/08/18(土) 15:11:41.85
じゃあお前らの言葉で言うなら「例外をだす」 だよ 俺はソースが冗長する & 後から変更もするからエラーチェックや例外処理は全然入れない
951 :
uY ◆gXFLM6waxs :2012/08/18(土) 15:13:13.86
ほか板での誤爆が怖いんだよ 分かるかな? お前の好きなキャラクターの AA全レスとかやってるキャラの中身がuYだったらどうする?
rubyはデバッグモードでのみ実行される処理とかできないんかい だとしたら終わってるな
ひどすぎるなwww 入力データをいちいち手作業で調べて除外しないといけない インストールするとサポートとしてuy本人がついてくるのか
uyはわざわざ複雑に書いて俺すげーしてる厨だからなあ…
957 :
uY ◆gXFLM6waxs :2012/08/18(土) 15:18:41.38
>>955 それは認めるけどしょうがない
少しでも効率いい方法思いついたら書き直すから
今の設計なんてオブジェクトの生成にmethod_missing使ってる
ゲーム起動時にはメソッドがまだ宣言されてない
こうりつてきでたのしいれす
959 :
uY ◆gXFLM6waxs :2012/08/18(土) 15:26:46.33
時々この板の連中はプログラミング能力に個人差があることを忘れていると思う 自分がありえないと思うからって、 世界にそれを出来る奴がいないことのほうがありえない
>>955 複雑に書いて効率上がるならまだしも
生産性も実行効率も悪くなるのがuyの特徴
>>959 誰から見てもありえない
ノウハウがない奴がやりがちな再発明とかいろいろ無駄なことしすぎ
uY ◆gXFLM6waxsはなんだかんだいって人気者だなおい。。
964 :
uY ◆gXFLM6waxs :2012/08/18(土) 15:37:14.91
じゃあ質問するけど、 敵A が x座標 200からスピード1ずつ右へ移動しx座標400へ到達し、 そこで100フレーム待機、その後左へ移動しx座標200へ戻り、到達したら100フレーム待機 この動作をループさせたい これをどうやってかきますか? 俺はこれを一行出かけるようになったけど、君の方法にも純粋に興味があるよ
1行書くと内部でオブジェクトが呼ばれたりいろいろ処理が走るのは1行とは言わない
昔、モルピグのアイテム取得に関して質問した者だ。 アイテムを拾うボタンを押してからアイテムが入るまでに全くタイムラグがないから 誰が拾うか分からないはずのモルピグでどうやって取得処理しているか気になってたけど、 普通に鯖に問い合わせて処理していてその通信が高速だからタイムラグがないように見えていただけだった。 そりゃそうだよな、鯖に問い合わせる前に取得させといて一番最初に拾った人にだけアイテムが入るとか手品でもない限りありえないよな。 最近そのモルピグが会社の経営難の関係で低スペのボロ鯖に変更されたという噂を聞いたんだが やってみたらアイテム拾うボタン押してから取得までに0.5秒くらいタイムラグがあった。
taskSystem.AddTask(Loop(Move(tekiA, Vec(200, tekiA.y, tekiA.z), Vec(400, tekiA.y, tekiA.z), 1).AddNext(Wait(100).AddNext(Move(tekiA, Vec(400, tekiA.y, tekiA.z), Vec(200, tekiA.y, tekiA.z), tekiA.speed).AddNext(Wait(100)))))); C++にそのまま書くならクライアントコードはだいたいこんな感じかな WaitとかMoveは単一のタスクで AddNextで追加されたタスクはそのタスクの終了後に実行されるタスク Loopは与えられたタスクを繰り返す それだけ
c = func( 200 , 400 , 1 ) task_add { |o| o.x = c.call }
>>964 座標がとりたいだけなら
・初期値200、ステップ幅 1で200個数値を生成するジェネレータ
・初期値400、ステップ幅 0で100個数値を生成するをジェネレータ
・初期値400、ステップ幅-1で200個数値を生成するをジェネレータ
を連結させたジェネレータを使えばいい
こうすればuyのような馬鹿げた仕組みを使う必要もないし拡張も簡単
CombGen* c = new CombGen()
c += Gen(200, 200, 1); // 200〜400の数値を順番に生成する
c += Gen(100, 0); // 初期値は使用しないため省略. CombGenが現在の値を初期値としてセットする
c += Gen(200, -1); // 400〜200の数値を順番に生成する
CombGenはすべてのGenを使用しきったら再度1つ目のGenから繰り返す
>>969 あっ、カウンタを作ればいって考えには到達したみたいだねすごい
でも
>CombGen は
>>907 ここに3種類のカウンタを提示してあるだろ
>>970 ・1 , 2 , 3
c += Gen(1, 3, 1);
・1 , 2 , 3 , 1 , 2 , 3
c += Gen(1, 3, 1);
・1 , 2 , 3 , 2 , 1
c += Gen(1, 3, 1);
c += Gen(2, -1);
>>970 すごいことだと思ってるようだけどこんなの中学生でも思いつく
967氏のコード taskSystem.AddTask(Loop(Move(tekiA, Vec(200, tekiA.y, tekiA.z), Vec(400, tekiA.y, tekiA.z), 1).AddNext(Wait(100).AddNext(Move(tekiA, Vec(400, tekiA.y, tekiA.z), Vec(200, tekiA.y, tekiA.z), tekiA.speed).AddNext(Wait(100)))))); uY ◆gXFLM6waxs のコード c = func( 200 , 400 , 1 ) task_add { |o| o.x = c.call }
>>973 uyには
>>967 がxyz座標考慮してしかもキャラの動作まで記述できてるのわからないだろうね
xx = func( 200 , 400 , 1 ) yy = func( 200 , 400 , 1 ) zz = func( 200 , 400 , 1 ) tt = func( 200 , 400 , 1 ) task_add { |o| o.x , o.y , o.z , o.t = xx.call , yy.call , zz.call , tt.call chara_no_move o }
>>968 や
>>975 が1行には見えないんだけどなんでだろう
あ、「1行で書ける」じゃなくて「1行出かける」なのか
位置座標を示す数列ジェネレーターだけで解決しようとしてる人は地形やほかのオブジェクトの影響どうすんの?
>>977 同意だよ
rubyみたいにlambdaというか、yieldのブロック空間がないと簡単にそれは解決できない
977 位置座標を示す数列ジェネレーターだけで解決しようとしてる人は地形やほかのオブジェクトの影響どうすんの? uy rubyみたいにlambdaというか、yieldのブロック空間がないと簡単にそれは解決できない uyわかってないみたいですよ
>>977 実際のゲームで使用するのが目的じゃなくてuyの
>>900 のコードを噛み砕いただけのコードだから
そういう他からの影響はまったく考えていないいよ
uyは「短いコードはわかりやすい ← これは間違いだった」スレにいるのに 自分が行き過ぎた共通化に走ってることに気が付かないんだよなあ
行動目標だけを設定して具体的な操作はキャラオブジェクトに丸投げする 行動目標を受け取ったオブジェクトはビークルとAIに従って目標を達成する これを数列で表現するのはまず無理だしやる意味もない
ごめん、いたことあったわ 忘れて
ruby読めないのか キャラオブジェクトは task_add { |o| 〜ここの空間〜 } > これを数列で表現するのはまず無理だしやる意味もない 数列で表現しきれるものはそっちで簡単に書く 細かい動作は普通に書いてるよ
task_add { |o| case 状態 when 0 o.x = c.all when 1 o.x += 1 o.y += 1 end } こんな感じ
>>988 あれれ〜おっかしいぞ〜?表現『できる』ものは?
君、昨日だかおとといだか、全部これでおっけ〜みたいなこと言ってなかった?
uyに文句言うやつは対等にトリつけろ
>>990 そこまで勘違いしてた?
"""""""""""""""""""""""理論的には"""""""""""""""""""""""
↑( ょめる?)
ってだけで、全部をかくわけないじゃん
理論的にも書けない
簡潔に1行で書けるとか言ってたのは何だったんだ 数列で表現しきれるものなんてほとんどないし ということはほとんどほかの方法で書いてるんだよな
時間とフレーム数変換するロジックと、使う側には時間で見える処理くらい組もうよ
>>994 だから「wait」と「加速値」を実装したんだよ
ただのカウンタだったらお前らにも扱えるけど、加速カウンタはお前らには扱えない
>>994 ほとんどカウンタで書いてるよ
俺が考えきれずに加速カウンタの引数が難しくなる場合は直接書くってだけ
理路ん天気にはlambdaですべてかける
999 :
uY :2012/08/18(土) 17:02:17.21
/| ト、 ト、./ //| / | | |ア"´|\/ ,!/|. イ┬┬┬ __|∠::::::::::|::::::\/ / ┼┼┼┼ ー┼-、\. ┼ _lr ==‐-::、:|:;;_:::::::\`ア ┴┴┴┴ | | ー‐、 |  ̄ソ ., '"´ |::[l::[l::r--、::r、::`"7ー‐'ァ ノ ヽ ヽ ヽ ノ 、ノ _ノ ノ 、_ / ./ 7`ヽ‐..、__::::|」:::::/:::::::/ヽ、 / / / |:::::::::::::;!  ̄ ̄ヾ ̄ ':, ー┼─ '、 .! /|、|:::::::::::/| /| |:::! ',. l二|二l l __ ヽ| ,:'|イlハヘ::::::∧-‐ァ''7 ,ハ::| | ー三l三l‐ | ノ |/7 jり \| ァテ‐r'、 イ::::::ハ | 、」 .レ 、_ .|:/" r |ノ リY/:::::/ |. ,' ┌‐-、 八 ゝ‐゚'ノ/::::/ソ / / |. ー┼‐ _|__|__ / ー┼-、\ } /::::/\ ` ー ι゙゙/::::/´|/ { | ‐┼‐ | 、」 /┐ .| | r‐'´ ,'::::;' |ヽ、___ , イ'::::/ /| '、 '、__.ノ (_ノ`ヽ '、_ / (__.ノ ノ 、ノ o |:::::| , '"/{アr'」/ /|:::;:'\' '、 ヽ. '、:::! ./|:::r:'| |/ rノレ'r':::/`ヽ \ ':, ヽ| r' /:::{l::/rヘ、 ノ ノ:::/\,ハ | Y::::::ヽム ノ \ r' r'::::/ Y ノ
本気で何言ってるのかわからない だれかuyのロジック解説してくれ ついでにスレの流れも意味不明だから翻訳頼む
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。