ラビットガーデン(うさぎでもわかるUE4)

主にUE4(Unreal Engine 4) やLive2D、 Unity3D、自作ゲームについて解説

カテゴリ: 未分類

最近はUE4でOculus Riftコンテンツを作ることにハマっています。

【Oculus Rift】【UE4】
ヴェネツィアっぽい街を遊覧する Gondolus
猫になって掃除ロボに乗れる ねこのるんば
頭を動かすことによって楽○追放っぽい気分が味わえる 学園追放
学園追放の自由移動のみを抜き出して一般向けに改造した「イルカラス」 イルカラス

【UE4】
ミナミの街完全再現を目指す「だいぶ道頓堀」


【Live2D】
最新作は青葉ユニティちゃん(←Unity Webプレイヤー マウスで動きます)
かなりの高評価を頂いております。
new_book_chan
Pixiv版

Live2D ライブラリ 投稿作品集

ゲームジャム参加作品
Gravity RabbityUnity Webプレイヤー
カタギ花嫁続きを読む

OcuFes 大阪 http://www.ocufes.jp/2014/07/858/
2014年08月24日 OcuFes 大阪 #OcuFes http://togetter.com/li/711943

に参加してきました。(忙しくてブログの下書きを放置していたのを今更投稿)
前回の大阪オキュフェスでは案内誘導役をやっていましたが、今回は展示者として参加。
Unreal Engine4で作成したDK2用コンテンツ Gondolus で参加です。
013b22e0.jpg
続きを読む

■はじめに


◇この文章は何?


次回の2014年1月24~26日のGGJ参加者をひとりも多く募る為に書いた。

GGJが「実際には」どんな感じなのか知りたい方向けの
世界一「具体的な」心理レポートである。
大雑把な概要と要約については大前さんのこちらのスライドを参照していただきい。
楽しくて病みつきになるゲームジャムのススメ

主にリーダーとして参加したボクの「心理状態」を
時系列に添って詳細にレポートする。
実際のチーム分け、アイデア出し、企画の立案、話し合い内容、葛藤、など
赤裸々で非常に書き難い内容もなるべく詳細に記していこうと思う。

「GGJに興味はあるけど、どんなイベントなのかな? 自分でも参加できるかな?」
と不安に思っている方は、是非読んで頂きたい。
躊躇いや不安が少しでも解消され、この素晴らしいイベントに参加する気になってくれれば、
筆者としても幸いである。
続きを読む

Unityではじめるゲームづくり (DVD付) (ゲープロシリーズ) (白本)
悩んだ末に最初にこっちを買って、チュートリアルを進めていたんですが、1本の大作を1冊通して作っていくという内容で、ちょっと付いていくのにダレたので、もう1冊の方も購入。

Unity入門 ~高機能ゲームエンジンによるマルチプラットフォーム開発~(黄色本)
こっちは必要最低限の作品を3本作る構成。こっちの方が取り敢えずの完成が早くて読み進め易かった。
ただ、簡単な分、あまり内部的にツッコんだ解説がないのでこれ一冊だと少々心許ない。
内容的には前者の方が高度だが、iOSへの対応の細かいフォローなど有益な情報も多い。

2冊とも買って正解だった。

Unityによる3Dゲーム開発入門 (オライリーうに本)
なんだかんだで1番バランスがいい。1番最初にこれを買っとけば良かったと後悔…

上記2冊のチュートリアルのサンプルをWindows用に出力してみた→.zipファイル(斧)
※両方とも無音です、あと何の変哲もない無アレンジです

15afb1c1.jpg

FPS_Run_Test(白本6章くらい):FPS操作で地形を自由に移動できるだけ。お手軽に複雑な地形を作れる。
Spaceキーでジャンプ

59e76cda.jpg

BlockRockShooter(黄色本5章):落ちてくる箱を打つだけのゲーム。物理演算を堪能できる。
マウスの左ボタンで指示された色の箱を撃つだけ。
Web版はこちら

こんなのを簡単に作れますよという参考に。

※ソフト配布の注意
.exeファイルだけだと実行できないので、HogeGame.exeファイルと一緒にHogeGame_Dataも付けて同じディレクトリに配置すること。
Unity_ss.png

おまけ(web)(某所パチンコ課題の改造で、パチンコ台をただ外から眺めて回るだけのサンプルです)

twitter上でこっそりうpしたゲームですが、思いの外好評だったのでブログでも公開。

120124ハイドライドもどき.zip
0e24f923.png




ハイドライドのコピーを作ろうかと思ったけど、面倒なので似た感じに。
土日で1本ゲーム作ろうという個人的試み。
結果的に3日ほど掛かってしまいました。

