短編RPG制作 – その1 はじめに

もう春ですね。
最近、家ではウディタ(Wolf RPG Editor)をいじってました。

160321

これまでRPGツクールのようなツールを触った事が無かったのですが、
フリーゲームで面白いのが沢山あるので、自分もやってみたいと思ったのが始まりです。

他のエンジンでなく、ウディタを選んだのは、無料なのと、
実行ファイル(ゲーム/エディタともに)がコンパクトだからです。
インストール不要で、提供も楽なのは大きいです。

しかし、触っているだけでも楽しいですね。
私にとってはウディタ自体が壮大なRPGです。

正直、扱いはかなり難しいですが、クセみたいなのが分かってくると、どんどん進むようになります。
こんな面白いツールに今まで着目しなかった、自分のアンテナの低さがうらめしいです。

で、成果物は?というと、10分ぐらいの超短編は出来ました。
(…とても公開できる物ではないので一人で楽しんでます)

「基本システム」という、ベーシックなRPGなら比較的簡単に出来るシステムが提供されているので、
こちらのサイトを参考にさせていただき、全体の流れをつかむ事は出来ました。


で、次は3~4時間ぐらいの規模の短編を目指しています。
今回の記事から、開発日誌という事にしたいです。

さらに、ゲームシステムも一歩踏み込んで、オリジナルにしています。

とはいえ、一から作るには、まだノウハウが足りていないため、基本システムを改造したものにします。
制作にあたり、ひとつだけ心に決めているのは、

「単純化する事」

です。

新しいシステムを追加するにしても、複雑化する方向にはしないという事です。
また、使わないものは積極的に削除します。

SFCの頃のRPGのような、単純なインターフェースで
ゲーム部分に集中出来るものを目指したいと思います。

ちなみに、私はゲームプログラミングに関しては素人なのですが、
幸か不幸か、IT業界歴がそれなりに長いです。

職種は、厳密にはプログラマーではないのですが、
「コスト削減」「生産性」「効率化」「品質」等々については、
日々厳しく求められる環境にいます。

その地の利(?)を生かし、ゲームに限らず、ソフトウェア開発の観点から、
ユーザビリティや、開発プロセスの効率化などに着目した記事も書いていきたいと思います。

ではまた。

カレーを作ろう(ただしCGで) – その2 ライス1

あけましておめでとうございます!今年もよろしくお願いします。
2016年の初投稿は、カレーへの挑戦の話。
MODOをご存じない方も、何となく雰囲気だけでも楽しんで頂ければと思います。


#前回の続きです。

 ※細かい説明は端折り、要点だけに絞ります。
  用語や手順を全部説明していると、かなりの量になり、情報密度が薄くなるため。
  不明な用語など出てきたら、Web検索等で調べて頂ければと思います。

まずは、ライスの部分から作ろうと思います。
理由は、途中で挫折しても、普通のご飯として流用出来るからです(汗)。

…と思って初めて見たものの、いきなり超難問です。
問題は幾つかありますが、大きく分けると以下の二つ。

問題1: 大量の米の塊をどう表現するか?

 色々実験してみたのですが、サーフィスパーティクルジェネレータ(Surface Particle Generator)を
 使ったパーティクルでの表現が、もっとも目的に近くなると判断しました。
 これは、メッシュの表面にパーティクルを散布する機能です。
 これを使って、米粒をリプリケータで複製します。

 メッシュを変形すると、パーティクルも追従します。
 米粒のモデリングも数種類で済み、差し替えも可能なので、変更にも強いです。

Suraface Particle Generator

Suraface Particle Generator

 今回、上記のベースメッシュを、3枚重ねにして使います。
 (パーティクル間の隙間が出来ないように。)

問題2: どうしたら炊けているように見えるか?

 「炊けたお米」の質感は難問です。地道なトライ&エラーを繰り返している所です。

 ライティング、シェーダー、マテリアル(特にSSS)、
 更にはPhotoshop等でのポストプロセス、どれが不十分でも、ご飯には見えませんでした。
 プラスチックにしか見えません(超キモい絵になるので注意)。特に、SSSは非常に重要です。

 目標は欧風カレーですが、米は、日本人に親しみのあるジャポニカ米にしましょう。
 お米のモデルと、SSS、サーフィスパーティクルジェネレータ、リプリケータの設定は以下の通り。

お米(ジャポニカ米)の設定

