2014年12月31日水曜日

2014年のおわり



 今日で2014年もおしまいです。この1年を振り返ってみましょう。まずは今年描いた絵で気に入ったものをピックアップしました。

2014年12月10日水曜日

【Unity】RTS : かんたいプロジェクト 艤装と記録

艦船設計モードで砲塔などのモジュールを追加して記録できるようにした。プレーヤーはモジュールをマニピュレータで操作して船体の好きな場所に設置できる。設置場所が不適切だとモジュールは赤色になる。設置後に記録ボタンを押すと前回作ったCSVのクラスを通してモジュールの位置がCSV出力される。今後はモジュールの回転やCSVから読み込んでのモデル再生に取り組む。

2014年12月3日水曜日

【Unity】RTS:かんたいプロジェクト:CSV出入力

砲塔などのモジュールの位置などを記録するためにCSVファイルを利用する方法を試していて、出力・読み込みがうまくいきました。このために構造体を定義してこれにモジュールのタイプ、位置、方向が記録されます。これでカスタマイズされた艦船を保存したり呼び出したりすることができる機能の根元の部分が出来上がりました。

2014年11月23日日曜日

【Unity】RTS : かんたいプロジェクト スクリプトの改良など

前回から細かい部分の改良を続けている。これまで各砲塔は他の砲塔と射界が重複できなかったがそれが可能になるようにした。射界の上限下限を決める構造体を定義した他、既存のスクリプトを改善して可読性と処理を速めた。今後はドローコールの削減と船体のエディタの改善に努める予定。

2014年11月11日火曜日

2014年11月9日日曜日

【Unity】RTS:かんたいプロジェクト:ダメージやUIなど

 Unity5のbetaを導入して開発を続けている。ダメージシステムを実装し、移動から攻撃、撃沈までひと通りできるようになった。一応、ここでプレイできる。WASDキーでカメラが移動できる。操作は少し変わっていて、まず船をクリックし、次いで最初に移動したい場所とその次に移動したい場所をクリックすると命令が出せる。手前の2隻が味方で奥が敵。攻撃は自動で行われる。

2014年11月4日火曜日

【Unity】かんたいプロジェクト:複数目標の同時捕捉と攻撃

前回、船は捕捉した目標をその方位を元に予め設定された方位グループに分類するようにしていた。今回そのグループごとに最終攻撃目標を選定し、担当する砲塔に指示を出せるようにした。砲塔は属するグループIDと各砲塔IDの2つのインデックスを持つ2次元配列に登録される。船は方位グループごとに一番近い目標を確認して担当グループに属する砲塔に攻撃指示を出す。これで攻撃管制はほとんど完成した。今後は実際に砲弾が命中した目標にダメージをもたらすようにする。モジュール破壊の概念があるので、例えば砲塔に砲弾が命中すると砲塔は破壊される。たとえ直撃弾でなくても例えば船の機関部などにもダメージを与えたいので砲弾には適した形のコライダーをくっつけて判定を行う予定。

2014年10月27日月曜日

【Unity】かんたいプロジェクト:マニピュレータ

ゲーム中でオブジェクトの位置を操作できるマニピュレータを作った。それぞれの軸をマウスで掴んでドラックすればマニピュレータが移動する。作りは単純で例えばX軸を摘んだ場合、カメラからカーソル位置に照射したレイのヒットポイントの内X軸の増減分のみを読み取って移動する。ただしこの方法だと背景がX-Y平面の場合Y軸方向の移動は出来ない(レイの照射のヒット地点のY成分は常に一定のため)。対策としてはカメラの動きに合わせてマニピュレータのバックに展開するレイの照射を受けるプレーンオブジェクトを用意する方法がある(プレーンをカメラの子分にしてプレーンをカメラに向けて離れたところに置くと、マニピュレータがプレーンとカメラの間にあるかぎりきちんと操作できる)。かんたいプロジェクトではプレイヤーが艦船の設計ができるよう機能を実装する予定なので、こうしたマニピュレータが必須になる。

2014年10月21日火曜日

【Unity】かんたいプロジェクト:複数砲塔の運用