クリア時間目安:5分~20分
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【動作環境】
OS:Windows 2000、XP、Vista、7、8.1(32bit/64bit)XP,8.1で動作確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【インストール】
HDDにそのままフォルダごとコピーしてください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【操作方法】
WASDキー移動
体当たりで攻撃
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【クリア条件】
3匹の妖精を助けて、ボスを倒してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【攻略のヒント】
すぐ終わるゲームなのでセーブはありません。
レベル上がるのも早いから別にいいかなと…
半キャラずらしというか、かするように当てるとノーダメで攻撃できます。
まともに突っ込むと大ダメージを受けます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【余談】
ゲーム制作者であるS国Y和氏の
「ベルトアクションかハイドライド作りてぇけど暇がない…」
といった趣旨のtweetをキッカケに土日で一気に作成。
即興で作った割には好評を博しました。(クリア目安時間2,3分)

761069e0.jpg

フィールドMAP(クリックで拡大)

狭く小規模ながらもレベルデザインを意識

左上からプレイヤーがスタートし、3匹の妖精(赤丸)をどの順番で見つけてもボス部屋の入り口が判るよう配置、なるべく右下の妖精が3匹目になるように狭い通路に強い方の敵を密集させ、ある程度レベルUPしていないとキツいようにデザインしました。

赤い点滅壁は3匹を集めた時点で消滅し通行可能になります。
ボス部屋の封鎖だけではなく、右側にショートカット用の通路としても赤い壁を用意することでユーザーが気付き易いように配慮しました。
また、ボスのSEが聞こえるようになることでもMAPの変化をユーザーに知らせています。

はじめに

Wizardry Onlineで遊んでいると、チャットが非常に不便じゃないですか?
このゲームに限らず、せかせかとした移動中にチャットすることは困難ですよね?
PK、PKKとの粋な会話もままならない…
というわけで作ってみました。
チャットマクロツール。

ご安心ください。
あくまでWindowsに仮想キーを送信するソフトであって、WizOn専用のソフトというわけではありません。
ゲームの通信を傍受したり、クライアントソフトを解析したり、そういうややこしいことは一切していません。
単にユーザーのwindowsへの入力を補助するだけのツールです。
これが駄目ならIMEの辞書登録すら駄目ってことになると思うので、規約には抵触しないと考えます。

特定の操作をユーザーがすると、
クリップボードに台詞セット→Enterキー→Ctrl+Vキー→EnterキーのマクロをWindowsに送信するだけです。
結果的に、アクティブなウィンドウにユーザーがキー入力したのと同じ結果になります。(理論上は)

オチから言うと、Wizardry Online では使えませんでした。
※理由は後述します。
ですので、単なるコンセプトモデルの説明になります。


続きを読む

これはEsolang Advent Calendar 2011 3日目の記事になります。
「参加者==執筆者」ということに気付かず,大幅に遅れてすみません。

私が書くのは、MMF2というゲームオーサリングツールを使うことによって得た新しい言語パラダイムです。
「新しい言語パラダイム」とか壮大なことを言っていますが、単に私が無知なだけで、既に似たようなものやそれを上回るものが幾らでも転がっている可能性は高いです。
もし、そうならお気軽にツッコんでください。
近親相姦気味のEsolang界に新しい血を注ぎ込むことができれば幸いです。


Multimedia Fusion(MMF)2の大雑把な説明


海外製汎用ゲームツクール
イ゙ェアアアアで有名な「呪いの館」を作ったKlik&Playの後継ソフト

売り文句:プログラム不要!コードを書かずにクリックだけでゲームが作れるよ!
現実:クリックと限られた記述力のコードでガリガリ書かないと作れないよ!

MMFそのものの紹介記事やテクニック集ではないので詳細は省きます。
あくまでMMFを使うことによって得た言語パラダイムとしての側面から紹介していきます。


続きを読む

■関数の定義の仕方


第1回でサラっと流しておいてなんだが、今さら関数の定義の仕方を簡単に説明する。
教科書通りのベタな内容で特にたいしたことは解説しない。
既知ならサラっと読み流してくれていい。
次回が本題

#include <stdio.h>
#include <iostream>
// プロトタイプ宣言
int 三角形の面積(int 底辺, int 高さ);

int main()
{
printf("三角形の面積①は%dです\n", 三角形の面積(3, 4));

int ていへん, たかさ;
std::cout << "テイヘンを入力してください" << std::endl;
std::cin >> ていへん; // ※ユーザー入力を受け付ける

std::cout << "タカサを入力してください" << std::endl;
std::cin >> たかさ; // ※ユーザー入力を受け付ける

std::cout << "三角形の面積②は" << 三角形の面積(ていへん, たかさ) << "です" << std::endl;

system("pause");
}

// 関数定義
int 三角形の面積(int 底辺, int 高さ)
{
int 答え = 底辺 * 高さ / 2;
return 答え;
}

※printfやcin、coutについては詳しく解説しない。ググるか入門書を見ればすぐにみつかるし、読めばなんとなくわかるように書いた。

■プロトタイプ宣言