お米(ジャポニカ米)の設定

 ご飯は炊くと膨張するので、現実世界ではもう少し大き目かもしれませんが、
 お米全体を大き目にすると、SSSの結果が期待通りになりませんでした(原因は不明)。
 なので、いったん上記のサイズで進めます。

 ※サーフィスパーティクルジェネレータのお米の間隔は、3.3mm。

 ※また、お米の方向は、(掻き混ぜた後、膨張するので)ほぼ全てランダムに近いと仮定して、
 リプリケータのランダム角度を全方向90度にしてみました。

そんなこんなで、出来たのがこちら。いったん、ご飯茶碗に盛りつけてみました。

冷や飯1号

冷や飯1号

冷や飯ですね。ちょっと芯が残っていて、質感も十分ではないです。
次回、温かくしてみたいと思います。

欧風カレーの場合、ラグビーボール型に盛り付けるのをよく見かけますが、
これまたパーティクルの方向調整が難しそうです。
出来たら、ラグビーボール型にしてみたいと思います。

おまけ:サフランライス(もどき)
ジャポニカ米をインディカ米(細長い)に差し替え、盛り付けてみました。

サフランライス(?)1号

サフランライス(?)1号

という訳で今回はここまで。お目汚し失礼。次回に続きます。
カレーへの道は険しいです。

2015年の振り返り + 2016年の抱負

あとわずかで今年も終わりですね。いかがお過ごしでしょうか?

先日から、「クリード」を見るために復習として、ロッキー1~ファイナルまで一気見してました。
びっくりしたのは、少年の頃は訳ワカランと思ったロッキー5が、メチャ面白く感じた事でした。

3が好きでしたが、今は5を押したい。人間ドラマとしては、最も濃密さを感じました。
ヘッセの小説といい、社会に出てから良さが分かる物が結構多いです。


さて、今年は、仕事はともかく(汗)、趣味の方は、去年よりも進歩した年でした。
カレーの話は次回にして、今年の振り返りと、来年の目標を書いておこうと思います。

仕事の内容をここに書くわけにはいかないので、私生活について書いておきます。

ブログにはMODOの事ばかり書いていたので、3DCGのブログだと思われた方もいらっしゃったようです。
が、実は今年は3つ、本格的に取り組んでいた事が有ります。

(1) 作曲

 1つ目は作曲です。
 通信教育で、楽典・音楽理論を学んだのですが、かなり知識が整理されました。
 幸いにして、素晴らしい師を得まして、コード進行という物が体系的に分かってきた自覚が有ります。

 今年はまだお披露目できる段階では無かったのですが、来年は何らかの形で曲を
 公開していきたいと思います。
 DAWはStudio One 3というソフトを使っています。

(2) 3DCG

 2つ目はMODOを使った3DCGです。一応、「毎日必ず20分以上はMODOを触る」を貫き通しました。
 3Dでの絵作りについて、一段と理解が深まった気がします。

 私の場合は単なる趣味という事もあり、MODO一本で全く不自由していないので、
 来年も、引き続き掘り下げていきたいです。

 最近、ZBrush、3D-Coat等のスカルプト系ソフトで出来た力作を見ると、
 自分もやってみたくなるのですが、これ以上は手が回らないと思うので、
 見る側として楽しんでいきたいです。

(3) ウディタ(Wolf RPG Editor)

 3つ目、秋ごろからはまり始めたのがウディタです。最近毎日いじってます。
 ゲーム制作ツールなのですが、個人制作とは思えないほど色々な事が出来ます。

 ウディタ製のゲームも沢山遊んでみましたが、いやはや世の中凄い人は沢山いるもので、
 こちらも個人制作とは思えない完成度の物が幾つも有りました。

 私はまだ、きちんと全体を理解していないのですが、来年は、フリーゲームを公開してみたいと思います。


■その他

 ・Twitterも始めてみたのですが、自分の場合は交流というより、主に情報収集用に使っている感じです。
  このスタンスは当分変わらないと思います。なので、「お気に入り」が中心になると思います。

  ただし、一方的に情報を得るばかりではなく、自分の物作りの中で、
  面白そうな話題、役立ちそうな技術が有れば、共有・還元するようにしていきたいと思います。

 ・2DCGについて。自分はお絵描きも大好きなのですが、他にも色々やっているので、
  2D作品として、大掛かりなものを描く余裕はなさそうです。
  当分は「3DCGのための2DCG」という形で描いていくことになると思います。。

では。皆さんも良いお年をお迎えください。

カレーを作ろう(ただしCGで) – その1 はじめに

またお久しぶりです。年の瀬のバタバタもようやく落ち着いてきました。
過去の投稿に反応を下さった方は有難うございます!


突然ですが、最近カレーが食べたいです。皆さんも好きですよね。嫌いな人は少ないと思います。
私も勿論、人並みには好きだったのですが、最近は尋常ならず食べたいです。