ポンポン目標を砲撃する
攻撃制御スクリプトがn個の砲塔を管理できるようにした。といっても以前1個しかなかったものを配列にしただけなのでまだ完成していない。艦砲の位置の関係上攻撃制御スクリプトは左舷の目標については左舷の艦砲を割り当て、右舷には右舷の艦砲を割り当てる必要がある。そのため記録する目標のデータに角度も取り入れた。探知された目標は、ゲームオブジェクト・距離・角度でそれぞれ共通した添字で配列に記録される。あとは各砲塔をその位置に従い最適な目標を割り当てればいいのだけどもこれについてはまだ研究している。角度による目標の分類は単純に左舷・右舷以外にも十分増える可能性があり、汎用性を持たせつつ、各分類で最適な目標を選定できるようなコードを書きたい。

2014年10月20日月曜日

【Unity】かんたいプロジェクト:攻撃とUI

右下にあるのが戦艦ぺりーぬ号
船が攻撃目標を捜索し、砲撃できるようにした。これはBwarsと同じアルゴリズムで、探索範囲内の目標をリストに登録>目標に射線が通るか確認>目標までの距離で絞込み>砲塔に攻撃目標を伝達となっている。ただし異なるのは砲塔でも再度目標に射線が通るか確認するプロセスが含まれていることで、これは船の艤装が射線を遮る可能性を考慮しているからだ。


2014年10月18日土曜日

【Unity】艦隊戦ゲーム

クリックした場所に移動する箱…どこかで見た光景だ
紆余曲折あったけど、結局またミリタリーもののゲームを作ることに決めた。今度は海戦をやろうと思う。早速クリックした場所に箱が移動する原始的なスクリプトを作った。これはBwarsでたどった道だけども、今回はC#を使いより洗練されたスクリプトになっている。今回のゲームはRTSとターン制の折衷案のシステムになる予定で今年中に完成させる。

2014年9月17日水曜日

【Unity】新UIなど


 新UIをいじってて、ボタンなど試したり。ボタンを押すとペリーヌが怒るというしょうもないもの。まだ不得要領。

2014年9月15日月曜日

ボードゲームをしました


八王子で重げ会というボードゲーム会に参加しました。初めてプレーしたゲームはNaitionsというゲームでリソースをうまく配分しつつ国家を経営するゲームでとても楽しめました。つぎにプレーしたのはCivilaizationでこの2つのゲームで一日が終わってしまいました。ボードゲームはいかにルールを簡略化し煩瑣にならないようにしつつ面白さを維持する工夫という点でとても参考になると思いますし、また駒やボード、カードなどデザインでもとても惹かれます。掘り下げて研究したいと思いました。

2014年9月7日日曜日

【Unity】2Dの勉強


 2Dのチュートリアルをたんたんとこなしています。コルーチンよくわからぬ…

2014年9月2日火曜日

【Unity】Unityちゃんやら

最近特に派手なこともやっておらず、Unityちゃんでアニメーションを少し勉強したり、2Dのチュートリアルをしたりしています。群れモデルの記事を見つけたので時間があったら試してみたいです。

2014年8月30日土曜日

【Unity】RTS:Bwars改良版

ちょこっと改良版。中身は変わっていませんが、一部の機種でブルースクリーンになるバグを直しました。原因は霧のせいでした。



DropBoxからダウンロード
(for win, mac, linux 32bit and 64bit + english info)

あるいはMediaFIreからダウンロード

ダウロード出来ない場合、旧版はこちら

2014年8月13日水曜日

【Unity】感染シュミレーションの試作


 感染症のシュミレーションのようなものを作って見た。フィールド上には多くの人(白い点)がいて、そのうち感染症にかかっている人が1人(赤い点)がいる。人々は4つの拠点(白い立方体)にたむろしたり、拠点間を移動したりする。最初の感染者は30秒後に移動を開始し、人と接触することで感染を広めていく。ここで確認できる(WASDキーで移動可能)。このようなゲームは不謹慎で不快に感じる人もいると思う。しかし今、私はシリアスゲームというものに強い興味をもっていて感染症を封じ込める方法を探るという観点から試作をしてみた(今のところゲーム中で対策手段はないので感染は広まるのみ)。シリアスゲームについての考えはおって書こうと思う。

2014年8月11日月曜日

【Unity】:今後の方針について

