Quantcast
Channel: historia Inc –株式会社ヒストリア
Viewing all 989 articles
Browse latest View live

ヒストリア開発協力の「GRID VRICK」がリリースされました!

$
0
0

mainvisual_bg

ヒストリアが開発協力を行った、レゴを用いた家づくりのシミュレーションツール「GRID VRICK」が2016年4月4日に発売されました!

本製品は、レゴブロックの各色とブロック数に家具が割り当てられており、レゴブロックを盤面に配置するとPC側のバーチャル空間に家具が表れるアプリケーションです。

遊び感覚で間取りやレイアウトを決めて、その中をPC上でウォークスルー出来ます。

また、配置した家具をクリックすると、別の色やデザインに変えることも!

詳しくは 公式HP をご覧ください。

↓公式動画も公開されました。

 

ヒストリアはその中で、PC側のアプリケーション(Unreal Engine 4使用)の実装で開発協力を行いました。

間取りもレゴによりリアルタイムに作成できるので、基本的にすべて動的オブジェクト、そして日照変化も行うなど、技術的にもとてもチャレンジングな試みをしています。

もし店舗で見かけた際には、ぜひ触ってみてくださいね!


「VR ZONE Project i Can」の『アーガイルシフト』に開発協力させていただきました!

$
0
0

VRエンターテインメント研究施設「VR ZONE Project i Can」に出展されている、VRシネマティック アトラクション『アーガイルシフト』に開発協力させていただきました!

「マスター、出撃準備はいいですか? 少女と共に巨大ロボットのコックピットへ。襲いかかる陰謀に立ち向かえ!巨大ロボに乗り込んで戦うという「憧れ」を専用体感マシンによる驚異の臨場感で直球再現!」(公式HPより)ということで、VRと専用筐体で美少女+ロボという夢を実現したタイトルとなっています!

 

ヒストリアの担当箇所は、UE4内で行う絵作りの部分(キャラクターのルック開発、エフェクト、ポストプロセス等)とプログラム部分(インタラクティブ部分の開発等)と最適化です。

お台場のダイバーシティ東京プラザにて期間限定で公開されているので、この機会にぜひ体験してみてくださいね。

 

↓Unreal Engine公式ブログ記事

期間限定オープンのVRエンターテイメント研究施設「VR ZONE PROJECT I CAN」、4VRアクティビティでUE4を採用!

 

banner

 

[UE4] 第5回UE4ぷちコン応募作品公開!その2

$
0
0

2第五回ぷちコン_バナー用

第5回UE4ぷちコンのエントリー作品一覧ページです。

応募いただいた皆様、ありがとうございます!!

応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!

※コンテストの告知ページはこちらです。

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その1はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その3はこちら

[エントリーNo.21] Jet Board 2

平井 佑樹  さま

▼応募者コメント▼

今回、制作したゲームは水上を疾走するアクションレースゲームです。
一位を目指すことを目標とします。
このゲームは私が就職作品として制作した「Jet Board」の続編です。
http://daisakusen.unity3d.jp/interviews/interview03.html
このゲームは対戦プレイで4人までプレイできます。
とても思い入れがあり、その分愛情を込めて制作しました。

[エントリーNo.22] Age of Izumo

アンドレ モレイラ  さま

▼応募者コメント▼

「Age of Izumo」(出雲時代)は日本の神道や昔話をアレンジしたストラテジーゲームです。出雲大社を襲う幽霊から守って、再び「天照」という女神に会うのは目的です。天照と出雲の絆は大昔「結び」と言い、現在は「愛」と呼ばれている。
天照と出雲の頭文字を合わせると、「あい」になり、今の「愛」につながりました。操作としては、出雲を使って呪文を唱えて幽霊を追い出します。
呪文は2種類あり、「光の輪」と「永遠の箱」になります。

幽霊が出雲大社に当たってしまうと、「神HP」が減ります。

各ラウンドが終わると、地域を守る木が一本生まれ、根本には神HPが少し回復できる「命の球」があります。

三つのラウンドが終わったら、現在の出雲大社がなくなり、本来の出雲大社が現れます。
天照がそこで待っています。早く会いましょう!

[エントリーNo.23] Lost Town

かーず  さま

▼応募者コメント▼

彼氏をパシリにしてこの廃墟と化した街を脱出しよう。
脱出した先に見える真実とは・・・。

[エントリーNo.24] だってキューピットだもんっ!

MozPaca さま

▼応募者コメント▼

2人の恋仲を邪魔する奴らには冷たいハートをくれてやるぜ!
そんな完全な第三者から見た愛を楽しんでください。 

[エントリーNo.25]  こはくちゃんズでわかるUE4ぷちコン 愛のチュートリアル

荻野雄季 さま

▼応募者コメント▼

ADV素材のこはくちゃんズを使用して、UE4ぷちコンの非公式チュートリアルを作成しました。
UE4でノベルゲームが出来るのかという学習目的で作成します。
内容はUE4ぷちコンがどういうコンテストなのか、こはくちゃんズが説明するノベルゲームです。
こはくちゃんズがUE4ぷちコンを説明します。
開発者がユニティちゃん使用するのが大好き
なので、ユニティちゃんへの使用愛が詰まっています。

[エントリーNo.26] Little AI ~リトル アイ~

AKIRA=NANBU さま

▼応募者コメント▼

「愛」or「AI(人工知能)」がテーマという事で、いっそその両方のテーマを満たせるのは育成ゲームでは
ないかと思い、簡単な育成ゲームを作ってみました。小さな妖精の子(AIちゃん(仮))に愛を教えてあげます。

[エントリーNo.27] 愛の逃避行 ~the end of lover~

alwei さま

▼応募者コメント▼

20XX年。世界は核の炎へと包まれ、核戦争が勃発した。
とある大企業が放ったZウィルスの蔓延により、人類はほぼ滅亡した。
僅かな人類の生き残りである、グレイマンとグレイちゃんは安全な場所へと逃避行する事に。
二人は愛の力により、どちらかさえ生き残っていればどれだけ倒れても立ち上がる事ができる。
グレイちゃんは優秀な射撃能力を持つので、離れすぎないようにして支援してもらうのだ。
奴らは視覚だけでなく、聴覚も敏感で大きな音に集まってくる傾向のようだ。
最終的に必ず二人揃って目的地へと辿り着くのが目標である。
UE4の標準AI機能であるビヘイビアツリーとEQSを駆使して作ってます。

[エントリーNo.28] HeartBreak

松本 大樹 さま

▼応募者コメント▼

第5回UE4ぷちコンの応募作品として制作したゲームです。制作期間、というよりUE4を使い始めてから1週間で制作しました。テーマは『愛(AI)』です。
プレイヤーは周りから女の子が集まってくるような超イケメンです。
しかしながら、プレイヤーは男が大好き。
女の子には石をぶつけ、男にはハートをぶつけてスコアを稼ぐ射的ゲームです。操作方法

• WASDでプレイヤー移動
• マウス左クリックで石を投げる
• マウス右クリックでハートを投げる•

制限時間内により多くスコアを稼ごう!

[エントリーNo.29] 愛すべき友を探せ

DD(かたつむりの中の人)。 さま

▼応募者コメント▼

周囲の壁に数値が並んでいるので、その中から愛のあるペアを探します。 

愛のあるペアとは、友愛数・準友愛数・拡大友愛数のことを指します。
それらのペアを選ぶと得点が入ります。
愛のないペアや愛を含んでいない数値を選ぶと、得点は入りません。

友を愛す数。なんてうつくしい。

[エントリーNo.30] 世界はAIに満ちている

若草なずな さま

▼応募者コメント▼

20XX年、すべての家庭にAIロボットがいる世界。
その世界では、洗濯・買い物・食器洗い・お掃除などをAIロボットが代行している。
世界は愛が満ちているという言葉を知ったAIロボットが、愛を知らないAIに愛を感染させていく!
※車には気を付けてください。

[エントリーNo.31] ラブハンター

白鳥隆士 さま

▼応募者コメント▼

目の前を横切るカップルを祝福する愛のキューピット的なノリで弾丸を放って爆発させる。規定時間内にどれだけ爆発させられるかを競う。

[エントリーNo.32] Love Flower

jena444 さま

▼応募者コメント▼

ピクトグラムの映像作品になります。
BluePrintもほとんど利用せずにあえてマチネをフル活用して作成しました。

[エントリーNo.33] Nothing Last Forever

zannijp さま

▼応募者コメント▼

「愛」について、昆虫たちを使い、終わりと始まりを表現してみました。
※映像作品です。

[エントリーNo.34] Run Run Jump

ninai271 さま

▼応募者コメント▼

愛=身を挺して守ること
ということで、謎の物体につぶされないように体当たりして守るゲームを作りました。

[エントリーNo.35] バカップルバスターズ

チームバカップルバスターズ さま

