--------

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2014-03-31

【ウディタ】キー入力について

どうもです。
ウディタのキー入力について、製作している段階で困ったことが生じたのでいろいろ考えたのですが、解決いたしました。
今回はその話をしたいと思います。

まず、僕が何に困ったかというと
ウディタのキー入力では、決定キーとキャンセルキーと同時に特定キーを取得できない
という点です。

何が言いたいかというと、ウディタではキー入力時、決定キーとキャンセルキーやサブキー、方向キーは一つの変数で取得できますが、決定キーなどと一緒に特定キーも取得したいときにそれができないということです。

↓決定キーなどの主要キーの取得とキーボード全キーの取得が別々のため、一つの変数で取得できない。
キー入力1

入力待ちのキーを取得する場合、二つの変数の入力待ちにチェックを入れて取得するとうまく動作しません。

では、入力待ちのチェックを外して二つ取得すればいいじゃんとなります。
キー入力11


確かに入力待ちのチェックを外して取得すると二つの変数に基本キーとキーボード全キーで入れてもちゃんと動作します。ですがここでさらに問題が発生します。

そもそも入力待ちというのは、キーを押したときにその動作が瞬間的に何回も続かないように制御するためのものです。
では実際に、キー入力の動作を確認してみましょう。
キー入力にチェックをいれた変数と入れない変数で動作の確認をします。
まず、チェックを入れてない変数のデバッグを確認してみましょう。
下のようにコモンを組んで決定キーを一回のみ押してみます。
キー入力3

するとデバッグはこうなります。
デバッグ2

このように、入力待ちにチェックを入れないとたった一回のみキーを押したつもりでも実際には何回も実行してしまいます。
では、入力待ちにチェックを入れた状態でさっきと同じことをしてみましょう。
キー入力4
この状態で決定キーを一回のみ押すと・・・
デバッグ1
このようなデバッグになります。

このように入力待ちとは瞬間的に何回も実行してしまうのを防ぐ処理です。
本来ならこの入力待ちにチェックを入れて基本キーとキーボード全キーを一つの変数で取得したいのですがそれができません。これは困りました・・・・・。

というのが僕が困ったことの内容です。
ウディタでゲーム製作してるとキー入力は必ずかかわってくるのでもしかしたら誰もが引っ掛かる問題かもしれません。
さて、みなさんならこの問題をどのように解決するでしょうか・・・?
僕はこの問題を解決するためにいろいろ考えたのですが、ある方法を思いつきました。
それは「入力待ちに似た処理をコモンで作る」というものです。
つまり、入力待ちにチェックを入れない状態で二つの変数でキーを取得し、一回キーを押したら何回も実行しないような処理を作る。ということです。

この、キーを一回押したらキーを一度のみ実行するようにするというのが「入力待ち」です。
ですが、じゃあどのように作ればいいんだ・・・?と悩んでいました。

ですがある時、ヒントになるような言葉をネット上で発見しました。
それは、

キーを離したかどうかを監視する

です。

つまり、押したキーを離したかどうかを監視して、キーを離したときに処理を実行すればいいわけです。
そうすれば入力待ちにチェックを入れなくても、入力待ちに似た動きになります。

なんとなく形はつかめるでしょうか?
次回はその処理の内容について記したいと思います。

なお、この処理はtwitterにて、多くの方にご助言を頂きました。
本当にありがとうございます。
また、今回の議題である「基本キーとキーボード全キーを入力待ち状態で両方実行できるようにする」というのは僕がやってる方法以外にもいろいろあると思います。僕がやってる方法はいろいろある方法の中の一つとして見ていただければと思います。

では今回はこれにて。
スポンサーサイト
2014-03-16

第6回ウディタコンテストが7月27日に開催じゃぁぁぁあああ!!!

うぉぉぉおおおおおおおおおおっっっっっつつ!!!
第6回となるウディタコンテストが2014年7月27日に開催するそうです!
今から大体4ヶ月後でございますっ!!!

素晴らしいタイミングです!
いままでのウディタコンテストも激戦を繰り広げてきたわけですが、今年もそれと同じか、またはそれ以上に熱いことが予想されますぜ!
一年に一度の評価を頂ける場ですので、気を引き締めて頑張りましょう!出品するウディタリアンのみなさん!

ウディタコンテスト(ウディコン)に関する詳細はこちら
ウディコン
2014-03-12

「Animal Time」製作進捗状況3

どうも。
今回は「物々交換システム」を製作しました。

1.物々交換システムとは?

昔、お金もない時代に物と物で取引をしていた時があったらしい。まぁ、今もある。
プレイヤーがお店以外でもアイテムや装備を入手することができる。
物 対 物なのでお金が必要ない。
ほかにもいろいろ便利な点があると思う。

2.目的

・プレイヤーがあまり、お金を持っていない状態でも、序盤では入手できないアイテムが入手できるという新たな方向を 見いだせること。
・物々交換でしか手に入らないレアなアイテムを設定できること。
・イベントによって交換できるアイテムが違うのでこのイベントは何を交換してくれるのだろうと、どんなイベントにも 興味を持ってくれるようになること。これによって一度はイベントに話しかけることになります。

僕が把握できてないだけで、ほかにもいろいろプレイヤーにとって楽しめる点があるかもしれませんし、ないかもしれません。

また、このシステムを製作している様子は録画したので作品が完成次第、動画投稿サイトに投稿するかもしれませんし、しないかもしれません。する可能性のほうが高いです。いや、するでしょう。します。