なぜか?
マツヤさんのtwitterに、じわじわはまったのを切っ掛けに、
ボリウッド映画や、近所のインドカレー屋の豆カレー等が気になるようになった次第です。

その後は、以下のような感じです。

無性にカレーが食べたい
  ↓
しかし、友人の精神科医師の著によれば、カレーライスは糖質の化身(印度っぽく表現)です。
特に私のような中年の内臓には優しくないらしい。というのを思い出す
  ↓
漫画で食べた気になろうと、前から断片的に読んでいた、「華麗なる食卓」を全巻読破
  ↓
カレーすげー…すごすぎる。欲を抑えるどころか、世界中のカレーが気になり始める
  ↓
しかし、人間ドック面談の怖い医師の顔が、脳裏でチラチラして食べられない
  ↓
グルメ漫画・ドラマなどで欲望を紛らわしていたが、2D媒体では満足出来なくなり始める
  ↓

じゃあ3DCGで作るしかないな!!
はい繋がった~~Here we go!!!
使用ソフトは、もちろんMODO、バージョンは902です。


■その1 どんなカレー?

さて、カレーにも沢山ありますが、大きく分類すると4パターン。
 参考:カレー雑学大百科「2.世界のカレー」
  
   ・インド風(北インド・南インド)
   ・東南アジア風
   ・欧風
   ・和風
 
どれも魅力的ですが、挫折しない目標を立てるべく、

 「欧風」

にしたいと思います。
理由は、CGとしては、ナンよりライスのほうが、学ぶ事が多そうな点。
また、ご飯とルウの境界がハッキリしている(一定の粘度がある)方が作り易そう、という点です。


では、次回に続きます。

MODOで髪の毛 – ファー編 その2 – モデリング

さて、前回の続きで、Gregさんメソッドでのヘアモデリングをご紹介します。
動画ではMODO801と書かれていますが、701以降なら、可能な方法のはずです(701で実験済)。
細かく説明するので、たくさん手順が有るように見えますが、
慣れると、全工程(5-1まで)、5分以内で出来ます。

■0:準備

  ひとつだけ準備が有ります。
  途中で、エッジをカーブに変換するスクリプトを使います。
  既にお持ちの方も多いと思いますが、以下をダウンロードしておくのが望ましいです。

 ・Forumにもある、senecaさんのスクリプト
 もしくは、
 ・こちらのスクリプト

 スクリプトが無くても代替手段が有りますが、持っておくのがお奨めです。

■1:髪の房のベースとなるメッシュの作成

 今回は、前回紹介した動画の後半部分をベースに、この顔に前髪を一房作ってみたいと思います。
 一房できれば、あとは流用・応用です。

ベース

ベース

(1-1)
 まず、髪の毛用に新しいメッシュを作ります。名前は”Bangs”とします。
 リトポロジー機能(「トポ」タブ)で、ポリゴンを張っていきます。
短冊を作ったときと同じですね。

トポロジーペンで面張り

トポロジーペンで面張り


 ※リトポロジーって何?という方はこちら

 ここで、あまりハイポリだと制御しにくくなるので、最低限にします。
 今回は4×1の縦長ポリゴンにします。

(1-2)
 次に、「モデル」タブに移り、「厚み」ツールで、立体にします。
 ここでの厚さは、前髪の厚さの目安になります。

(1-3)
 髪の毛の根本となるポリゴンを選択し、
 カット(Ctrl+X)、すぐにペースト(Ctrl+V)します。これにより、ポリゴンが他と切り離されます。
 そして、反転(Fキー)します。

  結果的に、下図のような構成になります。
制御メッシュの構成

  (a)は髪の毛が生えるポリゴン、(b)は髪の房の形をコントロールするケージです。
  以後、(a)(b)とします。

  ※(a)は内側を向いてるので、選択しにくくなります。
   選択するときは(b)を隠す(Hキー)か、選択セットを使っても良いと思います。

■2:ガイドメッシュのマテリアルの設定

 (2-1)
  続いて、(a)(b)それぞれにマテリアルを割り付けます。
  名前は

    (a) … ”hairGrow”
    (b) … ”hide”(レンダリングされない、隠しポリゴンなので。)

  とします。
マテリアル追加

 (2-2)
  ここでは、先に(b)のマテリアルを設定します((a)は後で詳しく設定します)。
  レンダリングされないようにします。
  シェーダーツリーの「レイヤー追加」> 「処理」> 「シェーダー」を追加します。
  hideマテリアル全体を、”Base Shader”(グローバルシェーダ)より
  上に持っていくのを忘れないようにしましょう。