こんな関数がありますよ!という宣言。関数のカタログ的なものになる。
本当は宣言せずにいきなり定義を書いてもいいのだが、色々と面倒な問題があるので必須だと思って差し支えない。
(何が問題かは面倒なので、今は解説しない)

本当は
int 三角形の面積(int, int);
と、引数の型だけでもいいのだが、筆者の趣味で必ず『仮引数名』を入れている
int 三角形の面積(int 底辺, int 高さ) ;
※お尻のセミコロン「 ; 」を忘れないこと

■関数定義


その関数がどんな動作をするのか具体的に書く。
『仮引数名』(例では、「底辺」 と 「高さ」)は必須
{ }内に中身の処理を書く。
※( )や{ }の後ろにセミコロンは要らない

■仮引数名について第1回の補足


実際の処理を書くための仮の名前
第1回では
// 定数
const int 窓横幅 = 640;

// 関数のプロトタイプ宣言
int ライブラリ初期化(bool ウィンドウモード, int 窓横幅, int 窓縦幅);

偶然同じ名前になってしまっていますが、
たまたま同じであることに注意してください。
※決して「ライブラリ初期化関数が 窓横幅 しか受け付けない」わけではないです!

if(ライブラリ初期化(true, 窓横幅, 窓縦幅) == -1) { return -1;}

if(ライブラリ初期化(true, 500, 窓縦幅) == -1) { return -1;}
などと任意の数字や変数に変えても、もちろん動作します。

if(ライブラリ初期化(true, , ) == -1) { return -1;}
などと逆に書けば、
if(ライブラリ初期化(true, 480, 640) == -1) { return -1;}
と書いたことと同じになり、縦長のウィンドウのゲームが立ち上がります

■名前の大切さ


適切な名前を付けることは、非常に大切であることは第1回でも説きました。
プログラムとは名前を付けることそのものであると。
コードの読み易さの9割以上は「名前の良し悪し」で決まります。

■英語名 VS 日本語名


第1回では、読み易さの都合で日本語名を使用しました。
でも、大半のプログラマは日本語名を嫌がります。

欠点として
・半角全角の切替が面倒
・全角スペースが不用意にコードに混じってエラー
・全角数字が不用意に入ってエラー
・日本人にしか読めないコード
・何かカッコ悪い
・VisualStudioのインテリセンス(入力補完)が利かず不便
・表記揺れが激しく自由に書け過ぎる
・大文字小文字がなく、型名や定数の命名に不便
などがあります。

利点としては
・漢字は視認性が高い
・英語、プログラムに疎い人にでも読み易い
・業務用アプリの固有名詞などは日本語の方が分り易い
・ライブラリや言語の予約語と衝突しない、自作であることが自明
などがあります。

■でも、世の中のサンプルって英語名だよね


ググッてサンプルを探すと99%が英語名です。
他人のコードもある程度読めないと不便ですよね。
それに自分が書いたコードを他人に評価して貰うときに俺俺ルールで書いてしまうと
非常に読み難くなります。
プログラムに個性は求められません。(特に命名には)
一般的な命名規則に軽く目を通しておきましょう。
関数名の命名規則
プログラミングに出る!英単語
良いネーミングをするために覚えておきたい英語のルール5つ
この辺に目を通しておけば取り敢えず大丈夫でしょう。

■ローマ字変数名が許されるのは小学生までだよね?


99.9%のプログラマにダサいと評判のローマ字変数名ですが一応利点があります。
・予約後と被らない。任意に付けることが可能な名前だと自明になる(初学者にやさしい)
それっぽい英語名が入門書に書かれていると、初心者の場合
「この名前じゃないと動かないのかな?」
と悩むことになります。
ローマ字名なら
「あ、好きな名前を付けていいんだ」
とわかりやすくなります。筆者の体験談です。
あと、無理に英語を捻り出すよりローマ字にした方がどうしても分り易いときがあります。
「自機」筆者にはいい名前が思い付きません。
下手に紛らわしい英語名を付けるより「jiki]の方が自明だと思います。

■規則に従うよりも大切なことは、紛らわしくないこと


杓子定規に規則に従うあまり、読み難くなったら本末転倒です。
1番大切なことは「1意に解釈できる」ことです。
頭を1度空っぽにして名前をもう1度みてください。
「知らないひとが見たら、別の意味に誤解しないか?」
とその可能性をよく考えてみてください。
「1週間すれば、他人のコード」
という格言があります。
未来の他人である自分に向けて、分り易い名前を残しましょう。

■記憶喪失になっても、コメントがなくても分かるように名前を付けよ


第1回でも同じことを言いましたが、大事なことなので2回言いました。
名前は本当に大切です。
適切な名前さえ付ければ醜いコメントは99%カット出来ます。
これはプログラマ以外の職業でも大切なことです。
不適切なメール件名、ファイル名、書類名は余計な仕事を増やす種になります。
不適切な子供の命名は、その子の人生を台無しにします。
是非、適切な名前を付けて快適な人生を!

↑このページのトップヘ