2009年08月31日

変わるモノ・変わらないモノ

晴れ暑かった夏が終わりすごしやすくなってきました。
関東には台風台風が接近していて大嵐のようです。
影響のある方は十分注意してくださいね。

こんにちは「オクダ」です。

嵐と言えばこの週末、大変な嵐が吹き荒れました。
歴史に残る嵐と言えるのではないでしょうか?
そう、政権交代です。
この場でその良し悪しを述べる事はしませんが、
新しい風に期待したいですね。

ところで皆さんは投票に行かれましたか?
選挙権が無かった方も選挙権を得た暁には
是非、投票所に行って欲しいです。
とてもとても小さな一票ですが、無視できない力になります。
何かを変えるには多くの力が必要なのです。


一方変わらない事も必要です。
変わらない事にも力や努力が必要な事が多くあります。
2009-08-31.jpg
恒例のお誕生日会バースデーです。
今回もおいしいケーキをいただきました。
会社の雰囲気や社員の結束を維持するためのイベントです。
こういったイベントを続けていくのにも努力が必要です。
いい習慣として変わらず続けていきたいですよねわーい(嬉しい顔)


posted by 管理人 at 18:48 | Comment(0) | 日記

2009年08月28日

ゲームプログラマーへの道

こんにちは、松下です。

来週からCEDEC2009が始まりますね。

CEDECは、ゲーム業界関係者が技術交流するセミナーとしては、日本では最大のものです。
私もリスナーとして参加するのですが、普段お会いできない開発者の方々とお会いし、お話が聞けるということで、非常に楽しみにしています。わーい(嬉しい顔)


さて今年は、CEDECの新たな試みとして、
「『ゲームのお仕事』業界研究フェア」と銘打って、ゲームの仕事、ゲーム業界に関心のある学生及び専門学校生を対象に、セミナーが行われます。

これは、『私たちと共にこれからのゲーム業界を牽引していく若者に、ゲームの業界に関してより良く知ってもらう機会を作ろう』、という事なんだと思います。
非常に素晴らしい試みだと思います。

そういう思いもあり、今回私たちヘキサドライブも、
プログラムのお仕事「ゲームプログラマーへの道」
というお題でお話させて頂く事になりました。手(チョキ)

急遽参加が決まって、まだバタバタと準備をしておりますが、
このセッションを通じて、ゲームプログラマーという仕事に関して、少しでも興味を持ってもらえると嬉しいな、と思っています。

CEDECのセミナーと平行して開催しているので、スケジュール的に難しい所もありますが、興味ある方は、是非聞きに来て下さい!


それでは皆さん、会場でお会いしましょう〜手(パー)

posted by 管理人 at 10:00 | Comment(0) | 日記

2009年08月27日

空気や水の対流を表現してみよう

こんにちは!イワサキですわーい(嬉しい顔)

とろけるような暑さがあると水!プール!海!な感じな私です。
川で泳いだりするときの水の流れや扇風機であ゛〜としているとき風の涼しさを感じる機会がある季節です。
特に冷え症の方では冷房空調で空気の流れが気になったり、淀んだ場所は暑くなったりと室温のムラを感じることもありそうです。
ここ数日多少ましになってきましたがまだまだ暑い日は続きますね!

風や水流台風っていったいどんな風になっているんだろう?
そんなわけで今回はそんな興味から、お題は『空気・液体の流れのシミュレーション』をやってみたいと思います。

最近のゲームをプレイすると水面などはチャポチャポ揺れるものはあっても川に落ちた落ち葉の流れなんかが自然に流れていく、といったものはまだあまり正確に表現されていません。
これはもちろん現在のゲーム機自体の性能でそういった表現にパワーを割く余裕がないから省略されているわけですが、この「流れ」自体にゲーム性を持たせられないかなぁ?と思ったりもしています。
以前に流体シミュレーションということでSPH法を使った粒子法を紹介しました。今後MPS法にも挑戦してみたいと思います!