(b)のマテリアル構成

(b)のマテリアル構成

   シェーダーの設定は以下の通り。シェーディング・可視属性をすべて外します。

(b)のシェーダー設定

(b)のシェーダー設定

   また、ビューポート表示で半透明になるように、
   マテリアルの透過量を高め(今回は90%)にしておきます。
  

(b)の透過量

(b)の透過量

  こんな感じになるはずです。

■3:ヘアをコントロールするカーブの作成

 (3-1)
  続いて、エッジ選択モードで、(b)のメッシュの以下のエッジを4本選択します。

 (3-2)
  この状態で、「0.準備」で用意したスクリプト(今回はedgeToCurve.pl)を実行します。
  (スクリプトの実行は、Shift+F5、もしくは「システム」メニューの「スクリプトの実行」から。)
  下図のようにカーブが出来るはずです。
edgeToCurve.pl実行後

 ※スクリプトが入手できない場合は、こちら

 (3-3)
  めでたしめでたし、と言いたい所ですが、このカーブは「方向」が非常に重要です。
  カーブの根本(○が付いてる方)が髪の毛の根本に来るようにします。
  逆になっていたら、反転(Fキー)で、方向を揃えます。

カーブの方向

カーブの方向

  カーブが上図の右のような方向になったら、メッシュ部分は完成。
  ためしに、ポリゴンを一つ、引っ張ってみましょう。

  カーブがポリゴンについてきますね!これが今回のポイントになります。

■4:ファーマテリアルの設定

 髪の毛のマテリアルを設定します。
 (4-1)
  (2-1)で作った(a)hairGrowに、ファーマテリアルを追加します。
  シェーダーツリーの「レイヤー追加」> 「特殊」> 「Fur Material」です。

ファーマテリアル追加

ファーマテリアル追加

 (4-2)
  各種設定を以下のようにします。簡単のため、要点だけ列挙します。
  ご自分の作品に合わせて、調整してみてください。
 
  【ファーマテリアル】
   ・長めの毛なので、「最大セグメント数」を増やす。今回は64。
   ・「基本サーフェイスの除去」をON。これで(a)はレンダリングされなくなります。

ファーマテリアル

ファーマテリアル

  【ファーガイド】
   ・「基本サーフェイスからガイドを使用」はOFF。
   ・「アイテム」はガイドとなるメッシュ(Bangs)を選択
   ・「ガイド」は「範囲」
   ・「ガイド範囲」をメッシュの実寸に合わせて調節
   ・「ブレンド量」を高めにする(ガイドが重なり合った部分を馴らす)。今回は80%

ファーガイド

ファーガイド

  【ファーキンク】
   ・「ジッター」はすべて抑え目にする。今回は5%
   ・「ベンド振幅」は0%

ファーキンク

ファーキンク

 (4-3)
  レンダリング(プレビュー)してみます。こんな感じになるはず。
  ガイドメッシュに非常に近い形になります。

  ヘアマテリアルを割り当てるとこんな感じ。

お試しレンダリング

お試しレンダリング

■5:スタイリング

  さて、ここからが真骨頂です。

 (5-1)
  (b)のメッシュを、スカルプトツールや、エレメント移動など、
   ポリゴンモデリングツールで編集してみます。
   (※カーブは直接編集しないように)
   今回は、簡単にベンドツールで変形してみました。すると…

スタイリング例

スタイリング例

  この再現度です。初めて見たとき、目からウロコでした。
  正直、ヘアスタイリングツール(櫛ツールなど)よりも
  遥かにコントロールしやすいです(901時点)。

 (5-2)
  この繰り返しで作ってみた、習作第1号がこちら。

ヘア習作第1号

ヘア習作第1号


  (P4の雪子をイメージしたつもり…)
  次回はもっと凝ったのが出来そうな感触を得ました。 

基本的な手順は以上です。


今回は説明のためにワンセット作ってみましたが、
マテリアルグループを作って、ひとつの(a)に対して複数の(b)を適用するなど、
応用は様々です。

ちなみに、ヘアマテリアルについては、また非常に奥深いので、
需要が有れば、別の機会にご紹介したいと思います。
ではまた!

■補足:スクリプトが無い場合

 以下の手順でカーブを作れます。
 頂点モードで根元から順に頂点を選択し、Shift+O(オー)を実行します。
  (poly.makeCurveOpenコマンドが実行されます)

頂点からカーブ作成

頂点からカーブ作成


 これを必要な数だけ繰り返します。
 手作業だと面倒なので、やはりスクリプトがお奨めです。