cocos2d-xで見つけた新機能 Part2

おはこんばんちは!

GT2の組長こと鈴木翔也です!!

今日は前回の続きでcocos2d-xの新機能を紹介していきたいと思います。

今回紹介するのはこちら!!

SpriteBachNode!!

これはみんなが知らず知らずにやっているやってはあまり良くないことは解消することができます!!

なに? 良くないことって? と思うかもしれませんがそちらを紹介していきましょう!!

では今回はUnityちゃんを5人表示してみましょう!

まずfor文で5回回してSpriteを生成すると

こんな感じかな?

スクリーンショット 2016-08-02 14.04.14

結果

スクリーンショット 2016-08-02 14.04.35

こらーーーーーーーーーーーーーーーー よくない処理をやってるぞ!!

何かわかるか? そうSpriteでテクスチャを読み込むとファイルの中身までしっかり読み込みに行くんやぞ!! 重くなるやろうが!!

ということでした! んじゃどうすればいいのって思うかもしれませんがこれを解消してくれるのがSpriteBachNodeです!!

SpriteBachNodeとはファイルの中身の絵の情報をテクスチャにし、記憶しておくためのクラスです。

使い方は簡単!!

絵の情報を読み込んでSprite生成次に教えてやるだけ!! な! 簡単だろ!

使い方はこんな感じ

スクリーンショット 2016-08-02 14.28.59

見た目は変わらないがシューティングなど同じ敵をたくさん作るときはこれを使って描画スピードを上げたほうがいいと思う!!

cocos2d-xで見つけた新機能 Part1

おはこんばんちは!

GT2の組長こと鈴木翔也です!!

最近見つけたcocosd2d-xの機能を紹介していきたいと思います。

私が最近見つけた機能はこちら

globalZoder SpriteBatchNode

です!!

2回にわたってこの機能を紹介していきたいと思います。

まずはglobaZoderです。

ゲームプログラミングをしたことある人はZoderというものを聞いたことがあるかもしれませんがこれはそれの拡張版だと思ってください。

cocos2d-xの親ノードに依存するものでこのZoderは親ノードに依存しないものとなっております。

例えですが親ノードが二つあり、それぞれにZoderに0と1の値を入れておきます。

スクリーンショット 2016-08-02 13.23.21

ここにSpriteの子供を二つ追加します

そしてZoder 0の親にもう一つのSpriteより前に描画されるようにZoderに大きな値を入れます
スクリーンショット 2016-08-02 13.34.29

結果

スクリーンショット 2016-08-02 13.34.42

Unityちゃんが前に出るようにするためにZoderを大きくしたにもかかわらずHelloWoeldが前に描画されました。

このことから親のZoderに依存し、Unityちゃんの親のZoderよりHelloWorldの親のZoderが大きいため先に描画されたのがわかります。

さてここからが本題でglobalZoderとはこのいぞんとは関係なく描画してくれるというものとなります。

このglobalZoderは負、0、正の3つで構成されています。

これはあまりZoderとかわりありません。

このglobalZoderは何も設定していなければ0になります。

描画順は 負⇨0⇨正となっております。 これもあまりZoderと変わりません。

ではこのglobalZoderを使ってUnityちゃんを前に描画してみたいと思います。

UnityちゃんのglobalZoderを1にして

スクリーンショット 2016-08-02 13.48.25

いざ実行!!

スクリーンショット 2016-08-02 13.48.56

Unityちゃんが前に描画されました!! やった!!

このようにglobalZoderは親に依存せずZoderを決められるというものでした!

まとめ
親に依存しないため親のせいで前に描画、もしくは後ろにびょうがされているものを前に持ってくることができます。

しかししっかり管理しないと前で描画したいものも一緒に後ろにやってしまうことがあるので注意が必要です。

C++でJsonを使うための物の紹介

今日はC++でJsonを使ってみたいと思います。
実はcocos2d-xには標準でJsonを読み込むものがあるのですが今日はDirectXでも使えるpicojsonというものを紹介していきたいと思います。

まずJsonがなんなのかわからない人は先輩の過去の投稿をご覧ください。

http://www.trident-game.com/blog/2015/10/14/【輪講】jsonの書き方/#comment-3

まずpicojsonとはKazuhoという人がJsonを読み込むために書いたクラスです。
C++でJsonを使うならこれを使う人が多いらしい。

githubリンク:https://github.com/kazuho/picojson

使い方として解凍したフォルダーの中にあるpicojson.hを追加するだけ!

使い方はいたって簡単でjsonファイルをfstreamで読み込んでpicojsonに入れるだけです。

C++でがりがり書く人はこれを使っている人が多いので一度使ってみるといいと思います。

グレーボクシング

概要

スポーツのボクシングじゃないよ!!

グレーボクシングとはプロトタイプのアセットなどを使ってゲーム要素を全て完成させるために試行錯誤する事を言います。

プロトタイプと何がちがうのって思う人がいるかもしれませんが全くの別物です。

では何が違うのかというとプロトタイプはアセットなどを仮としておいてたりするので本当に使う物違ったりします。

グレーボクシングではそのアセットなどを本番に使うアセットに変えていったりするところになります。

他にステージや、動作などを綿密に作り上げたりします。

いわゆる芸術点をこだわって作っていくところになります。

ワークフローだお Part2

前回の続きからだお!

では3つめの大事な事は工程には裁量を合わせる事だお!

どんな事かというと書く仕事の領域を超えてはいけないという事だお!

具体的に言うと家の想像図を作ったものが土台作りの仕事に口を出すような事だお!逆もしかり