粒子法のようなパーティクルベースの流体では「水しぶき表現が柔軟に実現可能」というメリットがあります。
今回は粒子法ではなく、別の方法を紹介してみようということで格子形状を使ったグリッドベースの実装をしてみたいと思います。
グリッドを使ったシミュレーションはシミュレーションする領域が均一に広がるということや流れの解析にメリットがあります。
(もちろん粒子法のMPS法でもこのような表現は可能です)

個人的にはゲームの中で、舞い散る落ち葉の動きや、空気が淀んだ場所には吹き溜まりができていたり、水流で物が流れていったり等インタラクティブに表現できたら良いなぁ…と思っています。
今回、実験で作成したのは『格子ボルツマン法(Lattice Boltzmann Method)』と言われる手法です。

読んでみる書籍としては書籍は下記のものがお勧めです(とはいえ内容は数式に満ちていますが…)



■格子気体法・格子ボルツマン法―新しい数値流体力学の手法


2009-08-27-book.jpg


蔦原 道久 (著), 片岡 武 (著), 高田 尚樹 (著)


構造は実にシンプルです。
空間を格子で区切り、それぞれに圧力(気圧)情報を持たせて高い圧力の部分から隣接する低い圧力の部分へ流れ込むように流れが変化するという格子気体モデルという考え方です。
圧力を均一に保とうとする自然界の物理現象をシミュレートします。
「流れ込む分子量」と「押し出される分子量」の合計でその領域の速度を決定するというアルゴリズムです。

2009-08-27-lbm0.png2009-08-27-lbm1.png2009-08-27-lbm2.png


他の技術系の話と違ってこのアルゴリズムは日本語の文献が多くて助かりますね。

2009-08-27-lbm.png


技術的な計算部分は割愛しますが、今回は3次元27速度(D3Q27)モデルを使っています。

2009-08-27-st1.png2009-08-27-st2.png2009-08-27-st3.png
【格子ボルツマン法の計算フロー】流体は衝突を繰り返しながら直進(並進)します。



Youtubeに同様に流体のシミュレーションをしている動画がありましたのでご紹介しておきます。




大抵このようなシミュレーション系の計算のために文献を読むと難しそうな数式が並びます。
例えば今回のものの中から抜粋するとこんな感じです。

2009-08-27-lbm_math.png

難しそうに書いてありますが、実はC言語で記述すると大して難しい計算ではありません。次のようになります。

2009-08-27-source.png

私個人的にはこの数式たちが理解の敷居を高くしてしまっているような気がするんですよね(もちろん演算の意味を伝えるためにスマートに書くのに適しているというメリットもあるようですが)

この式が今回の挙動計算の肝になっています。
流れの具合がよくわかるように中にパーティクルを配置して流れに乗せて動かしてみます。
これで渦や流れがよくわかるようになります

書籍では「GPU Gems 2」にもこのアルゴリズムが紹介されています。

【参照】Chapter47. 複雑な境界を持つ流れのシミュレーション p687




今回のデモではちょっとゲームっぽくインタラクティブにするためにリアルタイムでいじれるようにしてあります。

2009-08-27-flow_1.jpg2009-08-27-flow_2.jpg

区切られた部屋の中にポンプや扇風機のように流れを強制的に発生させます。
そして、その影響を受けて複雑な対流が発生します。
壁仕切りや球体などの障害物も設置できるようにしました。

技術デモは下記よりダウンロード可能です。

◎動作可能な環境
GeForce 6800シリーズ以降
Radeon X1000シリーズ以降

基本的にはシェーダーモデル3.0以降で動作します。
レイトレーシングなど特殊なレンダリング手法を用いていますのでドライバの不具合などで一部動作しない環境があるかもしれません。
なるべく最新のデバイスドライバで実行してください。

Download
HexaFlow.zip (約2.0MB)

【動作確認済ハードウェア】
nVIDIA GeForce9800GT
AMD RadeonHD4350

【操作方法】
画面左クリック&ドラッグ    視点を回転
    パーティクル配置を初期化
    ポンプ ON/OFF
    横仕切り板 ON/OFF
    縦仕切り板 ON/OFF
    球体 ON/OFF