正直最近戦車ゲームを作ってもあまり勉強にならない気がしている。すでにある知識を組み合わせたら作れるがそれでは意味が無い。それより取りこぼした多くの技術を拾って勉強していくべきだと思う。たとえばMecanimは一度も触ったことがない。しばらくはこのブログには2010年開設から続いた投稿―今日はどのチュートリアルをやっただのどうなの―のような投稿をしていこうと思う。依然として作りたいゲームはあるけどそれは今後習得される洗練された技術で作られるべきだ。

2014年8月1日金曜日

【Unity】複雑系

個々の単純な動機による無秩序な移動が集団となった場合に一定の方向性を示し始める、というモルモンコオロギの話を読んで、Unityでそれをシュミレーションしてみたいと思った。ゲームオブジェクトに単純な移動に関するルールを設定して好き勝手させて観察してみたらそれなりに面白い結果になった。これはゲームとは呼べないけど、例えば移動の選択に関して任意の重みを設定できるようにしたら興味深いかもしれない。

2014年7月29日火曜日

【Unity】戦車ゲーム:跳弾


戦車の砲塔の回転方式を変えた。結局角度を常に監視してある角度以内までズレが収まるまで回転するようにした。また砲弾が跳ね返るようにした。ここで試せる。
 砲弾は衝突時にレイを照射する。照射する地点は砲弾から正確にすこし後ろの位置から(というもの砲弾の位置はほぼ衝突地点と同じで誤作動が起きるかもしれないので)で、砲弾の飛翔方向に照射する。これで(照射の着地点(ほぼ砲弾の衝突地点)- 砲弾の少し後ろの地点)をAとするとVector3.Reflect(A, hit.normal)から反射地点が求まる。あとは砲弾を反射地点に向ければ跳弾となる。

2014年7月21日月曜日

【Unity】戦車ゲーム:回転の制限ができない


 WoTよろしく砲塔の動きに照準が追随するようにした(ここでプレイできる)。いま砲塔の回転はQuaternion.Slerpを使っていて、これは砲塔をスムースに回転させてくれるのだけども、困ったことにx,y,z軸まわり見境なく着弾地点を指向するので、砲塔と車体の動きがばらばらになってしまう。車体のY軸まわりの回転のみ可能にするのは簡単そうに見えて結局できなかった。もちろん他の方法はある。例えば常に砲塔の目的の角度と現在の角度を監視して、Rotateで回転を指示する方法だ。これなら回転軸を固定できる。しかしあまりかっこよくない。

2014年7月13日日曜日

【Unity】戦車ゲーム:照準と発砲


照準と発砲を実装した。ここでプレイできます。(WASDで移動、クリックで発砲2秒間隔)

 照準は常に画面の中央に表示される。カメラはマウスカーソルを追うので、結果的にマウスを動かした方向に照準が移動する。今のところ砲塔がどこを向いていようと照準に弾が飛んでいきます。


2014年7月7日月曜日

【Unity】戦車ゲーム:TPS視点

 
 WoTみたいなゲームを作るということで、ひとまずWASDキーで戦車が動いてカメラが追随するようにした。戦車を視界に収めつつ、マウスの位置に視点が回転するようになっている。仕組みとても単純で、下の悲惨な仕上がりの図に説明されている。

2014年6月27日金曜日

【Unity】WoTみたいなゲームをつくる


最近勉強のためにUnityで何かつくりたいなーと思っていて、しばらくやってないWoTを作ろうと思った。

2014年6月15日日曜日

【Unity】RTS:視点移動を改善した最新版

前回のBwarsのリリースから3ヶ月以上(!)経ちましたが、ようやくゲーム中の視点移動を改善しました。画面の端にカーソルを持って行くと視点が移動します。また視点移動の速度を設定し保存することができるようになりました。ダウンロードは以下のリンクから出来ます。

(サイズは約160MB)
私の環境では何故かダウンロードしたMac版が動作しません

詳しくは「追加の情報」(ReadMe2)ファイルをみて下さい。ゲームの内容・ボリュームは前回と変わってないです。ボリューム増やしたいです…ストーリーももっと作りこみたいです…

◆動作が不安定な場合ベクターなどから旧版のダウンロードをこちらから出来ます。

2014年6月1日日曜日

進捗など

 ご無沙汰しています。カノコガです。前回の更新から―ほぼ3ヶ月前から―いろいろなことが起きました。一番大きなことは7回目の引っ越しをしたことですが(小学生の時のを加えたら8回目)、その前にさんざん放置しているBwarsについてまず書いていきましょう。ところでニパ、誕生日おめでとう!5月31日は彼女の誕生日でした。