▼応募者コメント▼

テーマが愛ということで、ちまたに蔓延るバカップルを撃滅するVRシューティングゲームを制作しました。

[エントリーNo.36] IROBOT

daitizu さま

▼応募者コメント▼

少しミステリアスで暗い感じの愛を表現しました。

[エントリーNo.37] 愛は熱いうちに撃て?

zack さま

▼応募者コメント▼

情熱は熱しやすく冷めやすい何かを作りたいという気持ちが
熱いうちに撃てたら何かしらいいものができるのではないかと思いました。

[エントリーNo.38] UE for Master

どんぶつ さま

▼応募者コメント▼

アンリアルライクなゲームです。

[エントリーNo.39] わんラブ物語

レッツゴー東京マイタケ!! さま

▼応募者コメント▼

「わんラブ物語」は犬が大好きな人たちに向けた……
犬で動き回る 犬LOVE!! なゲーム
自らの操作で犬を操って、犬視点でマップを楽しもう!
マップにいる人たちに近寄って、愛でてもらおうとする犬の気持ちを
体験しよう!
マップにはユニークな仕掛けが施されているぞ!
岩を壊したり、岩を壊したり、岩をこw……、そう最強の犬になるための
修行も楽しめる!
さあ、犬の世界を歩きつくせ!
超絶犬LOVEアクション探索対戦ゲーム「わんラブ物語」!!
こだわったポイント―マップ、犬、人の動き、AI

[エントリーNo.40] Saburaimono

malony さま

▼応募者コメント▼

AIの侍者と共に城を脱出するゲーム。
侍者はプレイヤーを守る為に戦ってくれます。
戦闘中でもプレイヤーが危なくなると助けに向かいます。
プレイヤーは戦えない代わりに、愛(という名のハートアイテム)を集めて侍者を
強く出来ます。

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その1はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その3はこちら

[UE4] 第5回UE4ぷちコン応募作品公開!その3

$
0
0

2第五回ぷちコン_バナー用

第5回UE4ぷちコンのエントリー作品一覧ページです。

応募いただいた皆様、ありがとうございます!!

応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!

※コンテストの告知ページはこちらです。

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その1はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その2はこちら

[エントリーNo.41] 百合男のジレンマ

mnnn さま

▼応募者コメント▼

百合男は百合が大好き。もっとよく近づいて百合を観察したいのですが、百合男は男ゆえに近づくことができません。なぜなら男がいると百合空間が台無しになってしまうからです。
ところがある時、ユリを摂取すると透明人間になる力-Power-を手に入れることに成功した百合男はジレンマから開放され、自由に百合を観察することができるようになりました。
・・・そんな2種類の愛を感じる探索型百合観察雰囲気ゲーム

[エントリーNo.42] RegainTheLove

Team締め切り4日前  さま

▼応募者コメント▼

世界が愛を見失った、残された愛のパワーを持つ主人公が、邪魔するやつを指先ひとつでダウンさせ
愛を取り戻す、そんなゲームです。

[エントリーNo.43] Love Escape

しののめじろう さま

▼応募者コメント▼

閉ざされた空間から愛を求めて脱出してください。どこかに出口があります。時間はそれぞれ30秒です。開いた扉もすぐにしまってしまうので、そうなるともう逃げられません。さあ、あなたは恐怖に打ち勝ち、愛をとどけられるでしょうか?

[エントリーNo.44] お前がAIになるんだよ!

@NKDTR さま

▼応募者コメント▼

古ながらの、行動サイクル型のAI(のようなもの)をテーマにしたゲームです。
行動を表すスフィアを回転するシークバーが通過すると、モニターの中にいる自機がそれに従って動きます。

[エントリーNo.45] どーたーVR!

com04 さま

▼応募者コメント▼

○○は俺の嫁。違う、そうじゃない。嫁じゃない、ボクは娘が欲しいんだ……!娘と共に暮らして愛でるVRゲーム。
10歳~17歳までの間ゲームになっています。(今回は1日で1歳、歳取ります)
インタラクションはプレイヤーの視線です。
また、Grayちゃんの行動はお題通りAI(ビヘイビアツリー+α)で組んでいます。

動画後半にRift用のVR映像が入っています。

[エントリーNo.46] ユニティちゃんの愛をゲットしよう!

ガウラサン さま

▼応募者コメント▼

ハートを集めてユニティちゃんの愛をゲットするゲームです。

[エントリーNo.47] 愛はバクハツだ

Sacchy さま

▼応募者コメント▼

芸術はバクハツだ・・・という言葉があるように、愛というモノもまたバクハツなのです。石化してしまったUnityChan!に愛のバグダンを使って、愛(AI)を吹き込んであげましょう♡
ヒント
・ステージ開始時に配置を覚えましょう
・UnityChan!カメラにはいつでも切り替える事ができます
・愛のバクダンはグレーマンが触れてしまうとバクハツを開始してしまいます

[エントリーNo.48] トロンとカノ

てんちょー さま

▼応募者コメント▼

中野シスターズの姉妹愛をテーマに2人称視点のゲームについて自分なりに考えてみました。相棒のトロンに指示を出したり、時には協力したりして進めていくゲームです。操作は全てHキーで適宜確認できるようにしてみました。

[エントリーNo.49] 愛の使者 《使いっ走り AI》 トリシア

らりほま さま

▼応募者コメント▼

蒸気で動く AI トリシアが主人公の 3D アクションゲームです。トリシアはエリート AI なので、攻撃をギリギリで避けて観察することで
その攻撃を自分のものにして使うことができますが、
トリシアはポンコツ AI なので、覚えた攻撃はすぐに忘れます。
敵の攻撃を覚えつつ、倒した相手の武器を奪い取りながら、
次々と敵を倒していきましょう。キャラクターや背景のモデリングが大変でした。
敵の挙動はビヘイビアツリーで実装しています。
BGM はエルガーの『愛の挨拶』のアレンジです。

[エントリーNo.50] 愛、見つめていますか?

荻野雄季 さま

▼応募者コメント▼

ひたすら愛を見続ける単純なゲームです。
あなたの愛に対する愛が試されます。
ギブアップボタンは表示されているだけです。押せません。
敗北条件はプレイヤーの挫折です。

[エントリーNo.51] カウンターシューティング

よこ さま

▼応募者コメント▼

大量の機体をスポーンさせてAIの操作する機体を倒すゲームです。
AIは倒すごとに少しずつ強化されていきます。
45秒以内にAIの残機を倒しきれなければ終了です。

[エントリーNo.52] 愛ってなんですか?

暇厨 さま

▼応募者コメント▼

愛を追い求めた結果、吊り橋効果に行き着きました!
ゾンビたちを上手く使ってグレイちゃんを怖がらせて、そこから救い上げることにより愛を育んで下さい!

[エントリーNo.53] 色男グレーマンと愉快なLovers

ほげたつ さま(ヒストリア社員)

▼応募者コメント▼

今回のテーマは「愛」ということで、色男グレーマンがその魅力を存分に発揮して大勢のユニティちゃんを惑わすゲームにしました。
全てのユニティちゃんを惑わすまでにかかった時間を競います。
ユニティちゃんは総勢500人、DynamicShadow付きでも基本的に30fpsを保つことができるようにチューニングしてあります。

[エントリーNo.54] MassAffect

パマギー さま

▼応募者コメント▼

プレイヤー(及びAI)はマップにあるオーブを拾うことで自身を大きくできます。プレイヤーは大きくなることで足が遅くなる代わりに視界が広くなります。そしてより大きいプレイヤー(及びAI)が接触した相手を吸収することが出来ます。無論プレイヤーも吸収されることがあります。逆に小さいプレイヤーは足が速いものの視界が狭いため、大きな敵の接近を許してしまいます。
ゲームはサバイバルで他のAIを倒したらステージクリアです。敵同士も敵対なのでプレイヤーの視界外で勝手に消滅することも。

[エントリーNo.55] Midnight

おぎまふ さま

▼応募者コメント▼

プレイヤは胴が伸びるダックスフンドとなり、襲い来 る敵から飼い主である女の子を守るゲームです。

[エントリーNo.56] SummonsStone

ntaro さま

▼応募者コメント▼

ストーン型ハードを使って、モンスターを召喚し、相手の召喚しを倒していく
ゲームです。AIがテーマということで、敵攻撃AIアルゴリズムは、話題の
ニューラルネットワークを使いモンスターが属性に応じた攻撃の仕方を学習していきます。

[エントリーNo.57] 夏の茄子

煮戸窓二 さま

▼応募者コメント▼

UE4の勉強をしてたらおっさんがナスを投げ合うゲームができました。
AI難しいね。おっさんが止まらない。(責任転嫁)

[エントリーNo.58] UE4コミック『ロボットのモモ』

灰原とう さま

▼応募者コメント▼