2009-08-27-flow_3.jpg2009-08-27-flow_4.jpg



実行環境を持っていない方のために動画を用意しました。
HD解像度で閲覧可能です。













複雑な流れで渦巻く様子が楽しいでするんるん
こういう動くものは眺めているだけで面白いですよね。もう少しビジュアル面を強化してスクリーンセーバーにしてみるのも良いかもしれませんね。

「ゲームCG」を切り口にこのような解析系の技術を応用するのは今後増えてきそうです。
最たる例は最近のゲームでは当たり前のように使われている剛体物理シミュレーションです。リアルにするには現実に起こる物理現象をシミュレートする必要が出てきますので、あらゆる分野の知識が求められます。
今回は数値流体力学(Computational Fluid Dynamics)の分野を取り上げてみました。今後は別の分野もご紹介できればいいなと思います。
剛体シミュレーションがメジャーになってきて、今後流体やソフトボディのような柔らかいものが流行りそうな雰囲気です。
CG関連の国際会議SIGGRAPHでの発表論文の中にもゲームに応用できる内容が沢山ありますので注目です!

実はこのデモのGPU版も作成してあります。今回のデモではCPUで約6万個のパーティクルで実験しましたが、GPU版では30倍以上の約209万個(128^3個)でも楽に60fpsが維持できていました。
ということは、数万個程度であればGPUの力を借りることができればゲームにも比較的軽く組み込めるということになります。

この技法を応用することで舞い上がる砂埃や吹雪、落ち葉、煙などの動きがリアルに表現できます。『爆発で周辺のチリが吹き飛ぶ』などの表現も可能になります。
このようにゲームでは今まで無かったような表現が他の分野では当たり前のように利用されていることがあります。
クリエイティブな職種ですのでゲーム業界を超えた他の業種・職種を知ることも大切だと思います。
どこに「ゲームやCG表現のヒントひらめき」が隠されているかわかりませんからネぴかぴか(新しい)ぴかぴか(新しい)ぴかぴか(新しい)

ちなみに以前の流体デモもそうですが、私はこの手の分野を専門的に研究しているわけではありません。
たまたま『見た目が面白そうだったから』という好奇心でちょっと作ってみたものです。
ですので流体以外でもゲームに使えそうで面白そうなものがあればどしどし紹介していきたいと思いますわーい(嬉しい顔)


ヘキサドライブでは自社内製ゲームエンジン「ヘキサエンジン」を開発しています。
共にゲーム作品を作っていきませんか?目
新卒・中途ともにご応募お待ちしています


posted by 管理人 at 11:04 | Comment(0) | 研究・開発

2009年08月26日

選挙

こんにちは、イワムーですわーい(嬉しい顔)

今週日曜日はいよいよ衆議院選挙の投票日ですねひらめき

皆さんの関心はさまざまと思いますが、私はじっくり各党のマニフェストを読み比べ、慎重に検討しています。

が、ここで問題がexclamation×2

なんと投票日である日曜日は、所用があり選挙区に不在のため、投票ができないじゃありませんかあせあせ(飛び散る汗)

これは困ったなぁと思っていたら、今は便利なシステムがあるもんですね。
私のような投票日に指定の投票所で投票できない人のために、期日前投票と、不在者投票という制度が設けられています。

詳しくはWeb等を参照いただければと思いますが、
私は期日前投票の制度を利用して、投票日前に投票をしようと思います。

さて、選挙が終わり9月に入ると、ゲームをはじめコンテンツ産業のイベントが目白押しですねるんるん
なんといっても今や世界最大級のゲームの祭典、東京ゲームショウ2009が9月24〜27日に幕張メッセで開催されます。
東京ゲームショウを皮切りにJAPAN国際コンテンツフェスティバル(コ・フェスタ)のイベントが続々開催されます。
コ・フェスタとは、日本で開催される映画やアニメ、ゲーム、漫画、音楽などの各種イベントを、一定の期間中に開催することで、日本のコンテンツを世界に総合的にアピールする試みで、2007年に始まりました。
ゲームジャンルでは他に日本ゲーム大賞も同時期に開催されます。

