パッケージ
ViZiMO公式サイトへ
準備中
準備中
ViZiMO
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2007/12/11 16:51

連載

ViZiMO 3Dゲーム組み立て講座
最終回:8人対戦ゲームを作ろう

 

image

 3Dゲームが作れるSNS「ViZiMO」の活用支援連載も今回で最終回です。今回は,先週行われたアップデートについてのお話と,これまでに解説し残していたことを総ざらえしてお届けします。
 ViZiMOを使うと,かなり簡単な操作でいろいろなゲームを作ることができます。冬休みなどを利用してゲームを作ってみるのもよいでしょう。まったく初めてという人は連載の最初から目を通すことをおすすめします。

 

 

8人チャットルームでできること

 

image

8人チャットルームの指定はここで行う

 先週のアップデートで新たに8人が入場できるチャットルームが追加されました。作り方は,通常のViZiルームとほとんど変わりませんが(ルーム設定でチャットルームを選ぶだけ),チャットルームではカウンタやイベントがいっさい使えなくなります。

 ゲームの仕組みを入れるのは難しくても,なにもできないわけではありません。
 オブジェクト単位の接触動作は生きていますので,そのオブジェクト内で完結する処理を仕込むことは可能です。クリスマスイベントに出品した私のクリスマスツリーでは,電飾部分の球体を半径と色の違う球を重ねて作っておき,真上から透明な球を落として接触判定で片方を消去することによって色の切り替えを行っていました。
 キャラクターのアクションにあわせた仕掛けを作ることもできると思いますので,いろいろアイデアを練ってみてください。

 

image

 今回作成したのは,私が昔作っていたゲーム「Isles」を8人対戦に改造したものです。このゲームは,お互いの陣地に積み上げられたタワーをオブジェクトをぶつけ合って崩していくという内容となっています。
 オリジナル版では,互いの陣地を離して配置していたのですが,8人対戦だと,誰がどこに出現するかよく分からないので,陣地は中央にくっつけて,仕切り板で分離しています。ジャンプできない仕様にしておけば,チームごとに隔離することができます。一応,中央部にどちらかの陣営に移動できるような橋(スロープ)を用意していますが,具体的なチーム分けはゲーム内で行ってもらう必要があります。

 

image
image
image

元のゲームでは,たくさんカウンタやイベントが使われていたが,チャットルームではすべて使えなくなる

 

 ルールは少し変更し,2種類あるタワーのそれぞれを倒すと(実際にはその一部ですが),敵の陣営を消去できるようにしました。タワーの上のパーツが衝突すると,土台が消えるという仕様です。陣地は半分ずつ壊れるようにしています。うまく陣地の部分に当たるように,透明なスロープを配置しておき,飛び散ったオブジェクトを集めるようにします。

 

image

 また,ゲームが開始されてからの陣地移動ができないように,橋の部分は,ゲーム開始後にブロックが当たると消えてしまうようにしました。橋(スロープ)は三角柱を横倒しにしたものですが,地面の下にほとんど隠れて頭だけ出している状態です。両端の部分が土台からはみ出すまで拡大してあります。これにより,下のほうでブロックのどれかが衝突すると,上の部分まで消去することができます。
 記述すべきイベントはありませんから,土台がうまく消えることを確認すればゲームはできあがりです。

 

image

 

image

 

image

 

 チャットルームは,その名のとおり,チャット向きであまりゲームには適していません。しかし,カウンタやイベントを使っていなくても,オブジェクトの衝突判定と物理エンジンだけで,これくらいのゲームなら作れるわけです。8人で遊べるゲームというのもなかなか魅力的なので,いろいろ試してみてください。

 

 普通の3Dゲームでもありがちな症状ですね。問題ない種類のゲームもあるでしょうが,アドベンチャー系のゲームではネタバレになってしまうこともあるでしょう。見た目にもあまりよろしくないので,できれば抑制しておきたいところです。抑制法は簡単で,壁を二重化すれば向こう側は見えなくなります。それぞれの壁は薄くてもかまいません。重ねると意味がないので,少しだけ間隔を開けて置く程度で配置してみてください。

 

 ViZiKitの視点操作で最大限に離れても,オブジェクト全体が見渡せないことがあります。このようなときには,視点を移動させることが有効です。ViZiKitの視点操作(ないしマウスのスクロールホイール)で最大限に引いておいて,マウスボタンの左右を同時に押した状態で画面をドラッグします。すると,XY方向に画面をずらしていくことができますので,通常よりも離れた地点から全体を眺めることができます。

 

 

 