自立進化するロボットの星で始まるAI(アイ)の物語。最近の漫画家はきれいな背景を描くために大量のアシスタントを雇うそうですが、美しいレンダリングと高速なイテレーションが可能なUnreal Engine4はもしかすると漫画制作と相性抜群なんじゅないかと思って試してみました。抜群だと思います。
ゲームやアニメ、映画のの要素なども取り入れた、UE4だからこその、新い表現。
後半はムービーテクスチャを使いPV風に仕上げました。

[エントリーNo.59] Battle of The Ruins

堀内 要介 さま

▼応募者コメント▼

ロボ愛がこじれて昨年から初めてMayaに触り、映像作品を作れるようになりました!!ロボ最高!!!

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その1はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その2はこちら

[UE4]UMGでどこまでもタイリングするねこちゃんの作り方

$
0
0

UIデザインで汎用的に使うラインや、
タイリングされたアイコンなどを毎回設定するのはメンドクサイ・・・
そんなお悩みを解決するWidget設定のご紹介です!

 

タイリングできるwidgetをつくろう

今回は【ねこちゃん】を用意しました。
頭とお尻は違うデザイン、お腹だけタイリングするように
下記のような3枚のテクスチャを用意します。

sozai_1

 

これをWidgetで表示させる構造はざっとこんな感じです。

【親:メインのWidget】
sozai_2_oyaw

【子:配置した今回作るWidget】
sozai_2_ko

 

以下から子Widgetの説明です。
ヒエラルキーの順序がこんな感じですが、
sozai_2_ko2
Paletteのちょっとした解説を含むので下記は少し順序を無視します。

 

■[Scale Box]をルートとします

こうしておくと親Widgetに配置した時に子Widgetのレイアウトが崩れませんし、
階層内のテクスチャもスケールを維持してくれます。

 

■[Horizontal Box]【1】

このボックス内に入れられた素材は入れた数に合わせて横に等間隔に整列します。
今回はテクスチャを3つ入れる訳ですが、横軸のアライメントをCenterにしたままだと
伸ばしてもテクスチャがついてこないのでHorizontal AlignmentをFillにします。

sozai_ho1_fill

 

 

■[Image]  Neko_Head と Neko_Hip

イメージ素材としてそのまま入れただけです。

 

 

■[Horizontal Box]【2】※無くてもOK

【1】と同じですが、SlotのSizeをFillにして伸び~るようにしておきます。
sozai_ho2_fill

ねこちゃんの場合はこの[Horizontal Box]をわざわざ入れなくてもいいのですが、
SlotのPaddingに適当な数値を入れると下記のような間隔調整ができます。

sozai_togire_padd2

sozai_togire_neko

 

■[Border]

こちらもHorizontal Box【2】のようにSlotのSizeをFillにして伸び~るようにします。
且つ!
Appearance→TintのTilingをHorizontalに設定してタイリングして出てくるように設定できます!

sozai_border1

 

そして最後に親widgetにお好きなように配置すれば・・・

sozai_last

伸び伸びできて実に楽しいですNE!

是非ご活用ください~。

 

※Widgetの作り方とゲーム内で表示させる流れは公式ドキュメントを参照してください。
https://docs.unrealengine.com/latest/JPN/Engine/UMG/UserGuide/WidgetBlueprints/index.html
そして↓へ
https://docs.unrealengine.com/latest/JPN/Engine/UMG/UserGuide/CreatingWidgets/index.html

[UE4] コンストラクションスクリプトでお手軽にプロシージャルなアクターを作る

$
0
0

テクニカルアーティストの黒澤です。
今回はコンストラクションスクリプトの使い方を紹介します。

コンストラクションスクリプトとは?

コンストラクションスクリプトとはレベルエディタでオブジェクトを配置した際に処理される特殊なスクリプトです。また、ほかのブループリントと同じく、変数などを使って配置したアクターごとに異なる結果を実現できます。(プロシージャルなコンテンツが作れます)

コンストラクションスクリプトの使いどころ

コンストラクションスクリプトはレベルエディタ上に配置した時に動作するので、レベルエディタ上だけで処理を確認できるのが特徴です。ゲームを実行する前に確認できるため、レベルデザインに使いどころの大きい機能です。

例としていくつかのサンプルを作ってみました。

■直線配列

line2

line

椅子を直線上に等間隔に配置するサンプルです。
ChairCountという椅子の数を決める変数とDistanceという椅子同士の距離を決める関数を作り、ChairCountの数だけForLoopで繰り返しインスタンスドスタティックメッシュを追加しています。変数はEditableにすることで、レベル上で編集可能な値になります。
インスタンスドスタティックメッシュを使うことにより、たくさん配置してもドローコールを抑えることができます。

 

■スプライン上に配列

spline2

spline

スプラインの方向を向きつつ、スプライン上に椅子を等間隔に配置するサンプルです。
スプラインコンポーネントをアクターに追加すると、レベルの中で編集可能になります。

Get Spline Length … スプラインの長さを取得できます
Get Location at Distance Along Spling … スプライン上の位置を取得できます
Get Rotation at Distance Along Spling … スプライン上の向きを取得できます

■色を変える

color2

color

同じアクターでも配置したアクターごとにマテリアルの色を替えることのできるサンプルです。
ダイナミックマテリアルインスタンスを使い、カラーで指定した値に座面の色を替えることができます。

 

EventBeginPlayとの違い

開始時に実行されると聞いて、EventBeginPlayに処理を書いた時との違いが気になるかたもおられると思います。
全く同じ処理をEventBeginPlayに書いた時との違いを見てみましょう。

begin

直線に等間隔で配列する処理をEventBeginPlayにつなぎ、コンストラクションスクリプトは削除してみました。

 

begin2

begin3

レベルエディタでは表示されませんが、ゲームをプレイすると表示されます。
まとめると以下のとおりです。

コンストラクションスクリプト … レベルエディタでアクターを配置した時に実行される
EventBeginPlay … ゲーム内でアクターが配置された直後に実行される

どちらに書いても同じように動く処理もありますが、コンストラクションスクリプトにはレベルエディタで影響を確認したい処理を書くのがいいでしょう。

おまけ のびるねこちゃん、ふたたび!

nobiruneko2

コンストラクションスクリプトで作ってみました。

[UE4] 第5回UE4ぷちコン 受賞作品発表!

$
0
0

 

第5回UE4ぷちコンの結果発表です。

なんと過去最多59作品ものご応募いただきました! みなさんの愛(AI)の詰まった作品、ありがとうございました!!

今回もクオリティが高い作品、オリジナリティを発揮している作品、コンテストの目的通り学習に使っていただいた作品、様々な作品が揃いました。

その中から、最優秀賞を含む6作品を選ぼうとしたところ、今回も選びきれず8作品が受賞いたしました。

 

最優秀賞作品は5月14日(土)グランフロント大阪 ナレッジシアターで開催の【UNREAL FEST 2016 OSAKA】会場にて展示いたします。