皆さんご存知かどうかは分かりませんが、実は東京ゲームショウや日本ゲーム大賞などは経済産業省が後援しています。
また、各コンテンツ産業での人材育成事業に関しても、経済産業省が一定額の予算を計上しており、さまざまな支援がされています。
つまり国がゲームをはじめとしたコンテンツ産業に支援を行っているのです。

ゲーム業界に身を置く立場として、国のバックアップを受けているというのは、非常に心強いですし、今後もさらなる産官(学)の連携を強めて行ければと思います手(グー)

それでは、コンテンツ産業に対する各党のマニフェストを今一度見比べて、期日前投票に行ってきます手(パー)

posted by 管理人 at 16:30 | Comment(0) | 日記

2009年08月25日

グルー言語のススメ

夏らしい日々が続いていると思っていたら、不意に涼しい日が訪れるようになりました。
8月も下旬です。もうしばらくすれば秋の訪れを実感できそうですね満月
こんにちは、ハラです。

タイトルにあるグルー言語メモ
これは、そういう名前の言語があるわけではなく、
他のツールやコマンドを組み合わせて、一連の機能を生み出す事に適した言語の総称です。

今回は、
  1指定されたフォルダ内のファイルを検索
2見つかったファイルに対してツールを実行
3実行した結果を別のフォルダに移動させる
というパターンをグルー言語の1つであるRubyで試したいと思いますわーい(嬉しい顔)

ということで、上の機能左斜め上を下のように左斜め下実装してみました。

require 'fileutils'

# 出力先フォルダを作成(再帰的にフォルダを作ってくれます)
dst_folder = "./dst/"
FileUtils.mkdir_p(dst_folder)

# srcフォルダ内のテキストファイルに処理を実行
Dir.glob("./src/*.txt") do | src_path |
# 変換後のファイル名を生成
dst_file = File::basename(src_path, ".txt") + ".dat"

# ツールを呼び出し(コマンドは必要に応じて変えてください。)
# ``(バッククォート)で囲んだ範囲がコマンドとして実行されます。
# ツールが標準出力に出力した内容は、返り値として返ってきます。
`SampleTool.exe #{src_path} #{dst_file}`

# ツール実行後のファイルをdstフォルダへ移動
FileUtils.move(dst_file, dst_folder)
end

各行の内容はコメントを見てくださいぴかぴか(新しい)
コメント文を除くと8行ですが、さらに短くも出来ます手(チョキ)

このスクリプトを作成したことによって短縮される時間は、
1回のオペレーションあたり数分といった所でしょうか。
それでも、回数が多くなれば無視できない時間になってきますねグッド(上向き矢印)


今回はRubyを使っていますが、PerlやPythonといったスクリプト言語や
UNIXのシェルスクリプト、Windowsのバッチファイルなどでも同様の事が出来まするんるん
(言語によっては、もっと簡単だったり手間がかかったりします)


日々の開発や提出作品のテストを行う中で
  がく〜(落胆した顔)複数回のコンバーターやツールの実行
ふらふらフォルダの操作、ファイルのコピーや移動
もうやだ〜(悲しい顔)文字列(ファイル名、パス)の操作
といった事が必要な方々。

グルー言語の出番かもしれませんよexclamation&question

posted by 管理人 at 12:54 | Comment(0) | プログラミング

2009年08月24日

ニューアイテム!?

こんにちは、先日誕生日を迎えましたケイタですプレゼント
お盆を過ぎたあたりから空気が乾いてきて涼しくなってきたような気がします。
蝉の鳴き声も少なくなってきて、夏好きの僕としては夏の終わりを感じて
少し寂しくなってきましたバッド(下向き矢印)

さて、少し前に『ヘキサジャンパー』をこのヘキサドライブ日記でご紹介したと思います。
この季節でもエアコンの風が冷たい時などに着て寒さを防げるので非常にありがたいんですよねるんるん
そんな愛好者が後を絶たないヘキサドライブロゴ入りグッズ(?)ですが、新グッズを頂いたので
ご紹介したいと思いますパンチ