場面の切り替え

 

 ある程度込み入ったゲームを作っていると,シーンを切り替えたいという場面も出てきます。他人のViZiルームを見ると,なかにはステージを丸ごと消去,出現させて切り替えている人もいてびっくりしましたが,それも有効な手法ではあります。

   さて,ViZiMOの空間は平面としてはあまり広くありません。そこで出てくるのが,上下を使う方法です。第1回でも説明したように,上下には実に広大な空間が用意されています。この中に平面を複数取ってやればよいわけです。見上げても上のステージ用の地面が見えないくらい離しておいても,何段も配置できます。

   こういった上下のステージ構成だと,ステージ間の移動には落下を使用します。原理上,一方通行になります(上に戻す手はなくもないのですが)。あるステージの終着点の真下が,次のステージの出発点となります。考え方は簡単です。

 とはいえ,ステージの端で終了したけど,次の面は中央から始めたいといった場合もあるでしょう。こういった局面では,落下経路を摩擦のない斜面を使って滑り台のように一定の地点まで誘導する方法が有効です。
 また,多層構造でなくても長いステージで「途中セーブ」を行いたい場合,出現地点を上空に設定しておき,セーブポイント上にあわせた土管などを使ってやれば,再出現の場所を指定できるようになります。

 

 そのほか,使える場面は限られるのですが,瞬間移動も場合によっては有効な技です。椅子に腰掛けるときには,ちょっと離れた位置からでもXキーを押すと瞬時に移動して座ってしまう現象,あれを応用した技となります。
 使用するオブジェクトはベッドです。ベッドでは,必ず片側に腰掛ける動作となります。反応範囲も広めです。

 

image

この位置でXキーを押すと……

image

いきなりこの位置に座る

 

 では,ベッドをX方向に引き伸ばしてみましょう。腰掛けると,かなり遠くの位置まで一瞬で移動していることになります。これを応用し,透明化したベッドを出現させて,Xキーを押させると,瞬時に離れた地点まで移動できるようになります。出現地点では,キャラクターとの当たり判定でベッドを消去するようにしておけば,まさに一瞬で移動してきたように見えるわけです。

 

image
image

 

 ただし,向きなどを調整しようとすると,かなりわけの分からないところに出現したり,ViZiKITのアップデートで挙動がまったく変わってしまうこともありますので,使用するときにはあくまでも裏技として,覚悟して使ってください。また,あまり引き伸ばしすぎたり,近くにほかのオブジェクトがあると腰掛ける動作を行わなくなりますので注意してください。

 

image

こんな感じで回転させてみると……

image

こんな位置に出現する

 

 オブジェクトグループで作成したオブジェクトは,物理運動をさせると,それぞれのオブジェクトがバラバラに動いてしまいます。なんとかまとめて動かす方法はないでしょうか? 
 いろいろ試してもあまりうまくいってないのですが,オブジェクトを透明な容器に入れて,隙間をきちんと埋めておくことである程度の移動はできなくもありません。
 容器として使用するのは浴槽です。浴槽を2個積み上げ,上の浴槽は180度引っ繰り返しておきます。下の浴槽を80%に縮小し,上の浴槽をかぶせます。これでオブジェクトグループを作り,大きさを調整します。
 中に入れるオブジェクトは,お互いにめり込んでいないものが必要になります。造形の自由度はかなり低くなりますので,注意してください。間を埋めるのはさらに大変です。しかし,かなり面白い効果も狙えるので,チャレンジする価値はありそうです。

 

 初心者のViZiルームの多くで見受けられるまずい点に段差の処理があります。
 ゲーム内のキャラクターは,ほんの少しの段差なら気にせず登れるのですが,オブジェクトを持っていたりするとそれも難しくなったりします。いちいちジャンプを使用しないといけないというのはプレイヤーのストレスになります。段差部分には透明なスロープを作って,バリアフリーなゲームを作りましょう。

 

 

 