(※参加には事前登録が必要です→https://atnd.org/events/76761)

 

それでは、受賞作品をご覧ください!

審査員:エピック・ゲームズ・ジャパン 篠山さま、株式会社ヒストリア代表取締役 佐々木

 

 

【最優秀賞】 アイドルマネー 愛の錬金術師

たつのる 様

審査員コメント

  • クオリティの高さだけではなく、コンテンツとしての独創性と後半に行くにつれて高まるカタルシス。満場一致の最優秀賞でした。 (Epic Games Japan 篠山)
  • 分かりやすく笑えて、テーマの拾い方、作り込みともに素晴らしいです! SEが頭に残りますね(笑) (ヒストリア 佐々木)

 

【ユニーク賞】 ブルーとグレー 愛の劇場 春

もんしょ 様

審査員コメント

  • 今回のテーマ「愛」にどこまで挑めるかというチキンレースの勝者。 (Epic Games Japan 篠山)
  • ネタ一点突破で笑わせてもらいました! ツッコミどころが多すぎます(笑) (ヒストリア 佐々木)

 

【テーマに沿ってるで賞】 Little AI ~リトル アイ~

AKIRA=NANBU 様

審査員コメント

  • 完成度も非常に高いですし、キャラクターへの愛情が湧くようなAIで、ドンピシャな作品だと感じました。 (Epic Games Japan 篠山)
  • テーマを素直に捕えて、育成ゲームとして全体が作り込まれていました。プレイしてみたいです! (ヒストリア 佐々木)

 

【篠山賞】 AIの異常な愛情

蝋燭 様

審査員コメント

  • ロボットのゆがんだ思考とシンプルなAIがマッチして、説得力のある世界観を構築していました。一番惹きつけられました。 (Epic Games Japan 篠山)
  • 照明をOn/Offするという見せ方が良いですね! (ヒストリア 佐々木)

 

【グッドルッキング賞】 Love Flower

jena444 様

審査員コメント

  • UE4だからといって反射バリバリブルームギラギラである必要はありません。文句なしのグッドルッキングです。一つ一つの動きなどを丁寧に作っていて素晴らしかったです。 (Epic Games Japan 篠山)
  • 作品としての完成度が高い! UE4でこんな作品も作っていいんだ、と思わせてくれる作品でした。新システムのSequencerはさらにUE4内で動きを付けるのも楽になっているので、ぜひ次も作品お待ちしております! (ヒストリア 佐々木)

 

【UE4愛しすぎで賞】 UE for Master

どんぶつ 様

審査員コメント

  • ありがとう。本当にありがとう。 (Epic Games Japan 篠山)
  • UE4愛を作品全体からひしひしと感じます。細かいところもそれっぽく作り込んであり、個人的にも学習用にアプリで欲しいです! ぜひリリース&運営を!(笑) (ヒストリア 佐々木)

 

【テクノロジー賞】 SummonsStone

ntaro 様

審査員コメント

  • 他デバイスとの連携然りニューラルネットワーク然り、高い技術力を用いつつコンテンツとしての完成度もあり、度肝を抜かされました。 (Epic Games Japan 篠山)
  • センシングデバイスだけでなく、今回ニューラルネットワークを使用する作品が出てくるとは思っていませんでした。 (ヒストリア 佐々木)

 

【新表現賞】 UE4コミック『ロボットのモモ』

灰原とう 様

審査員コメント

  • 新たな試みに驚かされました。デジタルなストーリーテリングの可能性を見せてもらいました。 (Epic Games Japan 篠山)
  • UE4×映像、というのはよく聞きますが、UE4×漫画はなるほどと思いました。ストーリーの広がりが感じられて、良かったです。物量が多く大変だったと思いますが、この表現には可能性を感じます! (ヒストリア 佐々木)

受賞、おめでとうございます!

※コンテスト告知ページはこちらです。

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その1はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その2はこちら

・応募作品過去最多!!第5回UE4ぷちコン応募作品一挙公開!その3はこちら

 

[UE4] 2016年春ヒストリアイベント情報!

$
0
0

代表の佐々木です。

近々ヒストリア関連のイベントが多く開催されるので、イベント情報をお知らせします!

 

5月14日(土) ”アンリアルフェス2016大阪”

RED_UNREALFEST2016OSAKA_1200_1000_0

詳細サイト:https://atnd.org/events/76761

毎年アンリアルエンジンを制作・販売をしているEpic Gamesの日本支部、Epic Games Japanが主催で開催しているアンリアルフェス。今年は去年に続き、春に大阪、秋に横浜の2回行われます。今回もAAAタイトルの事例講演から、新機能の紹介まで、幅広いセッションが予定されています。今年の特徴としては、去年までよりも深い内容のセッションが多いことです。UE4がリリースされてから2年、本格的にUE4を使い倒した事例が出始めたということでしょうか。

 

物販ブース

ヒストリアは去年の横浜に続き共催/実行委員として参加しており、展示ブース・スポンサーブース・物販を担当します。今回大注目なのが、初の試みであるアンリアルグッズの物販! 以下のラインナップを販売予定です。今回は初めてで数が読めなかったので、あまり多くの数を用意していません。売り切れにご注意!(特に帰ってきたヤツが入っているTシャツ!)
13101166_977682655685883_1364137314_n

 

 

スポンサー・展示ブース

今回、スポンサー・展示ブースもあります! ↓の6ブースが出展されます。

  • ウェブテクノロジさま
  • モノビットさま
  • ボーンデジタルさま
  • 東陽テクニカさま
  • サードウェーブデジノスさま
  • ヒストリア

UE4単体だけでなく、ミドルウェアや制作環境も整ってきたので、ぜひみなさん覗いてみてくださいね。展示には第5回UE4ぷちコンの最優秀作品も展示予定です!

 

ちょっとしたお楽しみ

その他にもほんのちょっとしたお楽しみを来場者の方にはご用意しています。ご期待ください!

 

フェスの後はパーティー!

RED_UNREALFEST2016OSAKA_PARTY_1200_1000_0

詳細ページ:https://atnd.org/events/77305

関係者メインのパーティーですが、一般参加も若干名受け付けています。フェス後にたっぷり盛り上がりましょう! ヒストリアメンバーもフル参加!

 

5月15日(日) ”出張ヒストリア! 京都UE4勉強会!”

historiacaravan_logo_770_250

詳細ページ:https://atnd.org/events/76863

こちらはヒストリアのここ半年の成果発表的なイベントです! 今回は事例を4つご用意いたしました。私もオープニングセッションで、UE4を取り巻く今の環境を整理してお話いたします。

もともとはアンリアルフェスで押さえていた会場がすぐに埋まってしまうだろう(実際24時間かからず埋まってしまった)から、アンリアルフェスに登録できなかった人にも何かできないか、というところから始まったイベントです。ちょうどヒストリアが最近リリースタイトルが多かったため、それであればヒストリア主催でやりましょう!という流れで開催が決定しました。今回のアンリアルフェスは中級者~上級者向けの内容が多いので、京都イベントは初心者~中級者向けの内容で「自分にも作れそう!」と思ってもらえるような事例紹介のイベントを目指しています。

また、この後ゲスト講演も飛び込みであるかも!? ご期待ください!

 

本イベントは東京での再演も検討中です。会場が見つかれば即開催するので、もしも会場を貸してもいいよというところがありましたらご連絡お願いいたします。

 

その他近日開催のヒストリア関連イベント

5月28日(土)”第2回 UE4ソースコード読みもくもく会”

詳細ページ:https://atnd.org/events/77327

@Usui_KKYL さん主催のUE4のソースコードを読み解きましょうという会です。ヒストリアは会場貸しをやっています。会議室2つをお貸ししますので、ぜひお越しください。

 

6月4日(土)”第2回 Unreal Engine 4 Tokyo Meetup”

詳細ページ:http://passmarket.yahoo.co.jp/event/show/detail/01667by67qpu.html

全国各地で開催されているUE4イベント、UE4 Meetupの東京版です。

30分枠を頂いたので、モバイルの事例をお話いたします! 京都イベントでも取り上げるタイトルを題材とする予定ですが、内容はBPの処理の話中心にしようかなと思っています。

 

 

春は大阪、京都、東京とイベント盛りだくさん! みなさんとお会いできると嬉しいです!

この他にも夏・秋に向けてもいろいろと企画中なので、ヒストリア公式Twitterを要チェック!!


[UE4] パッケージ済み実行ファイルをVisualStudioでデバッグする方法

$
0
0

今回は、パッケージ済みの実行ファイルを、VisualStudioを使用してデバッグする方法をご紹介します。

稀にではありますが、パッケージした場合だけ発生するバグに遭遇することもあります。
そのような場合に、調査方法の1つとしてVisualStudioのデバッガが使用できれば、解決へのかなりの近道となります。

 

 

まず、パッケージ作成時に1つだけオプションを変更しておく必要があります。

Project Settings -> Packaging の「Include Debug Files」をONにして下さい。

include_debug_files

あとは、通常通りにパッケージを作成すればOKです。

 

実行ファイルと同じフォルダに、pdbファイルが作成されていることを確認して下さい。

WindowsNoEditorフォルダ直下のMyProject.exeではなく、MyProject/Binaries/Win64/MyProject.exe が目的の実行ファイルになりますので、注意して下さい。

pdb

 

次に、VisualStudio側の設定を行います。

まずは、ビルド構成を変更します。
普段は「DebugGame Editor」「Development Editor」などの、「Editor」と付いた構成でビルドしているかと思いますが、これを「DebugGame」「Development」などの「Editor」と付いていない構成に変更します。
今回はパッケージを「Development」で作成したので、構成も「Development」にします。

build_config

 

このままビルドして実行してもゲームは起動出来るのですが、その場合、参照されるアセットはパッケージされたものではなく、Saved/Cooked 以下に保存された中間ファイルになります。
調査したいのがC++側の挙動のみであれば、これでも十分なのですが、アセットが絡む問題を追跡する場合には、パッケージ済みのアセットを参照して動作してもらわなければ困ります。

 

そこで次に、VisualStudioのプロジェクトのプロパティ画面を開きます。
UE4ではvcprojectが自動生成されるため、この画面自体をあまり使わなくなりがちですが、実は、デバッグ機能やビルドコマンドラインの機能はそのまま使用出来ます。

ここで、「デバッグ」の「コマンド」に、先ほどパッケージで作成されたexeファイルを指定します。

project_property

 

 

この状態でVisualStudioからデバッグを開始すると、パッケージ作成時にビルドされたexeを、同フォルダに作成されたpdbを使用してデバッグすることが可能になります。
ブレークポイントも呼び出し履歴もウォッチも、スレッドやメモリウィンドウも使用出来ます。

「Development」構成ではコードが最適化されていますが、「DebugGame」ではゲーム側のコードは最適化無しでデバッグ可能です。
エンジンをコードからビルドした場合には、エンジンコードも最適化されていない「Debug」構成でデバッグすることも出来ます。

 

この方法を知っておくと、プロジェクト終盤の問題対処が格段に楽になりますので、是非覚えておいて下さい。

モバイル自社タイトル2作発表! 「スペースペンギンズ」&「Knight Flight」予約開始!

$
0
0

“Unreal Fest 2016 大阪”と”出張ヒストリア! 京都UE4勉強会!”にて、自社タイトルのモバイル2作品を発表させて頂きました!

どちらも「手を挙げた人が好きなものを短期間で好きに作る」という社内制度”Colors”から生まれたタイトルです。

予約TOP10にて予約を開始したので、ぜひ予約してくださいね!(リリースした時お知らせメールが届きます)

どちらも初夏、リリース予定です!

 

スペースペンギンズ

BuisinessCard_ssk

予約TOP10

iOS:https://yoyaku-top10.jp/u/a/MTc5ODE

Android:https://yoyaku-top10.jp/u/a/MTc5ODA

Knight Flight

NightFlightCard

予約TOP10

iOS:https://yoyaku-top10.jp/u/a/MTc5OTc

Android:https://yoyaku-top10.jp/u/a/MTc5Nzk

[UE4]TimeLineノードでCurveアセットを使う方法

$
0
0

みなさん、こんにちは!クボッチです。

今回は、TimeLineノードでCurveアセットを使う方法についてご紹介致します!

TimeLineのTrackだけ修正したい、けど……他の人がBlueprintを触ってるといった状態に、分業ができるためとても便利です!!

▼Curveアセットに関してはコチラの記事「[UE4]色々な所で使えるCurveアセットの使い方」をご覧ください。

 

まず、作成したCurveアセットをTimeLineノードに登録します。

①TimeLineノードに登録したいCurveアセットを選択。

001

②選択した状態でこちらのボタンを押す。

Blog01

これで、登録の方は完了です。簡単ですね!

0002

登録したCurveアセットを編集するには、Curveアセットを直接開き、編集します。

0003

ぜひ、お試しくださいー!

 

[使用例] のびるねこちゃんを、のびのびしてみました。

Blog用004

 

 

[UE4] スプライン移動に衝突検知システムを追加する

$
0
0

今回は、スプライン移動中に障害物が横切った際、ぶつからないように一時停止する機能を作りたいと思います。
また、おまけとしてイベントディスパッチャーを用いてちょっとした機能を追加しますので、イベントディスパッチャーの使い方にいまいちピンとこない方も参考にしていただければ幸いです。

まず、スプライン移動については過去記事を参考にしてください。

それでは早速スプライン移動用コンポーネントに機能を追加していきたいと思います。

まず実装の概要としましては、スプライン移動するアクター(今回はゲストとしてネコちゃんに来てもらいました)に衝突検知用のコリジョンを追加し、スプライン移動側でそのコリジョンが何かにヒットしたら移動を一時停止し、ヒットが抜けたら移動を再開するといった感じです。
また、おまけの機能として、一時停止した際にネコちゃんがしゃべるようにします。

それでは早速実装方法のご紹介です。

まずはSplineMoveComponentに「PrimitiveComponent」型の変数を追加します。PrimitiveComponentはコリジョン用コンポーネントのボックスやスフィア、シリンダーの基底クラスになっているため、コリジョンの形状に関係なくそれらを設定できるようになります。
1

続いて外部から受け取ったPrimitiveComponentを先ほど追加した変数に保存しておき、Collision側の各イベントを受け取るカスタムイベント「SetCollisionEvent」を追加します。
まずはコリジョンのヒット検知時に呼ばれるBeginOverlapイベントを紐づけます。
2

こうすることで、バインドする際に追加したカスタムイベント「ObstacleBeginOverlap」が、外部から受け取ったCollisionのBeginOverlap時に全く同じタイミングで一緒に呼ばれるようになります。
ObstacleBeginOverlap内で設定しているCollisionStopという変数は、事前にBool型の変数としてSplineMoveComponentに追加しておいてください。このフラグが立っている時(すでに一度CollisionのBeginOverlapが呼ばれている)は、何もしないというのが後のポイントです。

続いてBeginOverlapで検知したアクターがコリジョンの外に出た時に呼ばれるEndOverlapのイベントをバインドします。
3

ここでも追加したカスタムイベントの「ObstacleEndOverlap」は、CollisionのEndOverlap時に同時に呼ばれるので、その際にGetOverlappingActorsでCollisionの中に他にアクターがいないかチェックして、誰もいなければCollisionStopをFalseに設定します。
これであとはCollisionStopのフラグをチェックすれば、障害物があるかどうかが判別できるようになりました。

※Bind関連の処理を書く際は、バインドするときのタイミングと、バインド先のカスタムイベントとで、イベントが呼ばれるタイミングが異なることに注意してください。

さて、これでバインドによるイベントの紐づけはとりあえず完了しましたが、途中でCollisionが切り替わった際に安全にイベントも切り替わるように処理を追加しておきましょう。イベント名はとりあえず「SetCollisionEventUnBind」とします。
現在のCollisionが設定されている場合に、バインドして紐づけていたイベントはもう必要なくなるため、Unbind処理を呼んで紐づけを切ります。
4

このイベントをSetCollisionEventの中に入れてしまえば、Collisionの設定時に、自動で以前のイベントがアンバインドされるはずです。
5

最後はTick内でCollisioStopフラグを監視すればCollision内に障害物がある場合にスプライン移動は停止し、障害物がすべて無くなれば移動を再開できるようになります。
6

ちなみにこのTickの処理は、スプライン移動がポーズ中の場合は以前の実装によりTickイベント自体が呼ばれなくなっているはずなので、障害物による停止とポーズによる停止がちぐはぐになることはありません。障害物で止まっている最中にもし別の要因で一時停止になった場合でも、移動の再開回りで問題は発生しないはずです。

最後にレベルブループリントでネコちゃんにSplineMoveComponetを追加してやり、そのあとに参照したいネコちゃんのコリジョンを設定してあげれば完成です。
7

 

おまけ
ゲームを作っていると、ネコちゃんが障害物に邪魔された瞬間と、障害物がなくなった瞬間のイベントをSplineMoveComponet以外が知りたい場合など出てくると思います。例えば障害物に邪魔された瞬間にネコちゃんや別のキャラがそれに連動して違うモーションを再生したり、何かしらのアクションを起こしたりなどです。
そんな時に便利なのがイベントディスパッチャーです。
先ほど紹介したPrimitiveComponentのBeginOverlap、EndOverlapのバインドもイベントディスパッチャーの機能の一つです。

それでは早速実装してみましょう。

まずは障害物によって移動が停止するタイミングに呼ばれるイベントと、障害物がなくなって移動が再開するタイミングに呼ばれるの二つのイベントディスパッチャーを追加します。名前はそれぞれ
・ObstacleOnEvent
・ObstacleOffEvent
とします。
8

イベントの引数に、障害物が何のアクターかわかるようにとりあえずアクター型の追加しておきましょう
つぎに追加したイベントディスパッチャーをそれぞれのタイミングで呼び出します。
ObstacleOnEventはCollisionStopがTrueになったときに、ObstacleOffEventはCollisionStopがFalseになったタイミングです。
9

10

これで準備は完了です。
この実装により他のブループリントから、ObstacleOnEvent、ObstacleOffEventをBeginOverlap同様にバインドしてあげれば、それぞれのタイミングで処理が呼ばれるようになります。

試しにレベルブループリントでネコちゃんに追加Widgetを表示したり消したりする処理を追加してみます。
11

バインドの仕方はBeginOverlapの時と同じです。イベントピンをドラッグ&ドロップしてカスタムイベントを追加すれば、自動的に引数が入っているイベントが追加されます。あとは障害物に邪魔されて移動が停止した瞬間と再開した瞬間で実行したい処理を書けばその通りに動くはずです。

実行結果を動画にしてみました。

[UE4] StaticMeshマテリアル置換プラグインを公開しました

$
0
0

新しく開発した社内用プラグインを、GitHubで公開しました。

下記のページから取得可能です。

https://github.com/historia-Inc/UE4_MICRep

Pluginsフォルダを、そのままUE4プロジェクトフォルダにコピーすれば使用可能です。

 

機能:

このプラグインは、主に映像用途などで1メッシュに数十~数百といった大量のマテリアルを使用する際に、効率的に編集可能な状態に変換することを目的としています。

指定したStaticMeshアセットのマテリアルをすべて、共通の基本マテリアルを持つマテリアルインスタンスに置き換えることが出来ます。

 

例えば、あるStaticMeshに3つのマテリアルが使用されていた場合、

基本マテリアルと、それを継承した3つのマテリアルインスタンスを自動生成し、StaticMeshに割り当てます。

これらのマテリアルインスタンスには、元のマテリアルのBaseColorテクスチャとNormalテクスチャが反映されています。

自動変換の後、自動生成された基本マテリアルを編集することで、メッシュ全体に共通の効果を適用することが出来ます。

 

使い方:

①元の状態はこんな感じです。StaticMeshと、3つのマテリアル、それに使用されているテクスチャがあります。

micrep01_cb

micrep01

 

②ContentBorowserで目的のStaticMeshアセットを右クリックし、メニューから「Replace Materials」を選択します。(複数アセットの同時選択もOKです)

staticmesh_menu

 

③このように、StaticMeshと同じフォルダに、基本マテリアル1つと、それを継承したマテリアルインスタンスが3つ生成され、StaticMeshに割り当てられた状態になります。

基本マテリアルは「M_」から始まる名前、マテリアルインスタンスは「MI_」から始まる名前になります。

micrep02_cb

micrep02

 

④生成された基本マテリアルを編集することで、メッシュ全体にマテリアル効果を反映させることが出来ます。

 

以上です。

 

よいプラグイン名を思いつかなかったので、開発中の仮の名前のままの公開です。

何かアイデアがあればGitHubのIssuesに書き込んで頂けると嬉しいです。

 

注意事項:

このプラグインは、あくまで社内ツールとして開発されたものであり、エラー対処等は考慮されていません。

また、元のマテリアルはfbxインポート直後のものを想定しており、複雑なグラフが組まれた状態では正常に機能しない場合があります。

 

[UE4] EQSで群れを動かす

$
0
0

今回はEQSという機能を使って群れを動かすのをやってみようと思います。

この機能は4.12ではまだ実験的機能として提供されている段階なので、記事の内容は将来的に使えなくなる可能性があります。

EQSとは、複数の選択肢の中から条件に合わせた、最も良いActorや場所(Vector)などを求めてくれる機能です。

条件にはキャラクターから見えるか、キャラクターの正面にあるか、近いか、などの条件が複数設定できます。

 

EQSの公式ドキュメントはこちら
Environment Query System
https://docs.unrealengine.com/latest/JPN/Engine/AI/EnvironmentQuerySystem/index.html

Behavior Treeはこちらを参考にしてください

ビヘイビアツリー

https://docs.unrealengine.com/latest/JPN/Engine/AI/BehaviorTrees/index.html

 

 

1.EQSの機能をOnにする

「編集 > エディタの環境設定」からエディタの環境設定を開き、「一般 > 実験段階」のAI内にあるEnvironment Query SystemのチェックボックスをONにするとEQSが使えるようになる。

eqson

 

 

2.Behavior Treeの準備

コンテンツブラウザ上で右クリックをし、AIの項目から「ビヘイビアツリー」と「ブラックボード」を作成する。

AIで動かすキャラをCharacterを親にして作成、さらにAIControllerを親にしてブループリントを作成する。

ai

Characterのブループリントを開き、デフォルト値のPawnの中にあるAIControllerClassに先ほど作成したAIControllerのクラスを設定。

aiconsete

 

次にAIControllerのブループリントを開きEventGraphのBeginPlayからUseBlackboardとRunBehaviorTreeノードをつなぎ、それぞれに先ほど作ったアセットを設定。

runbihavi

これでBehaviorTreeの機能を使う準備ができました。

 

 

 

3.EQSの準備

コンテンツブラウザから右クリックでAIの項目にある「環境クエリ」を選択します。これがEQSの本体となります。

envquery

 

4.EQSで探すActorを作成

今回はネコちゃんが餌に群がるようなQIを作りたいので、エサとなるブループリントをActor継承で作成します。

StarterContentから適当に拝借し、こんなブループリントになりました。

food

CollisionはコリジョンプリセットをOverlapAllDynamicに設定しています。

 

 

5.EQSの作成

環境クエリのアセットをダブルクリックで開きます。

ダブルクリックで開くと「ルート」のみ表示された状態です。

まずは、右クリックから”Generator”を作成します。くわしいしゅるいについては、公式のリファレンスをご覧ください。  https://docs.unrealengine.com/latest/JPN/Engine/AI/EnvironmentQuerySystem/NodeReference/index.html

この中からActor of Classを選択します。

Searched Actor Classに先ほどのBP_Foodを設定します。半径には5000としておきます。

これで範囲内のBP_Foodクラスを返すEQSとなります。

このままでは、発見したBP_Foodクラスに優劣がつかないのでActorOfClassノードを右クリックして「テストを追加」から条件を付けていきます。

一つ目はDistanceを設定します。

これは距離により優劣をつける条件です。

パラメータは以下のようにします。

distanceeqs

これで距離の近いものほど選ばれやすくなります。

二つ目の条件にPathExistを選択します。

これは、対象までの移動経路が確保できるかどうかを評価します。

これで、到達できない位置にいるActorを省くことができます。

パラメータは以下の通りです。

eqspathexist

これでEQSは完成です。

eqsfkix

 

 

6.Behavior TreeでEQSを使う

まず、ブラックボードを開き「新規キー」でObjectを作成します。

bboard

BaseClassにはActorを設定します。ここでは名前をFoodとします。

EQSは最も良いとみなした結果をActorか場所(Vector)で求め、BlackBoardのキーに返してくれます。そのためBaseClassにはActorかVectorを設定してください。

 

次にビヘイビアツリーを開きます。

BlackboardAssetには先ほどのブラックボードを設定します。

SimpleParallelノードを配置し、SimpleParallelノードを右クリックで「サービスを追加… > Run EQS」を選択します。

パラメータは以下の通りです。

runeqsparam

狙ったFoodが存在するかどうかを新規タスクを作って監視します。

上の新規タスクから「BTTask_BlueprintBase」を選択し、タスクを作成します。名前はExistとしました。

BlackboardKeySelector変数を作成し、編集可能にしておきます。

existeqsvariable

コードは以下の通りです。

existeqs

対象のActorがなかった場合、FinishExecuteにて失敗を返します。

このタスクと、BehaviorTreeのデフォルトのタスクである「MoveTo」を使い以下のようにBehaviorTreeを作成しました。

bteqs

ExistとMoveToのタスクはそれぞれ対象となるActorを設定できるので、それぞれにブラックボードで用意したFoodを設定します。

以上で一番良い飯に向かうネコちゃんのAIの完成です。

manyneko

右クリックで餌を置く。

おなかが減ると小さくなっていき消える。

満腹になると3つに分裂する。

などの要素を入れるとこんな感じになりました。

[UE4] モバイルのアプリ内課金機能のご紹介!

$
0
0

今回は、UE4に標準機能として用意されているアプリ内課金機能をご紹介したいと思います!

※この記事は4.12時点での記事になっています。最近ではモバイル周りがどんどん更新されていますので将来的には設定方法が変わったりする可能性がありますのでご注意ください。

この記事では、GooglePlayDeveloperコンソールやitunesConnectでの設定の説明は行いません。そちらに関してはかなりの数の記事がインターネット上にありますのでそちらをご覧ください。

 

○課金機能を使用するための設定

課金機能を使用するための設定になります。AndroidとiOSで設定が異なります。

●Androidの設定

1.)AndroidEngine.iniを編集します。