それがこちら、『ヘキサクリアファイル』ぴかぴか(新しい)

20090824_clearfile.jpg


シンプルなデザインの中にヘキサドライブロゴが輝いて見えますねひらめき
クリアファイルは、ミーティングに必要な資料を入れたり、
書き留めたメモを入れたりなど、様々なところで活躍しているようです。

前回はデジタルな方面で効率化を図るものを紹介しましたが、こういったアナログな方面
の効率化も奥深くて楽しいですねわーい(嬉しい顔)
この魅力的なヘキサドライブグッズを手に入れたい方は、是非ヘキサドライブへexclamation&question

posted by 管理人 at 21:50 | Comment(0) | 日記

2009年08月21日

はじめての…2

こんにちは手(パー)
最近すき屋で話題のキング牛丼を完食した
漢☆マーシー改めキング☆マーシーです目

ボリューム満点でコストパフォーマンスはいうことなしです。
牛丼好きは是非一度ご賞味ください。
(総カロリーは2000kcalオーバー…また太りましたあせあせ(飛び散る汗))

さて、今回は名刺について話をしたいと思います。
一年近く前にも名刺について書いたのですが、ヘキサドライブでは新人を含め、全ての社員が名刺を頂きます。

20090821_mershi.jpg

一年近く月日が経って、初めて名刺を交換する機会がありました。
マナー研修を行ってからブランクがあったので、失礼がないように渡せるか緊張していたのですが、思いの他すんなりと交換することができましたわーい(嬉しい顔)

自分が「ヘキサドライブ」の看板をしょっている。
そう考えると名刺交換は少し誇らしい気分になりましたぴかぴか(新しい)

今後も幾度となく名刺交換する機会が訪れると思います。
そのたびに自信をもって会社の顔だと言えるように、これからも頑張って仕事に励んでいきたいですパンチ

もし何かの機会で名刺交換をすることがあれば、是非とも宜しくお願いしますexclamation
(…あれ?そういえば去年も同じこと書いたような気が…)



posted by 管理人 at 16:42 | Comment(0) | about ヘキサ

2009年08月20日

新型は新型でも…

こんにちは。さいやん、こと齊藤です。

昨日のblogではゲームユーザーにはうれしい新型のニュースがとり上げられましたが、同じ新型でもうれしくないニュースもありましたふらふら
新型インフルエンザの蔓延。
世界で死者が2千人を超え、日本でも3人目の死者が報告されたようですがく〜(落胆した顔)

従来であれば高温多湿を嫌うウィルスが日本の夏場にこれほどの猛威を振るうことは無かったのですが、今回の新型はそんなことはおかまいなしに感染者が拡大どんっ(衝撃)しているようです。
ニュースではプロ野球選手や力士の感染も報じられていますし、体調管理が万全でいかに健康であってもウィルスを跳ね返したりすることは難しいと思います。やはりマスク等の感染予防策を個人が心がける必要があるでしょう。
一人ひとりが意識すれば感染の拡大を少しでも押さえられるのではないでしょうか。

PS3は新型になりスペックアップグッド(上向き矢印)を果たしたことでユーザーが恩恵を受ることができ喜ばしいのですが、ウィルスが新型になって強くなったことでヒトに大変よくない影響を及ぼしていますバッド(下向き矢印)
ウィルス自身にとっては環境に適応するための種の進化は自然の摂理なのでしょうが・・・

ヒトにとって良い・悪いという都合はあっても、時代に合わせてその時々に求められるかたちへと変化をしていくことは、自然の流れであり、必要なことなのだと思います。
企業も市場もよく生き物に例えられますが、時代のトレンドをつかんでうまく適応して生き残っていく、というところにもつながっているように思いました。


posted by 管理人 at 17:32 | Comment(0) | 日記

2009年08月19日

新型発表!

こんにちは。イノウエです!