2014年3月9日日曜日

【Unity】RTS:ランダムマップジェネレーター

AOEシリーズのようにゲーム毎にランダムマップを生成するステージを研究している。スクリプト的には地物をランダムな位置に配置すればいいので、大したことはないが森に悩んでいる。Terrainに木を植えつけた場合、遠くの木はビルボードに自動的に変換され処理の軽減が行われる。しかしランダムに配置するためには木はゲームオブジェクトになるのでビルボード処理は行われずドローコールが激増する。もちろんスクリプトでカメラとの距離の関係で3Dとビルボードの切り替えは可能だが…(面倒くさい)

2014年3月3日月曜日

【2013欧州旅行】旅行のまとめ

ヨーロッパでも今度は北を攻めたい!北欧に行きたい!と思って始まった旅行は1ヶ月かけてフランス、ドイツ、ポーランド、リトアニア、ラトヴィア、エストニア、フィンランドを順に周るというこれまでにない大きな旅になりました。現地の空気に触れられて本当に良かったです。実際の旅行の記録はここで見ていただくことにして、ここでは旅行の体験をもとに安上がりな旅行をする方法を書いていこうと思います。

2014年2月28日金曜日

【Unity】Bwars正式版


 第二次大戦RTSゲーム「Bwars」を公開しました。以下からダウンロードできます(ファイルサイズはおおよそ160MB(圧縮60MB)です)。

2014年2月24日月曜日

【Unity】RTS:新メニューの実装

新メニューを実装した。メニューに示されている通り10個(+クレジット)のステージがプレイ可能だ。メニューはただの画像で、各ステージを選ぶ部分にマウスオーバー判定をつけている。ロゴは間に合わなかったがデザインについてはだいたい満足している。前回のはひどかった。私見だけども今は円形のデザインがトレンディーではないかと思う。様々なSNSで円形のアバターが使われている。シヴィライゼーション5も円形のアイコンだ。丸みを帯びたデザインが流行っているのだろうか。OSXは選択ボタンが丸みを帯びたものからより四角になった。これはこれでカチッとしていいと思う。

2014年2月23日日曜日

【Unity】RTS:全ミッションの完成

最終ミッション「太陽塔の秘密」が完成した。これで都合ミッションはチュートリアル3つ、キャンペーン5つ、おまけ2つの計10個となった。


2014年2月20日木曜日

【Unity】RTS:未来人とシールド


 未来兵器の実装がひと通り終わったので、それを操る未来人(正確に言うと過去から来たので未来人ではないが)も描いた。あるミッションで登場予定。圧倒的に強力な未来兵器で世界の征服を企んでいる。しかし名前はまだない。

2014年2月19日水曜日

【Unity】RTS:陸上戦艦


シナリオに登場する未来兵器の開発を始めた。上の陸上戦艦は3つのビーム砲塔とミサイルで武装しており、明らかに性能がぶっ飛んでいる。敵役として登場予定。チートで出せるようにしてもいいかもしれない。

2014年2月17日月曜日

【Unity】RTS:空挺と爆撃機

落下傘。しめじではない
 空挺部隊と爆撃機を実装した。プレイヤーは支援を使って任意の場所に空挺部隊を降下させることができる。空挺部隊は通常の歩兵よりも強力な戦闘力を持っている。

【Unity】RTS:火炎放射戦車の実装

火炎放射戦車を実装した。軽戦車のおもちゃみたいな戦車砲を火炎放射器に換装したもので、歩兵に対しては極めて効果が高い(装甲車にはほとんど効かない)。火炎放射戦車は歩兵のように森や街の中でも戦闘が可能である。

2014年2月14日金曜日

【Unity】RTS:プレイ可能な改良β版

プレイ可能な改良されたβ版(0214ver)を公開しました。下記リンクからアクセスできます。


(Unityプラグインが必要・ウェブ上での実行なので遅いかもしれません、作動しない時はリロードを)

2014年2月13日木曜日

【Unity】RTS:城壁とバンカー

城壁に隠れ敵の攻撃を防ぎつつ攻撃をおこなう
 城壁とバンカーを実装した。これらの構造物は一定の確率で砲弾を無効化する機能がある。この機能は至近での発砲には適用されないので、構造物に自分は身を隠しながら遠方の敵を攻撃するということができる。今のところ城壁は50%、バンカーは75%の確率で砲弾を弾く。