プロジェクト以下のConfigファルダにAndroidフォルダを作成し、Androidフォルダ内にAndroidEngine.iniを新規で作成します。作成したiniファイルに下記内容を記述します。

[OnlineSubsystem]
DefaultPlatformService=GooglePlay

[OnlineSubsystemGooglePlay.Store]
bSupportsInAppPurchasing=True

 

2.)Androidの[Advanced APKPackaging]を編集します。

ProjectSettings→Platforms→Androidの[Advanced APKPackaging]セクションを開きます。

ExtraPermissionsに「com.android.vending.BILLING」を追加します。

Blog_Purchase_005

 

●iOSの設定

1.)IOSEngine.iniを編集します。

プロジェクト以下のConfigファルダにIOSフォルダを作成し、Androidフォルダ内にIOSEngine.iniを新規で作成します。作成したiniファイルに下記内容を記述します。

[OnlineSubsystemIOS.Store]
bSupportsInAppPurchasing=True

 

※2.)GameCenterもしくはCloudKitSupportを有効にします。(※この項目は4.11までのバージョンの場合行ってください。4.12からは必要なくなっています。)

ProjectSettings→Platforms→iOSのOnlineセクションを開きます。

「Enable GameCenterSupport」もしくは「Enable Cloud Kit Support」をEnableにします。