先日、風邪をひきましたバッド(下向き矢印)
外は暑く、電車内や室内は冷房で寒く・・・
急激な温度変化に体がまいってしまったのかもしれませんふらふら
みなさんも気をつけて下さいねあせあせ(飛び散る汗)
(ヘキサドライブ社内は、冷やしすぎないように気をつけているので大丈夫です手(チョキ)


さて、本日はゲーム業界にビックなニュースがありましたわーい(嬉しい顔)
新型「プレイステーション 3」の発表ですぴかぴか(新しい)

詳しいスペックはこちらで見ていただくとして、
薄型軽量化、省電力化、ファンノイズの低減、
そしてお安くなった価格などなど・・・
嬉しい内容盛りだくさんですねるんるん
欲しいと思いながらも躊躇してしまっていた私としては、
この内容は非常にグッときますグッド(上向き矢印)
(さっそく家族会議を開かねば…)


ゲーム業界に勤める人間として、
こういった大きな発表はとてもワクワクします晴れ
業界が注目を浴び、市場が活性化され、
多くの人がゲームに触れるキッカケになりますよね。
ゲームをプレイする人が増えれば、
自分の関わるゲームに興味を持つ人が増える可能性も高まります。
プレッシャーも高まりますが、作るテンションも高まりますグッド(上向き矢印)
よりよいゲームを作り、多くの人に楽しんでいただけるよう、
もっともっと頑張りたいと思いますわーい(嬉しい顔)

来月は東京ゲームショウも控えています。
今からドキドキワクワクですねぴかぴか(新しい)

posted by 管理人 at 11:34 | Comment(0) | 日記

2009年08月18日

ゲームの難易度

こんにちは。平尾です。
ドラクエのプレイ時間は100を超えましたが、周りの人には追いつきそうにありません。
みんなプレイしすぎではないかと思いつつ、マルチプレイを楽しんでます。
他の人を助ける特技、「おうえん」があって良かったと思う日々です。


今回はゲームの難易度の話を少しだけしたいと思います。

難易度というと、最近のアクションゲームでは EASY, NORMAL, HARD と何段階かあったりします。
基本的には対象ユーザーがほどよい緊張感で楽しく遊んでもらえる段階を NORMAL としています。
なので普段難易度選択があるゲームの場合は NORMAL で遊ぶようにしています。
たまに面倒な場合は EASY を選ぶことも… たらーっ(汗)


ゲームによってはプレイスタイルに合わせて、さらに難しさを変えることもあります。
難易度が NORMAL の中でも、 NORMAL-1, NORMAL+0, NORMAL+1 のように細分化をする、といった感じです。
あまりに顕著にするとプレイヤーに不快感を与えてしまいますので、
気付かれない程度にそっと調整します わーい(嬉しい顔)
例を挙げますと、
 ・プレイヤーがダメージを受けてない時間が長いので、敵の攻撃頻度を少しだけ上げる。
 ・プレイヤーがダメージをよく受けているので、回復アイテムのドロップ率を少しだけ上げる。
といった感じです。
基本的な攻撃力などはそのままに、アルゴリズムで改善させる方が多いように思います。

ただこれもゲームや対象ユーザーによりけりですので、コアユーザー向けのハードアクションだったりすると、そのあたりのフォローは逆効果かもしれません。
難しい問題ですね。ふらふら


ゲームを開発していると毎日プレイして慣れていくので、
放っておくとドンドン難易度が上がっていきがちですグッド(上向き矢印)
なのでテストプレイをお願いして、初めてプレイする人の意見などをもらうことがとても重要になってきます。
そういったことを繰り返しては、ちょうど良い難易度を模索していきますぴかぴか(新しい)


ゲームはプレイヤーに楽しんでもらうために存在しています。
遊び手を意識して、どうすれば面白くなるかを常に考えていく必要があります。
就職用作品を作っていく学生の方も、このあたりを意識して作ると、
よりよいゲームが作れるかもしれませんよ ひらめき


posted by 管理人 at 14:05 | Comment(0) | いいモノづくり道