その仕事にはその仕事のプロがいるわけだから他の仕事のものが口をだしてはいけないんだお!

最後にイテレーションだお

いきなり英語で戸惑うかもしれないけど簡単に言うと仕事を反復的にして改善点を探し出す事だお!

具体的に言うと設計図を書いたあと見直してもっとこうすれば地震に対する耐久が上がるなど少しでも改善する事で品質が上がるというものだお!

今回はワークフローのことを書いたけどみんなわかったかな?

仕事をしていく中でワークフローは大事だからみんな気をつけて仕事をするのだお!!

ワークフローだお

ワークフローってなんだろう?

ワークフローっていうのはね仕事をする上での順番の事を言うんだお!

家に例えると家づくりでは

家の想像図

設計図

土台作り

のような事を言うのだお!

ワークフローでは気をつけることが全部で4つあるんだお!

一つがう上の仕事ほどある程度でいいので早くするが、下ほど遅くてもきっちりと。という事だお!

なぜかというと家の想像図だときっちりしてなくてもある程度しっかり書いておけば後は想像に任せられる!けど設計図がしっかりしていないとその家を作っているうちに欠陥がでてしまうからである。そうなると作っていけなくなってしまうからだお。

二つ目に仕事を遡らせない事だお!

どんな事かというと土台作り中に家の想像図を変えたりする事だお!

そんな事をしてしまうと設計図から作り直さなくてはならなくなるから仕事が最初からになってしまうからだお!

ここまで少し書いたけどこの続きはPart2で

 

フェーズだお

フェーズっていうのは簡単にいうとゲームを作る段階だお!

3つあるんだって

プロトタイプとプリプロダクションとプロダクションだお!

プロトタイプはもうみんな知っているよね?

てことで残りを説明するよ

簡単にいうとプリプロダクションが一部分を完全に作り出す事だお!

プロダクションはおなじみの製品化の事だお!

制作はちゃんと段階別に作る事がたいせつだお!

でもプロトタイプで面白くなかったら作ったらダメだお!

てことでみんなーちゃんと段階にそって制作していこうね!

終了だお!!

履歴書の書き方

今回は良い履歴書の書き方を教えていきたいとおもいます。(ちなみに和田先生にご教授いただきました)

まず履歴書の構成として

趣味・特技

私の特徴

学生生活を通して得たこと

志望動機 とあります。

まず上3つのいことを言いますとこれらで書くことは必ず二つ以上上げること。

どういうことなのかというとまず最初に履歴書というもとは相手に気を持たせるものである相手が気になることを書かなければなりません。

しかし相手が何が気になるかは私たちにはわからないためここでは一つでも多く書くことによって相手が気になる確率をあげようという事です。

簡単に言うと数投げてどれか一つでもいいから当てようという考えです。

では次に上からプログラマーが書いたほうが良いことを挙げていきたいと思います。

まずは#趣味・特技#ですがここでは本当に自分の趣味や特技を挙げるのが良いです。私はここでプログラムのことを書いていたのですがここは

そういうことを書く場所では。

ここでのベストはあるのであればスポーツが良くてやはりこういう業界でもスポーツやっていることはプラスと思われています。

次に#私の特徴#ですがここで今までしてきたプログラムを書きます。

今までどんなプログラムを書いたのか。どういう時に書いたのかなどです

次#学生生活で通して得たこと#ですがここでは今までしてきた研究を書きましょう

研究というと難しいイメージを思い浮かぶかもしれませんが実際にそんな難しいことを書く必要はなく

どういったことをして、どういった結果がでで、どう使えるのか、これが研究です。

最後に#志望動機#ですがこれに書くことは3つあります。

一つめ 相手をほめる
二つめ 自己PR 
三つ目 どう貢献するのか

これだけです。

別にむずかしいことを書く必要はありません。

最後に全体を通して言いますと最初に言った通り履歴書は餌です。ここでしてはいけないことは食いついた獲物を逃がすことです。

ですので履歴書に書いてあることで聞かれても必ず答えられるようにしておきましょう。これができなければ意味がありません。

このことを気をつけて全員で内定を勝ち取りましょう!!

読んでいただきありがとうございます。

UE4 ビヘイビアツリー

#ビヘイビアツリーとは?#
敵のAIでの行動パターンなどを決めていけるもので、簡単にいうと思考ルーチンです。

#何ができるの?#
できる事は例えば敵を移動させてプレイヤーを見つけたら追いかけてくるなどの行動パターンを作り出す事ができます。

#必要はもの#
ビヘイビアツリーに必要なものは4つあります!

一つ目は当然ビヘイビアツリー

二つ目はブラックボード

三つ目はサービス

四つ目はタスク        以上

他の三つの説明をしていきたいと思います。

ブラックボードはビヘイビアツリー全体で使う変数を生成し記憶しておくための物です。

サービスはビヘイビアツリーで条件によって処理を変える時の条件を書き込む部分にあたります。

タスクはビヘイビアツリーで条件によって行う処理を書き込む部分にあたります。

しかしながらサービスでも行動の処理を書き込んで使う事ができます。

では何がサービスとタスクの違いなのかというと大きいのがブラックボードの変数を使う事ができるのか否かです。

サービスはブラックボードにアクセスすることできますがタスクではアクセスすることができません。

ではサービスに行動処理を書き込むのはいつ使うのかいうとブラックボードにアクセスする必要のある処理の時に使います。

まとめとしてビヘイビアツリーを使うことによって複雑なAIを簡単に作ることが可能となりました。

更にビヘイビアツリーはサービスとタスクが集まっているものなのでこの二つを理解しておく事は大切です。