Blog_Purchase_006

 

○課金ノードの紹介

ノードは全部で3つと多くありません。ノードの機能自体もわかりやすいものになっています。

●アイテムの情報を取得する。

各ストアに登録してあるアイテムの情報を取得するには「Read In App Purchase Information」ノードを使用します。引数にある「Product Identifier」に取得したいアイテムの製品IDを渡してあげるとそのアイテムの情報を取得することが出来ます。

■引数

「Player Controller」:プレイヤーコントローラー

「Product Identifier」:取得したいアイテムの製品ID。

■戻り値

「In App Purchase Information」:アイテムの情報。製品IDや金額など。

Blog_Purchase_002

 

●アイテムを購入する。

各ストアに登録してあるアイテムを購入するには「Make an In-App Purchase」ノードを使用します。「Product Identifier」に購入したいアイテムの製品IDと消費or非消費フラグを渡してあげるとそのアイテムを購入することが出来ます。

■引数

「Player Controller」:プレイヤーコントローラー

「Product Identifier」:購入したいアイテムの製品ID。

・「Is Consumable」:Trueなら消費アイテム、Falseなら非消費アイテム。

■戻り値

・「Completion Status」:完了時の状態。Success、Failed、Cancelledなど

「In App Purchase Information」:アイテムの情報。製品IDや金額、領収書など。