雪をたっぷり降らせよう

 

image

 クリスマスシーズンということで,現在開催されているクリスマスイベントにもあわせて,雪を降らせるテクニックを紹介します。ViZiKITがクリスマス前に重力調整機能を導入したのは,雪を降らせてほしいということだと思いますので,ここは一つ思いっ切り降らせてみましょう。
 もちろん先週紹介した合成を行えば多くのオブジェクトを扱うことができるのですが,動作が非常に重くなりがちなほか,合成したオブジェクトには物理法則が効かなくなったりすることもあります。
 通常のオブジェクト制限数内で多くの雪を降らせる秘密は,使用するオブジェクトにあります。ここで使用するのはレンガブロックです。

 

image

 

 まず,レンガブロック2個を90度回転させて組み合わせます。「く」の字型のオブジェクトグループを作ったら,これを拡大・縮小モード(Rキー)で拡大していきます。この際に,表示されている座標軸のハンドルをつかむのではなく,オブジェクトを直接つかんでいろいろ動かしてみてください。ある角度からつかんで,ある方向にマウスを動かすとどちらかのブロックがバラバラになるのが分かります。

 

image
image

 

 ある程度コツをつかんだら,できるだけバラバラになるように変形します。一度で細かくならない場合は,バラけかけたものを2個組み合わせて同じ操作をするとさらに細かくできます。また,あまり細かくしすぎると,あとで全体的な大きさの調整ができなくなりますので,ほどほどのところにしましょう。

 

image

 

image

 

image

 

 こうしてできた8個の粒を使えば,1オブジェクトで通常の8倍の密度の雪を降らせることができるわけです。
 配置方法は適当でよいのですが,私がやっているのは,まず横に等間隔で格子になるようにオブジェクトを並べ,それを1単位にして,コピーと回転および移動(左右と多少の上下)をして配置します。だいたい置き終わったら,横から見る視点で適当な範囲を矩形選択して,上下に揺らしていきます。いろんな角度からあっちこっちを上下にばらけさせればできあがりです。格子のコピー時にいろんな角度に回転させておくのがコツとなります。直線の並びを目立たなくするには,それなりの数を動員することが必要です。

 

image

 

image

 

image

 

image

 

 あとは重力を0.1にして落下させてください。雪に当たり判定をつけると0.01kgに設定しても意外と痛いので,衝突判定なしで自然消滅と自然生成を利用して降雪を持続します。このとき,ルーム全体を基準平面から下に設定し,オブジェクトの自然消滅平面の近くまで下げておくと,地面以下の部分の通過時間を節約して雪の密度を少し上げたり,少数の雪でも継続しやすくすることができます。ただし,当たり判定なしだと,家の中でも雪が降ってしまうので気をつけてください。
 この方法の欠点は,雪が四角いことです。しかし,遠目には分かりませんので,プレイヤーの近くでは丸い雪を使い,遠くではこの方法を併用するとオブジェクト数の節約とクオリティの両立ができそうです。

 

 オブジェクトを1cmだけ持ち上げたいのに,慎重に操作してもおおまかにしか動いてくれないことがあります。上下に動かすのが難しい場合は,上下の移動矢印をつかんで左右に動かしてみましょう。ダメなときはダメですが,いくぶん改善される場合もあります。

 

 角度など,画面上に表示される数値と,オブジェクト操作ウィンドウで表示される数値が食い違っている場合があります。また,同じ角度なのに2段階で回転できたりと,表示されている回転角と実際の回転角が微妙に異なることがあります。こういうものが誤差になって積み重なると,歪みや異常動作の原因になることもあります。
 ViZiKITでは0.5度くらいはずれることがあるのを理解していれば,適切な補正ができる場合もありますので,覚えておきましょう。

 

 

 