2014年2月11日火曜日

【Unity】RTS:ポップ通知


ゾーンを占領した時に通知が表示されるようにした。また支援は稼いだポイントに応じて要請できるようにした。つまりゾーンを占領するほど支援が得られるようになるが、支援に必要なポイントはだんだんと増大していく。

2014年2月10日月曜日

【Unity】RTS:UIのデザイン変更

UIのデザインを変更した。以前のブラックが中心のデザインは田園風景的なBwarsには不釣り合いだったので、シムシティ風に白と青を基調にした。

2014年2月3日月曜日

【Unity】RTS:今後の方針について

先日自律AIの開発を断念したが、どうしても諦めきれない部分がある。そこで2月末の締め切りを意識して以下のように目標を決めた。

1)既存のタワーディフェンス型ゲームの細かな改良に努める(大規模な改修はしない)
2)自律AIの発展に努めゲーム性は低くても一応動作するレベルまでもっていく
3)UI・演出を改良する

2014年1月31日金曜日

元日早々に死にかけた話

 2014年の1月も今日でおしまいとなりました。あっという間ですね。そこで今年の元日早々に私が死にそうになった話をしようと思います。

2014年1月30日木曜日

【Unity】RTS:自律的なAIの断念

自律的に動くAIの開発を断念することにした。現状ではAIは各中隊に戦略的な攻撃目標を指定して各中隊は比較的効果的な戦術を使った攻撃が可能になったが、一方でまだ課題は山積しており、2月末には間に合わないと判断した。プレーヤーと同じ土俵で戦うAIを目指したが、達成できなかったのはとても残念だ。

2014年1月27日月曜日

【Unity】RTS:AI 指揮範囲に収め続ける

指揮範囲の円
中隊指揮車は指揮下のユニットを指揮範囲内に収め続ける必要があるが、攻撃と防御で複雑な行動をとるユニットをどうしたら範囲内に収め続けることができるか探っていた。

2014年1月25日土曜日

【Unity】RTS:AI 戦略の評価手順


十一月AIで敵味方の中隊がどのような組み合わせで交戦するのが最適か計算できるシステムの開発を始めた。

2014年1月23日木曜日

【Unity】RTS:AI 戦略的判断


戦域全体の状況を俯瞰し各中隊に戦略的指令を出す最上級AI「十一月AI(NovemberAI)」の開発を始めた。

2014年1月21日火曜日

【Unity】RTS:AI グループ単位の攻撃と撤退

損傷したグループ1は後退し、新鮮なグループ2が突入する
グループ単位で状態を監視できるようにしたことを利用してグループが損傷すると撤退するようになった。またその際、任務の割り当てがない他のグループに支援を頼めるようにした。

2014年1月20日月曜日

【Unity】RTS:スマートな突撃攻撃

攻撃グループが損傷を抑えて攻撃できるようにした。上の写真は陣形を展開するため移動中のユニット。

2014年1月19日日曜日

【Unity】RTS:グループごとの状態と陣形の展開

戦闘力55以上のグループを作るように指示したところ戦闘力50の重戦車と戦闘力5の軽戦車でグループが編成された。
 前回必要な戦闘力に応じてAIは指揮下のユニットをいくつかのグループに分割できるようにしたが、それに伴いグループごとのユニットのHPなどの状態を監視できるようにした。

2014年1月18日土曜日

【Unity】RTS:攻撃グループの編成

突撃する攻撃グループと待機する予備戦力のグループ
AIが局所の状況を判断できるようにセンサー類を実装した。またこれまでAIは指揮下のユニット全てに指示を出していたが、これを任意のユニットに指示を出せるように改良した。

本引取のお願い

 大量の本を捨てることにしました。もし欲しい方がおられたらお送りします。

2014年1月17日金曜日

【2013欧州旅行】その13ハイデルベルグ編

2013年11月に1ヶ月ほどかけてフランス、ドイツ、ポーランド、リトアニア、ラトヴィア、エストニア、フィンランドを旅行した記録
タグ
--------
ハイデルベルにいるビスマルク
11月29日、つまり1ヶ月に及ぶ欧州旅行の最終日の前日、ハイデルブルグを訪れた。