Blog_Purchase_004

 

●アイテムの購入を復元する。

既に購入したアイテムの購入を復元するには「Restore In-App Purchases」を使用します。既に購入済みのアイテムの購入を復元することが出来、購入済みのアイテム情報を取得できます。各ストアに登録してあるアイテムすべてを確認します。領収書はすべて同じになり、購入時とは違っています。

※4.10以下のバージョンではiOSでしか使用することが出来ません。

■引数

「Player Controller」:プレイヤーコントローラー

■戻り値

・「Completion Status」:完了時の状態。Success、Failed、Cancelledなど

「In App Restore Purchase Information」:復元した購入情報。製品IDと領収書(※購入時とは違う領収書)。

Blog_Purchase_003

 

○課金のテストを行う。

課金周りを実装したら、テストを行いましょう。

パッケージングに関しては、公式ドキュメントをご確認ください。

Androidクイックスタート

iOSクイックスタート

●Androidの場合

キーストア情報などGooglePlayにアップロードするために必要な情報を設定した状態でパッケージングしたpakファイルをGooglePlayにアップロードする必要があり、アルファ版テストとしてGooglePlayからインストールする必要があります。

●iOSの場合

パッケージングしたipaファイルを直接iOS端末にインストールすればテストが出来ます。

 

 

以上になります!是非、UE4の課金機能をご活用ください!!


[UE4]モバイル特有の動作のイベントを取得する

$
0
0
前回に引き続き今回もモバイル関係についてです。
タイトルの特有の動作とはホームボタンを押したときやAndroidのバックボタンを押したときなどのイベントをアプリ側で使用する方法を紹介したいと思います。

 

まず初めにAndroid専用のイベントをご紹介します。
Android Evemt
イベント名 イベントの内容 補足
Android Back  バックボタンをおした時のイベント BackButton(機種により表示方法が異なりますのでご注意ください)
Android Menu  メニューボタン(オプションメニューとも言われます)

をおした時のイベント

MenuButton(機種により表示方法が異なりますのでご注意ください)
Android Volume Up  音量調整ボタンが押された時のイベント

音量を上げた時に呼ばれる

Android Volume Down  音量調整ボタンが押された時のイベント

音量を下げた時に呼ばれる

 

 

 

次にホームボタンを押した(正確にはアプリがバックグラウンドに移行した)時などのイベント取得方法をについてです。ただこれから紹介するものはブループリントだけではイベントは取得できないのでC++を使用してブループリント側でイベントを取得できるようにしていきます。

今回はキャラクターに実装してみようと思います。

 

 

  • C++側

本来、Android,iOSのバックグラウンドにいったときのイベントはAndroidではJava,iOSではobjective-c (もしくはswift)で書かなければいけないのですがUE4ではすでにデリゲートが定義されておりc++のみで完結できるようになっています。そしてそのデリゲートを定義してる

FCoreDelegates(Engine/Source/Runtime/Core/Public/Misc/CallbackDevice.h)

というクラスがあるので以下のような感じにキャラクタークラスにデリゲートの通知を受け取る関数を追加します。

 

#include "GameFramework/Character.h"
#include "TestmobileProjectCharacter.generated.h"

UCLASS(config=Game)
class ATestmobileProjectCharacter : public ACharacter
{
GENERATED_BODY()
~~以下略~~
public:
virtual void BeginPlay() override;

/** (iOSのみ)プッシュ通知:デバイストークンを受け取る */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationRegisteredForRemoteNotifications(const TArray<uint8>& Token);

/** (iOSのみ)プッシュ通知:デバイストークン取得失敗情報を取得 */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationFailedToRegisterForRemoteNotifications(const FString& Description);

/** (iOSのみ)プッシュ通知:通知を受け取った際に呼ばれる */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationReceivedRemoteNotification(const FString& Message);

/** (iOS&Android共通)アプリが非アクティブになる直前に呼ばれる */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationWillDeactivate();

/** (iOS&Android共通)アプリが非アクティブになりバックグランド実行になった時呼ばれる */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationWillEnterBackground();

/** (iOS&Android共通)アプリケーションがバックグラウンドから復帰する直前に呼ばれる(初回は呼ばれない) */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationHasEnteredForeground();

/** (iOS&Android共通)アプリがアクティブになったとき呼ばれる */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationHasReactivated();

/** (iOS&Android共通)システムからのアプリ終了の際に呼び出される。(ただiOSではバックグラウンドで何か動いていないと呼ばれない
アプリケーションがバックグランドで動作してる途中で終了される場合は呼び出されるかもしれないけど、サスペンド状態から終了される場合は呼び出されない) */
UFUNCTION(BlueprintImplementableEvent,BlueprintCallable,Category = "Application Event")
void OnApplicationWillTerminate();

void ApplicationRegisteredForRemoteNotifications(TArray<uint8> Token);
void ApplicationFailedToRegisterForRemoteNotifications(FString Description);
void ApplicationReceivedRemoteNotification(FString Message);
};

#include "TestmobileProjectCharacter.h"

//////////////////////////////////////////////////////////////////////////
// ATestmobileProjectCharacter

~~以下略~~

void ATestmobileProjectCharacter::BeginPlay()
{

/** iOSのみ */
FCoreDelegates::ApplicationRegisteredForRemoteNotificationsDelegate.AddUObject(this,&ATestmobileProjectCharacter::ApplicationRegisteredForRemoteNotifications);

FCoreDelegates::ApplicationFailedToRegisterForRemoteNotificationsDelegate.AddUObject(this,&ATestmobileProjectCharacter::ApplicationFailedToRegisterForRemoteNotifications);

FCoreDelegates::ApplicationReceivedRemoteNotificationDelegate.AddUObject(this,&ATestmobileProjectCharacter::ApplicationReceivedRemoteNotification);

/** iOS&Android共通 */

FCoreDelegates::ApplicationWillDeactivateDelegate.AddUObject(this,&ATestmobileProjectCharacter::OnApplicationWillDeactivate);

FCoreDelegates::ApplicationWillEnterBackgroundDelegate.AddUObject(this,&ATestmobileProjectCharacter::OnApplicationWillEnterBackground);

FCoreDelegates::ApplicationHasEnteredForegroundDelegate.AddUObject(this,&ATestmobileProjectCharacter::OnApplicationHasEnteredForeground);

FCoreDelegates::ApplicationHasReactivatedDelegate.AddUObject(this,&ATestmobileProjectCharacter::OnApplicationHasReactivated);

FCoreDelegates::ApplicationWillTerminateDelegate.AddUObject(this,&ATestmobileProjectCharacter::OnApplicationWillTerminate);

Super::BeginPlay();
}

void ATestmobileProjectCharacter::ApplicationRegisteredForRemoteNotifications(TArray<uint8> Token)
{
OnApplicationRegisteredForRemoteNotifications(Token);
}

void ATestmobileProjectCharacter::ApplicationFailedToRegisterForRemoteNotifications(FString Description)
{
OnApplicationFailedToRegisterForRemoteNotifications(Description);
}

void ATestmobileProjectCharacter::ApplicationReceivedRemoteNotification(FString Message)
{
OnApplicationReceivedRemoteNotification(Message);
}

  • ブループリント側

Event

ブループリント側ではC++定義されたキャラクタークラスを継承すればFunctionsの中に先ほどBlueprintImplementableEvent定義したクラスがoverrideできます。これでバックグラウンドに行った時にアプリの途中経過を保存したり戻ってきた時の復帰処理などをブループリント側で実装できるようになりました。

 

 

 

 

・小ネタ
Androidで実機確認したとき、ステータスバー&ナビゲーションバーが表示されてしまいます。
Screenshot_20160624-113816
ゲームではやっぱり画面広く使いたいですよね。実は全画面にする方法は設定で変えることができます。
Navi
Project SettingsのPlatforms/Android/APKPackaging/Enable FullScreen Immersive on Kitkat and above devices
にチェックを入れると。。。
Screenshot_20160624-113823
のように上下のバーが消え全画面で表示されます。
ちなみにバーは完全に消されてるわけではなくスワイプ動作をすることで表示されます。