正式サービスに向けて

 

 さて,ViZiMOですが,登録人数はようやく3000人を突破し,確実に増えてきているものの,作品を作る人はまだまだ少数という感じです。SNSとしては人数も少なめかもしれません。ただ,マルチプレイ対戦の3Dオンラインゲームがこれほど簡単に作れる環境というのもほかにはないと思います。
 この連載では,制限の多いViZiMOで比較的難しそうな処理を取り上げて解説してきましたが,乱数が近いうちに導入されるのをはじめ,そのうち「いままでの苦労はなんだったんですか」というような改善がなされるかもしれません(早くなんとかしてほしいところです)。将来的な予定として挙げられている,ユーザーによるオブジェクトの作成ができるようになれば,ViZiMOのできることも大きく変わってくることでしょう。今後,正式サービスに向けて,機能拡張が行われるはずですので,期待したいところです。
 個人的な印象では,あちこちをあと少しずつ改良すれば,ViZiMOはかなり本格的なこともできるオンラインゲーム開発ツールになりそうです。あとは,コミュニケーションをもっと取りやすくしてくれれば,SNSの印象もかなり変わってくるでしょう。本来,使い方が難しければ情報交換などでコミュニケーションは盛んになるものだと思うのですが,微妙にコミュニケーションを取りにくい感じで,できればコラボレーションの仕組みなどもほしいところです。
 ViZiMOの今後の発展に期待しつつ,連載を締めたいと思います。ご愛読ありがとうございました。

 

 

 同じ座標にオブジェクトを複数置いておくと,2個のオブジェクトで同時に接触判定が取れます。また,薄いオブジェクトは,貫通してその後ろにまで衝突判定が及ぶこともあります。裏側まで判定させたくない場合は,表のオブジェクトを分厚くしておきましょう。
 逆に,裏側までの判定を利用することもできます。例えば,地面を二重構造にしておくと,上の面をある程度の厚さに調整することで,歩いている間は上だけ,ジャンプなどを行うと下までイベントが届くように調整することもできます。ゲームに使えるかどうかは微妙ですが,物体の運動速度に応じた処理の切り分けとなりますので,覚えておくとよいでしょう。

 

 オブジェクトをグループで扱っている場合などに起こる現象ですが,グループの一部に極度に小さい(X/Y/Zいずれかの幅が小さい)オブジェクトが含まれていると,オブジェクト全体を選択したときに縮小できなくなります。オブジェクト縮小の最小幅は決まっているようですので,どこか一部が,その制限に達してしまうと,グループ全体が縮小できなくなります。
 極端に細い部分は作らないようにして造形し,全体を使用する大きさで固めたあとに細部を変更していきましょう。

 

 雪を作るときに使っていますが,オブジェクトグループを選択してRキーで拡大・縮小モードに入ったときに,操作用座標軸の,マウスカーソルが触れると黄色く変わるハンドル部分が表示されないことがあります。
 この状態では,拡大・縮小は中央の円の部分で全体一律にしかできないようにも見えますが,実はオブジェクト自体をつかんで操作することで,座標軸ごとに独立の倍率で変形ができます。ただし,場合によっては元の形状が壊れることがありますので,注意して扱いましょう。また,なぜかY軸の倍率は変えられないようなので,Y方向の大きさは全体的な拡大・縮小で調整するようにしてください。

 

 

■■Veki(なぞの職人)■■
 Tipsネタに困っていたのがつい先週だったのに,今回はむしろTipsの山。メインのネタが完成しなかったのだそうで,急遽かき集めた模様。メインネタになるはずだったRPGは,そのうち発表されるのでしょう。とりあえずお疲れさまでした。ところで,第1回で作ってたゴルフとピンボールとパズルって?
  • 関連タイトル:

    ViZiMO

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月25日〜04月26日