なんてはっきりしない文章はここまでにしといて、内容としてはこんな感じになってます。
わかりやすいようにストーリー仕立てで動画にしたのでご覧ください
若干、音量注意です。



あまり時間なくて、編集とかはしてない感じです。
また、ステミキを持ってないのでPC内の音を録音できないため音は直撮りになってます
物々交換システムの内容としてはこんな感じです。

自分自身では結構うまくいっているのではと思っています。
ウディタを扱い始めてそこそこ経ちますが、これぐらいなら普通に作れるようになってきたのはかなり自信につながります。

これからどんどん作業を進めて完成までいきたいと思います。

動画の最後のオチはあんまり気にしないでくださいw
2014-03-05

「Animal Time」製作進捗状況2

どうも。
前回の進捗状況の記事を書いてから2ヶ月が経っています。時間が流れるのは早いです。
進捗状況をつづっていきたいと思います。
といっても、前回から2ヶ月も経っているので、いろいろできております。

まず、一つ目はNPCの感情を文章として表示する処理を作りました。
この処理の意図としては、NPCつまり、敵をマップに存在する動くただの障害物ではなく、より動物として親しみを得やすくするためのイベントです。
例として、NPCに主人公が接近したとき
向かい合っている状態の両者が(上がNPCで下が主人公)
ScreenShot_2014_0305_02_01_52.png

主人公がNPCに接近したとき、
ScreenShot_2014_0305_02_01_56.png

NPCは主人公に気づいて接近してきますがそれと同時に思っていることを文章にして発します
これをすることによってNPCがなぜこういう行動に移ったのかがはっきりわかる上に、じゃあ、ほかの動物だったらどんなことを言うんだろうという楽しみも増えます。
例としてもう一つ、
主人公がNPCに攻撃をあてたとき、
ScreenShot_2014_0305_02_02_50.png
オオカミは高飛車で高圧的なので啖呵を切ってきます。いや怖い。

また、一定時間なにもしないと発言したり、おなかがすいたときに発言したりと条件は多種多様です。


そして、2つ目はダメージ量や命中判定の結果表示処理です。
さっきの主人公がNPCに攻撃を当てたときに、赤い数字が表示されています。
コレ↓コレ↓
ScreenShot_2014_0305_02_02_50_20140305021759cf4.png

50や18といった数値が見えています。
56や16に見えなくもないですね。すいません。もう少し文字を大きくしたほうが良いですね。
そこは反省しつつ、わかりやすくダメージの量を表示してくれます。
また、クリティカルやミスといった命中判定も作りました。
主人公や敵が攻撃した際、命中率によって攻撃が当たったか外れたかを取得し、処理に反映させます。
また、もし当たった場合、その攻撃がクリティカルだったか通常だったかの判定もします。

攻撃が外れた場合
ScreenShot_2014_0305_02_21_31.png

クリティカルだった場合
クリティカル

この処理は、基本システムのポップアップ処理というのを参考にしました。
文字列もダメージ量と同じように処理できるので結構簡単に作れます。

続いて3つ目は、仲間の設置です。
主人公に最大4人までの仲間が登録できるようになりました。
ですが、まだこの処理は完成してはいません。詰まっているところがあります。

ユーザーデータベースに入力しておいた仲間の情報をもとに実行させます。
仲間にHPやATKはもちろん、性格や索敵範囲など個々の特別な値が存在します。
主人公についてくる仲間↓
ScreenShot_2014_0305_02_37_42.png

仲間は敵が索敵範囲に侵入したとき、その敵に接近して攻撃してくれます。
敵の群れ相手にはかなり心強いですし、仲間がいることで一緒に戦っている感覚があるので楽しいです。
また、ゲームの中盤で自分が闘わなくてもいい序盤の弱い敵を倒してくれるので進行の手助けにもなります。

仲間を作成するうえで大変だったのが、性格の処理です。
性格というのは、「優しい」とか「冷静」とか「臆病」など、仲間によって違うもので、
性格によってその仲間の行動選択が変化してきます。
性格が「冷静」の場合は、索敵範囲の一番HPが低いNPCを狙って攻撃するなど多様なのです。
また、この性格がゲームに戦略性をもたらしてくれます。どうもたらすかは考え中です...

4つ目は、インターフェースの整備です。
こんな感じ↓
ScreenShot_2014_0305_02_47_18.png

このインターフェースは現在はマップで移動中も常に表示しているので、オンオフができるようにする予定です。
みやすさ重視で作ったのですがどうなんだろう・・・。
のちのちいろいろ追加するかもしれません。

こんな感じですが、ほかにもメニューや物々交換システムや仲間の処理の整備などやること山積みなのでどんどん進めていきたいです。

[質問コーナー]
僕が質問したいです。
仲間とイベントが重なってしまうのですが、どうすれば重ならないようにできるでしょうか。
イベントが仲間に接近する際に仲間の上に重なってしまうのです。どうすればいいのかなぁ・・・

と勝手に質問を放っておいたところで、ではまた。




プロフィール

リル

Author:リル
どうも。
ウディタでゲ製してます。
リル(lilL)と申します。
リンクフリーですが、報告いただけるとありがたいです。
現製作中→「Animal Time」
Twitter : https://twitter.com/lilL76725976
Youtube : https://www.youtube.com/channel/UCZu
9eYaYrfBkzgUX1Msaajw

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
訪問感謝します!
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。