【7/18(祝)】出張ヒストリア! UE4東京勉強会開催

$
0
0

his_cara_TOKYO_770_250

7/18(月・祝)は東京でUE4!

7月18日(月・祝)に、Unreal Engine 4専門のゲームデベロッパーである ヒストリア が豪華5本立ての事例紹介勉強会を行います!
内容は初心者~中級者向けで、難しい内容は行いません。UE4に興味があるけど触ったことがない人や学生さんも、ウェルカムです!

みなさんこの機会に是非ご参加ください!

参加費無料!

※本公演は 出張ヒストリア! UE4京都勉強会 の再演です。

タイムテーブル

No 時間 分数(予定) 発表者 タイトル
13:00-13:30 30分 13:00開場(入場開始)
13:30-14:00 30分 佐々木 瞬(代表取締役 / プロデューサー / ディレクター) オープニング「UE4のいま! このビッグウェーブに乗り遅れるな!」
14:00-14:30 30分 久保 浩子(アシスタントディレクター) モバイル事例「プランナーだからこそ、UE4でゲーム制作 ~新人プランナーの挑戦~」BuisinessCard_ssk
14:45-15:15 30分 黒澤 徹太郎(テクニカルアーティスト/3Dアーティスト) モバイル事例「アーティストが入社一ヶ月で一人でゲームを作ってみた。」NightFlightCard
15:15-15:45 30分 馬場 俊行(エンジニア/レベルデザイナー) BP Tips「ブループリントを書くにあたって大切なこと ~たったひとつのシンプルな答え」
16:00-17:00 60分 ゲスト:Epic Games Japan ロブ・グレイ(サポート・テクニカルアーティスト) ゲストセッション「Realtime Cinematic Future: シーケンサーの登場」
17:15-18:15 60分 原 龍(エンジニア) / 原 伸吾(テクニカルアーティスト) VR事例「VRコンテンツ開発を加速する! シーケンサーを使った無駄のないワークフローと最適化」Splash
18:15-18:30 15分 エンディング

場所

日本工学院専門学校 蒲田キャンパス 31005教室
住所: 〒144-8655 東京都大田区西蒲田5-23-22

参加お申込み&詳細はATNDページをご覧ください。

また、本講演後に懇親会を予定しております。

懇親会ロゴ

おいしい食事とお酒を囲んで楽しく語り合いましょう!!

懇親会の参加お申込みはコチラ

 

皆様のご参加お待ちしております!!

[UE4] SpriteStudioプラグインを更新しました

$
0
0

ヒストリアで開発を担当しているUE4用SpriteStudioプラグインを更新しました。

今回は、「SpriteStudio 5.7 の新エフェクト機能への対応」「UMG対応の大幅強化」の2つの大きな更新があります。

 

本プラグインは、下記のGitHub上のページからダウンロード出来ます。
https://github.com/SpriteStudio/SS5PlayerForUnrealEngine4

プラグインのドキュメントはこちらです。機能の詳細はこちらをご覧ください。

http://historia.co.jp/spritestudio

SpriteStudio本体については、下記のウェブテクノロジ様の公式ページをご参照下さい。
http://www.webtech.co.jp/spritestudio/

 

新エフェクト機能

SpriteStudio5.5 で追加されたエフェクト機能ですが、今回、SpriteStudio5.7 で内容が大幅に変更されました。

再生方法が変更されたことで、従来のバージョンでは行えなかった逆再生や、アニメーションの途中からの再生も可能になりました。

ss_effectv2_3 ss_effectv2_2

ss_effectv2_1

新エフェクト機能は 5.6 以前のものとは互換がありませんので、プラグインを更新する際は、SpriteStudio本体も5.7以降に更新をお願いします。

(エフェクト機能以外については、5.6以前で作成したアニメーションも正常に再生できます)

 

UMG対応の大幅強化

これまで、本プラグインのUMGでの使用は、とりあえずアニメーションが表示できる、という程度のものでしたが、

今回のアップデートで、本格的なUMGへの組み込みが可能なように、機能を大幅強化しました。

また、従来のオフスクリーンレンダリングのみでなく、標準のUMG用の描画モードを実装したことで、大幅にパフォーマンスが改善されました。

 

ss_umg_1

UMGのエディタ上でSpriteStudioWidget を配置してアニメーションを再生できるのは従来どおりですが、

今回から、SpriteStudio上で作成したパーツに対して、UMG標準Widgetを親子付け出来るようになりました。

もちろん、子ウィジェットはアニメーションに追従して動きます。

つまり、SpriteStudioで作った動きのあるUIに、そのままUMGのボタン等のウィジェットを組み込むことが出来るようになりました。

 

ss_umg_2

SpriteStudioWidget自体を入れ子にすることも可能なので、画面全体のレイアウトを決めるアニメーションにボタンをアタッチし、そのボタンに個別のアニメーションを設定する、ということも簡単です。

 

サンプルプロジェクト内に、マウスとタッチパネル両方の操作に対応したサンプルHUDを追加しましたので、是非一度ご覧ください。

 

その他

ss_slider

アニメーションのビューアのフレーム数表示を、スライダに対応しました。

ちょっとしたコトですが、プレビューが便利になりました。

 

ss_editorsettings

SSPJファイルをインポートした際に、ContentBrowser上で自動的にフォルダを作成し、SSPJとテクスチャをそのフォルダ内に格納するように変更しました。

この機能は、「エディタ設定」->「Sprite Studio」内のオプションでON/OFF出来ます。

 

[UE4] 1つのマテリアルで色のバリエーションを増やしたい!

$
0
0

どうも!新人テクニカルアーティストの渡邊です!
今回は1つのマテリアルで色のバリエーションを増やす方法について書いてみようと思います。

(3)

”Object Position”はワールド空間の中心位置を出力する表現式のため、メッシュの大きさによって、DivideかMultiplyで値を調整する必要があります。

(EpicさんのRealisticRenderringデモにあった、回転の値で色が変わるマテリアルを参考にしました!)

(2)

適応するとこんな感じです。
配置する位置によって色が変わってくれるので、同じメッシュが複数ある時や、背景に色の変化がほしいとき等使えそうです。

もう1つが”PerInstanceRandom”です。
名前のとおりFoliageBluePrintなどのInstansed Static Meshにしか使えない表現式です。

(8)(7)

テクスチャの色をランダムに拾ってくれます。

(5)

以前の記事”コンストラクションスクリプトでお手軽にプロシージャルなアクターを作る”で紹介された
のびるねこちゃんの胴体がInstansed Static Meshだったので適応してみました。
一番長い猫ちゃんはPerInstanceRandomをそのままBaseColorにつなげただけです。
他の二つは上のグラデーションテクスチャを使っています。
PerInstanceRandomは完全にランダム配色になってしまうので、使いどころが限られそうですね。

PerInstanceRandomや、他のConstant表現式の詳しい説明はこちら

[UE4]謎のマテリアルノード「Sprite」

$
0
0

今週は、謎のマテリアルノード「Sprite」をご紹介したいと思います。

 

「Sprite」は、いわゆる「ビルボード」を作る為のノードです。

ゲーム制作者の方にはおなじみの用語かと思いますが、ビルボードとは、常にカメラに正対する3Dモデル(たいてい板ポリゴン)の事を指します。

エフェクトや、草木などの表現でよく使われる技術です。

 

早速ですが、一番シンプルな使い方はこうです。(XとYの値をパラメータ化し、インスタンス毎に変更できるようにしております)

SS01

板ポリに設定するとこのようになります。分かりにくいですが、常にカメラに正対する、ビルボードになっております。

SS02

 

XとYのサイズを直値で指定することになるので、いまいち使い勝手が良くないですが、

こんな感じに設定すれば、オブジェクトのXYスケールに連動してサイズが変わるビルボードも作ることもできます。

SS03

マテリアルの「Disable Depth Test」にチェックを入れることで、最前面に描画させるようになるので、2.5DなUIとして使うこともできますよ。

 

さて、ここからが本番です。

このノード、板ポリ以外のオブジェクトに適用すると、面白い挙動を示します。

UV展開図に沿った形に、ビルボード化されるのです。

自分でも何を言っているのかよく分からないので、やってみましょう。まずはこのようにマテリアルを組んでください。

 

SS04

こちらを、Engine Contentの円柱メッシュに適用するとこのようになります。

SS05

??

 

もう少し複雑なオブジェクトに適用してみます。

SS07

?????

 

使い道がさっぱりわかりませんが、どなたか良い活用法を見つけたら、ぜひ教えてくださいませ。

Viewing all 989 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>