OBLIVION MOD作成支援/相談スレPart6

このエントリーをはてなブックマークに追加
1名無しさんの野望
OblivionのMOD作成におけるスクリプトやモデリングの相談や質問、
自己解決の独り言などを書き込んでいくスレです。

スレ人口が少ないため、やりとりは遅くなりがちです。
返答がなかなか無くてもくよくよしないでください。

応える方は既出or初歩的に過ぎると思われる相談や質問でも
MOD作成者の裾野を広げるつもりで鷹揚にお願い致します。

OBLIVION MOD作成支援/相談スレPart6
http://yuzuru.2ch.net/test/read.cgi/game/1269312819/

■Construction Set 日本語 help
http://shy.jpn.ph/upload/img/ups05912.zip


MODを作れない俺に出来る事はスレ建てだ! キリッ
2名無しさんの野望:2010/10/29(金) 15:24:54 ID:qjXK1sjZ
あ、スレ番間違っちゃった
3名無しさんの野望:2010/10/29(金) 23:27:09 ID:cwISep/X
スレ建て乙です。

>システムはGetSittingが「11」になってもIdleAnimationsをチェックしていない
これは自分も試してみましたが、その通りでした。
11に乗馬時のアイドルを指定、12に乗馬時のアニメが指定されていますが、
乗馬アニメが終わったあとに11のアニメは再生されませんでした。仕様みたいですね。

そこで、こんな妥協案を考えました。これでそこそこいけます。
バイクに添付するスクリプト
Begin OnActivate
If NR500Ignition == 0
Set NR500Ignition to 1
Activate
ElseIf NR500Ignition == 1
player.PickIdle <<<<<<<<<<ここ
Set NR500Ignition to 2
Else
Set NR500Ignition to 0
Activate
EndIf
End
2回目のActivateでアイドルモーションを選ばせます。
GetSitting==13で指定してあれば、これでポーズを変えてくれます。

あとは乗車アイドルモーションが、降りる時と降りた後までいつまでも
ポーズが続かなければいいのですが、これは仕方ないかなと思ってます。
43:2010/10/29(金) 23:29:58 ID:cwISep/X
すみません、Tabスペースが使えなかったみたいです。

Begin OnActivate
  If NR500Ignition == 0
    Set NR500Ignition to 1
    Activate
  ElseIf NR500Ignition == 1
    player.PickIdle <<<<<<<<<<ここ
    Set NR500Ignition to 2
  Else
    Set NR500Ignition to 0
    Activate
  EndIf
End

player.PickIdleをこのスクリプトの他の場所にいれても機能しませんでした。
5名無しさんの野望:2010/10/30(土) 00:19:40 ID:1DhZztof
>>3
うーん、GetSittingの「11」はやっぱダメなのかもですね。

PickIdleの道を追求するのなら多分色々な開始/終了のタイミングの取り方はあると
思いますよ。
現在再生中のSpecialIdleの停止は「Playgroup Idle 1」で行けると思います。
63:2010/10/30(土) 01:12:17 ID:vbBqip/+
「Playgroup Idle 1」を馬を降りる時のActivateの前後に入れてみたのですが、
なぜか何の変化もなく、乗馬アイドルポーズのままでした…。
しかも「Playgroup Idle 1」を使うとポーズの解除ができなくなってしまいます…。
OBSEはv18b4ですが、これが問題でしょうか??(エラー等はありませんでした)

GetSitting==13で指定したアイドルが強すぎるみたいです…。
乗馬時のポーズを馬を降りるアニメで上書きする方法が今のところ見当たりません(汗)
7名無しさんの野望:2010/10/30(土) 08:02:33 ID:1DhZztof
>>6
申し訳無い、>>5は適当な書き方をしてしまいました。

「PlayGroup Idle 1」はそのkfにIdleAnimationGroupSectionで「SpecialIdle」が指定して
あると停止出来ないかもです。

上で言ったのは漠然とkfのControllerSeqence名が「SpecialIdle」でidleanimsフォルダ
に入っているkf、という意味だったのですが。説明不足ですみません。

そのkfの目的がデフォのIdleの代替で乗車姿勢全体の常時変更、という事なら特に
GroupSectionがSpecialIdleである必要は無いと思うので、指定は「WholeBody」とかで
OKだと思います。
8名無しさんの野望:2010/10/30(土) 10:11:47 ID:/e280tRx
今人口増加系のMODを作っているんですが
行き詰ってしまいまして、質問させて下さい。
From2ch LivesのようにNPC同士のPTを組ませるには
どこの設定を見ればいいのでしょうか?
9名無しさんの野望:2010/10/30(土) 10:19:41 ID:mYyU8L8N
その時間のAIがfollow→ref誰々になってるかどうかだけでは?
戦闘も考えて、より繋がりを強くするなら同じfactionに入れるとか

あとfollow行動のときにfollow先のNPCが消えてると
CTDの原因になることもあるんで
NPCを作ったり消したりしているときは
特に気をつけた方がいいかもしれません
10名無しさんの野望:2010/10/30(土) 10:39:26 ID:/e280tRx
>>9
レスありがとうございます。

followの設定でしたか・・・
おかげで完成が近づきました。
ありがとうございました。
113:2010/10/30(土) 12:22:46 ID:vbBqip/+
>>7
Getsitting==13の待機アニメーションの指定をSpecialIdleからWholeBodyにして、
Begin GameModeで「If Player.IsRidingHorse == 0」の条件で
「Player.Playgroup Idle 1」させたところ、降り終わったところで普通のポーズに戻ってくれました。

これで馬を降りる時のモーション以外は大丈夫になりました!
ここだけは色々試していてどうにもならないので、妥協しかかっています(汗)
12名無しさんの野望:2010/10/30(土) 14:06:23 ID:1DhZztof
>>11
上のコードで実際に試してみましたけど、最後の「Else」の下に
「Player.PlayGroup Idle 1」を書けば3回目のActivateでSpecialIdleは停止しますよ。
その後馬を降りるアニメも普通に再生されます。

GameModeも使ってOKなら、乗りアニメが終わったらすぐにSpecialIdle開始、みたいな
動作にも出来ると思います。
NPCにも対応してサーキットとか作ってバイクレースとかも出来ます。多分。
133:2010/10/30(土) 14:37:20 ID:vbBqip/+
>>12
うぉぉぉぉぉぉぉー!! おっしゃる通りできましたぁぁ!!
あの時できなかったのは、WholeBodyの設定になってなかったからかもしれません。
ありがとうございました!!!

GameModeの負荷について疑問があるのですが、
Bigin GameMode 〜 End までに書かれたスクリプトは、
ゲーム内で1フレームにつき、1回だけ走るのでしょうか?
もしそうなら、短いスクリプトならそんなに負荷にならなそうです。

AIを使って、あるフラグONで指定の場所へ移動開始…とかでサーキットになりますか??
「GetInCell」でセルに到着したかを判定できるようなので、
PlayerとNPCでどちらが先にゴールしたかがわかりそうですね!

この場合、例えばGameModeのレースに関わるスクリプトが長くなっても、
GameModeのスクリプト1行目に、フラグがOFFならGameModeはすぐに終了…
とかにすれば、負荷はほぼないのでしょうか??
143:2010/10/30(土) 15:52:44 ID:vbBqip/+
現状をテスト録画してみました。とりあえず不具合はかなりなくなってきてます。
別に見る価値はないですが、よかったら見てください。
http://www.nicovideo.jp/watch/sm12591997
15名無しさんの野望:2010/10/30(土) 15:55:12 ID:1DhZztof
>>13
おー、動きましたか。よかったです。

GameModeブロックは1フレームにつき1回実行されます。

スクリプトの長さはもちろん短い方が処理は早いですが、if文と単純な状態取得の
関数一つ二つ程度、全体が十数行未満程度で特に処理に時間のかかる実行関数を
毎フレーム呼んだりしていないのならそんなに気にする必要は無いと思います。

またスクリプトはSave時に中間コードにコンパイルされるのでタブやスペース、
変数等のラベル名、コメントの長さは無関係です。多分。

サーキットはどうしましょうね。

PathGridをうまいこと敷いて要所にマーカーを置き、各マーカーをLocationにした
TravelのAIパッケをNPCに付けて順次切り替えたり、マーカー自体を動かしたりすれば
NPCを周回させたり出来そうな気もするのですが。
でも実際にやってみないとどんな挙動になるかは少し謎です。

ゴールの判定はTriggerZoneで多分簡単に出来ると思います。

あと、スクリプトがどうしても長くなってしまう場合は、処理が不要な条件を先に
判定して「Return」文で早め早めに終了させると負荷削減に効果があるみたいです。
最初の一行でフラグ変数一つを判定してすぐReturnするのならその負荷は無視して
OKなレベルだと思います。
163:2010/10/30(土) 16:49:03 ID:vbBqip/+
>>15
GameModeブロックは1フレームにつき1回実行され、短いほうが良いので、
先に実行条件で実行するか否か(GameModeブロック終了)判断させるほうがいいのですね。
「return」は、このフレームのGameModeブロックの処理を終了するということになるんですよね?

サーキット…なかなか複雑そうですね…。
周回するということは、各PathGridに着くたびに目的地を設定してある
次のAIパッケージに切り替えていく…ということになる感じですか??

なかなか大変そうですが、AIパッケージとかはいじったことがないので
これを機会に少し触れてみたいと思います!

サーキットMOD、面白いかもしれません! 作るのもプレイするのも。
173:2010/10/30(土) 23:27:51 ID:vbBqip/+
すみません、足音を消すことができないのですが、これは仕様でしょうか?

NR500は種別がHorseで、どう設定されていようと馬の足音が再生されてしまいます。
Creatureの設定画面のSoundsタブでLeft/Right Footなどの設定が
・何も設定がない場合、馬の足音がする
・何らかの設定があると、馬の足音とミックスして再生される
種別を馬とした時点で、馬の足音が強制的に再生されるような気がします。
諦めるしかないでしょうか…。
18名無しさんの野望:2010/10/30(土) 23:51:27 ID:c5/Xfjwh
>>17
forward.kfなどのNiTextKeyExtraData内にあるEnum:Right(BackRight),Enum:Left(BackLeft)は消して試してみました?
まずはそれらの削除を試してから判断すべきかと思いますが
193:2010/10/31(日) 00:29:47 ID:XkXO+vTE
試してみましたが、残念ながら消えてくれないみたいです…。
全ての馬の足音が消えることを覚悟で、
「TestHorseSkeleton」の足音の設定を消すしかなさそうです。
プレイヤーは馬に乗らない、NPCの馬の足音は我慢ということで…。
20名無しさんの野望:2010/10/31(日) 00:58:09 ID:kCcjvSfa
製作とかやったことないんで出来るかすらわからないが
無音の音を作ってそれに指定変更するじゃダメ?
213:2010/10/31(日) 01:19:05 ID:XkXO+vTE
>>20
はい、それも試したのですが、なんとバイクの音設定がどうなっていようと、
馬の足音は絶対に再生されてしまうのです。
バイク側の音の設定は、「どの音を馬とミックスして再生しましょうか」というなんです。

とても謎な仕様だと思うのですが…。
ベースとなる馬が一匹いて、馬クラスの生物は全てその音の設定を引き継ぐ…
…と、重複をなくせるという意味では有意義ですが…自由度が…。
22名無しさんの野望:2010/10/31(日) 02:55:35 ID:Bf5iX40d
>>21
足音のタイミング指定って>18さん仰る通りkfのTextKeyですよ。
前進のkfはforward.kf、fastforward.kfの二つあります。もう一度確認を。

結論を急ぐ前にまず予断を捨て、自分の確認手順自体の確認を。
233:2010/10/31(日) 12:12:33 ID:XkXO+vTE
forward.kf、fastforward.kf、backward.kf、turnleft.kf、turnright.kf
のEnum:Right(BackRight),Enum:Left(BackLeft)はすべて消しましたが、ダメみたいです。

start、end、Enum: RiderSoft、Enum: RiderLoud
これらは消さずにいいんですよね??
24名無しさんの野望:2010/10/31(日) 14:19:46 ID:Bf5iX40d
>>23
TextKeyを消したのなら音は消えますよ。今無音で走ってますし。

変更する前のkfをバックアップのつもりで例えば「fastforwardBak.kf」みたいに
拡張子を「kf」のままファイル名を変えただけで同じフォルダに入れてたりしてません?

それをやるとシステムはそのkfも読み込みます。
なのでkfのバックアップを同じフォルダ内で取るなら「fastforward.kf.bak」みたいに
拡張子を別物に。

そうでないとしたらよく分からんです。
253:2010/10/31(日) 17:45:33 ID:XkXO+vTE
もともと「forward.kf.ori」といったようにバックアップしてましたが、
これら余計な物を全てどかしてみてもダメでした…。なんでだろう…。

根本である「TestHorseSkeleton」の足音から消すというのは強攻策だと思うので
もう少し様子を見てみたいと思います。エンジン音で多少は紛れてるので…。
26名無しさんの野望:2010/10/31(日) 18:54:45 ID:A8bFi/fm
以下のような(簡略化していますが)処理をQuestScriptで作成しました。
キー**を押すと選択肢が表示され、それによって処理が進むものです。
予定通り、キー**を押すとMessageBoxExが表示されるのですが、
どちらの選択肢を押しても必ずbuttonに-1が代入され、
"none of buttons are pressed"に行ってしまいます。助けてください。

short state

Begin GameMode
 if ( onKeyDown ** && state == 0 )
  messageBoxEx "選択肢一覧|%n|%n|中止" a, b
  set state to 1

 elseif ( state == 1 )
  set button to getButtonPressed
  if ( button == -1 )
   set state to 0
   message "none of buttons are pressed"
   return
  elseif ( button == 0 )
   set state to 0
   message "2"
  elseif ( button == 1 )
   set state to 0
   message "2"
  endif
 endif
End

MessageBoxとGetButtonPressedが同じスクリプト内にないと-1を返しつづけるらしい話は知っています。
この場合は同じスクリプトに書いているので該当しないはずなんですが…
他に-1が返され続ける条件ってどんなものがあるんでしょう?
27名無しさんの野望:2010/10/31(日) 19:10:39 ID:7b514SGK
>>26
次フレームで押されたボタン番号が確実に返ってくるとは限らないよ
MessageBoxを出した後はGetButtonPressedの値が0以上になるまで監視を続けて
0以上になった時に押されたボタン番号として解釈すればOK
28名無しさんの野望:2010/10/31(日) 19:20:07 ID:jJcOLvOL
>>26
第三者からみると、「予定通り」というのが、どういう予定かわからないよ〜。
デバッグを肩代わりする場所ではないので、期待通りに動かないなら、もうちょっと調べ方が足りない気がするよ。
とりあえず、以下を試して、整理してから。

1.messageの表示内容を全部別のものにする。(どのメッセージが呼ばれたか明確にする目的)

2.各分岐後にDebugPrintなどの出力を仕込んで、どの順番で実行されているかを確認する。
(脳内の予想の動きを信じない。実際の動きを追うようにする)
※GetButtonPressedが本当に-1を返し続けてるのか、きっと確認せず脳内でそう思ってるだけじゃない?変数「button、state」等を出力してみるべし。

それでも解決しないようなら、再度質問してみるといいかも。

そのときは「こういう順番でmessageが表示されてほしい(予定)」のに「こういう順番でmessageが表示されてしまう(結果)」をちゃんと書く。
>>26の書き方では、予定も結果も、どうしたいのか、どうなってるのか、が読み取れない。
29名無しさんの野望:2010/10/31(日) 19:48:04 ID:A8bFi/fm
>>27
な…なんですと!?
ちょっと確実になるように書き直してみます。

>>28
何もかも説明不足で申し訳ありません。
書いたのは処理の枠にあたる部分だけで、実際には色々と代入や処理が入っており、
message、printCなどでどこまで進んでるか段階を追っています。
GetButtonPressedをbuttonに代入させて、
コンソールに出力させ、確認してみると必ず-1が入っていました。
で、button == 0かbutton == 1になっていれば
端折った部分でそれなりの分岐に行くように作っていました。
それすらなくbutton == -1だった場合の処理ばかり起きていたので、
処理そのものの部分ではなく、MessageBoxExとGetButtonPressedの値の受け渡しで
問題が生じるような構造になっているのか?と思った次第です。
それをひとまとめに書いて、「GetButtonPressedで-1ばかり返ってくる」という表現になりました。

アドバイスに従い、値がbutton > -1であることが確実になってから
分岐に入るように書き直してみます。
ありがとうございました。
30名無しさんの野望:2010/10/31(日) 21:56:41 ID:PdNFIOm4
すみません初歩的な質問かもしれませんが
ある本が既読かどうかを調べるにはどうすればいいんでしょうか?
31名無しさんの野望:2010/11/01(月) 00:34:31 ID:umVLRctn
>>25
うーん、なんででしょうね。

確認時にゲームの終了→再起動は当然していますよね。
以前ここでゲーム実行中にkfを書き換えて変更を手早く確認する小技の話が出ましたが
あれってゲーム実行時に必要に応じてファイル読み込みをするIdleAnimationsで指定
されるkfの話です。
アクターに直接指定されるkfに関しては多分事情が違うのでその辺も。


で、なんかこのまま苦労し続けるよりは素直にSkeletonとkfを作り直した方が良さそう
な気がするのですが。
一連の問題って馬を流用している事に全て起因している訳ですし。

Skeletonが自前なら普通にBlenderでkfを扱えるので、例えばウィリーとかマックス
ターンみたいなSpecialIdleがすんなりといくらでも作れたりしますよ。
きちんと作れば車輪を回転させたりハンドルを切ったりも多分。

なんか大変そうで取っ付きにくいとは思いますけど。
でもNifSkopeの経験が多少あってBlenderでヒトのポーズとか作ったことがあるのなら
操作手順的には難しくは無いです。

そのバイクだったらSkeletonは単純でボーン数個で済みますし、死なないのなら
RigidBodyのコリジョン指定は不要です。
kfは多分19個で済みます。殆んどがバイク自体は静止しているだけです。

また、有り物流用で泥縄的に限定的な小技だけでの対策に終始するよりは、基本部分に
手を付けて全体を整理、同時に系統立った知識を手に入れた方が次に繋がる気も。
余計なお世話かもですが。

もしその辺の検討をする上で何か必要でしたらまた。
32名無しさんの野望:2010/11/01(月) 00:43:35 ID:umVLRctn
MessageBoxとGetButtonPressedとの関係って分かりにくいですよね。

まず、MessageBoxは「入力待ち」ではないです。
MessageBoxが表示された後もスクリプトは動き続けます。
MessageBoxが表示されるとMenuModeになり、ボタンが押されるとMessageBoxは消えて
GameModeに復帰します。
またGetButtonPressedはボタンが押されるまで「-1」を返し、押されると「0」以上の値を
返します。

で、ここで厄介なのは、GameModeに復帰した直後にGetButtonPressedが必ずしも0以上
をすぐに返す訳では無い、という点です。
押されたボタンがGetButtonPressedに反映するのに遅延する可能性が常時あります。

なのでMessageBoxの呼出し後に押されたボタンの種類を判定するのなら、GameModeで
毎フレームGetButtonPressedで「-1」以外の値が返って来るまで監視する必要が。
33名無しさんの野望:2010/11/01(月) 02:29:31 ID:umVLRctn
あれ、「GetButtonPressedに反映が遅延する」と言ってしまうと少し違うかもですね。

MessageBoxは実行するとすぐに表示される訳では無く、現在のスクリプトが全部終了
してからMenuModeに自動的に切り替わりそこで初めて表示される。

なのでスクリプト上でMessageBox実行の直後に一度だけGetButtonPressedを判定しても
ボタン押下の結果は得られない。
MessageBoxを実行した後は、GameModeでGetButtonPressedに「-1」以外の値が返るまで
繰り返し判定する必要がある。

と言った方がいいんですかね。

いずれにしろMessageBoxを実行したら、GetButtonPressedで「-1」以外の値が来るまで
ずっと判定して待っていればそのうちボタンの結果は返って来るよ、て事です。
343:2010/11/01(月) 11:11:32 ID:vsEn4FqF
>>31
はい、ゲームは再起動しています。
IdleAnimationsは使われる寸前にファイルが読み込まれるのですか。
ポーズMODで調整するときにいいですね!

おおー、バイクを使ったエクストリームができるのなら最高ですね!!

>車輪を回転させたりハンドルを切ったり
これができたら最高です。目標は(高く)ここにしたいと思います。

誤魔化しで何とか使えるものができて一段落しているので、
kfファイルの作成に挑戦してみようと思います。
35名無しさんの野望:2010/11/01(月) 13:20:32 ID:DqfOZUh5
装備品を作成中なのですが、エクスポートするときに
「weight設定されてない頂点があるぞゴルァ!!設定できてない所は黄色で選択してやるから確認しやがれ」
と言うような意味のエラーが出てきます。
ですが、どの頂点を見ても選択された箇所はありませんでした。
Zキーで確認しても同様です。
vertex groupsで全てのBip01〜を選びSelectを押してみましたが、
weight設定されてない頂点は見つかりませんでした。
bone weight copyする時はAで全選択してるから選択し忘れということはないはずですが・・・。
いったいどうすれば良いのでしょうか?
36名無しさんの野望:2010/11/01(月) 14:36:57 ID:YxqeGQk/
BPにAssign
37名無しさんの野望:2010/11/01(月) 20:48:50 ID:/41TUt8p
失礼します、どなたか助力をお願いします。
NPCにエンチャ武器を持たせて
NPCのステータスを参照して攻撃力を弄ろうとしているのですが
上手くいきません。
エンチャントのScriptEffectがtouchのみでNPCのステータスが参照できず困っています。
参照させる手はないでしょうか?
38名無しさんの野望:2010/11/01(月) 21:38:21 ID:Aokwd1t0
ヘルプとか日本語wikiのチュートリアルの次ってどのあたりを参考にするのが常道なの?
39名無しさんの野望:2010/11/01(月) 21:47:54 ID:MyduK8oQ
>>37
武器のエンチャだとOnHitでしか、しかも攻撃対象にしか発動しないんじゃないかな
武器にOnEquipスタートのobject scriptはっつけたほうがいいんじゃないかな

>>38
作りたい物に近いMODをCS WikiとOBSE Document片手にバラすのが一番
40名無しさんの野望:2010/11/01(月) 22:52:49 ID:bitXK2uj
>>30
多分、vanillaやobseでそれを判定する機能はないです
なので、自分で判定機能を作る必要があります

読んだ本のIDを取得して、既読リスト(特定チェストやobse配列)に記憶しておき、判定が必要ならこれを検索
という処理でできると思います
読んだ本の取得は、menumode 1026(本モード)で、GetActiveMenuObjectでいけると思います

過去スレで同じ話題があって、判定modも挙げられてたと思うので、検索してみるといいかも
41名無しさんの野望:2010/11/01(月) 23:05:51 ID:/41TUt8p
>>39
レス感謝です。
OnHitはアクターに添付しないと効果を発揮しないと記憶しています。
やはりNPCは不可能なんですかねぇ。
42名無しさんの野望:2010/11/01(月) 23:09:38 ID:Zmc8H8vj
質問なんですが、マスターになるespを一度指定したら外れないようにするにはどうすればいいんでしょうか?
あるespをマスターにするアドオンを製作しようとしたのですが、whryやgeckoで指定してもCSで開くとマスター指定が外れてしまいます。

試しに一般公開されてる、同様にespをマスターとするMODをCSで開いてみて保存したところマスター指定は外れませんでした。
whryやgecko以外でマスター指定が解除されないように指定する方法はあるのでしょうか?
43名無しさんの野望:2010/11/01(月) 23:48:43 ID:Aokwd1t0
>39
ありがとうございます
ただまだ基本的な仕組みが掴みきれてない感じなんで
間にもう一ステップ挟む感じのところはありませんかね
英語wikiのビギナーズガイド訳しながら読んでるんですが時間がかかりすぎて
44名無しさんの野望:2010/11/01(月) 23:52:32 ID:sduE5Tbk
>>35

1.bone→shift押しながらmeshで選択し、
  ctrl+pでarmature→creat from bone heat、
  vertex groupsを全部deleteして、もう一度weightコピーしてみる

2.だめならコピー元のmeshを変えてみる

これで大抵直るハズです
45名無しさんの野望:2010/11/01(月) 23:53:37 ID:sduE5Tbk
↑失礼
mesh→shift押しながらboneです
46名無しさんの野望:2010/11/02(火) 00:25:04 ID:3sf7N53+
>>42
whryというのはわかりませんが(WyreBashのこと?)、
CSでは espのマスター指定をするespを作成するっていうことを想定して作られていないようなので
CSで saveしてマスター指定が外れるのを防ぐのは不可です。
勿論 esmにマスター指定は名前の通りですのでマスター指定して Save出来ます。

r_basilico さんという方が [マスターの指定、ファイルの更新日時(Modの並び順)] を復元してくれる
ソフトウェアを公開してくれているのでこれが便利です。CS起動する前にこれを起動しておくだけです。
ちなみに自分はWin7 64bitですが問題なく使えてます。

RestoreESP v1.1
http://shy.jsphr.net/upload/img/ups18286.7z
47名無しさんの野望:2010/11/02(火) 11:51:13 ID:IDG92qD6
>>46
どうもです。whryはWyreBashの間違いでした。
他の一般公開されているespをマスターとするMODが、CSで開いて保存してもマスター指定が外れなかったので、
(外れてしまう)自分が作ったものは大丈夫か?と思ってたんです。

調べていくと、どうやらEsmify Mastersによってマスター元espをesmとして扱うことでそうしていたようです。
Esmify MastersがされていないMODで試したところ、普通にマスター外れたので,
他の方も公開している時は普通にWyreBash等で指定しているだけなんですね。

WyreBashの知識が足りず良くわからない質問をしてしまい申し訳ないです。
48名無しさんの野望:2010/11/02(火) 13:41:09 ID:BscAK7RE
細かいけど、WhryでもWyreでもなくて、Wryeな
49名無しさんの野望:2010/11/02(火) 17:44:59 ID:8/JlY4WF
>>41
解決しました。
50名無しさんの野望:2010/11/02(火) 23:46:17 ID:9PsYoxao
>>254
罠というか、結構丁寧に書いてあるんだよReadMeには
でも、書いてあるだけの事をしただけじゃ導入できない
ReadMeの手順以外に、Wyre Bashについての基本知識があれば、当然やってるだろう事をやらないといけない
しとしん版って基本知識が無くてもReadMeの通りに辿って行けば導入できるってのが基本スタンスだから、
このMODを入れるに当たって、「自分の知識が足りないせいで、当然やってるだろう手順を踏んでない」
とはなかなか思い至らない
「なんでReadMeの通りにしたのにうまくいかないんだろう?」って3日悩む事になる





51名無しさんの野望:2010/11/03(水) 15:04:59 ID:Bz7W27Xh
バイク的な乗り物のSkeletonとkfを作る話ですけど。

まず>>31の話って、バイク専用のSkeletonを新しく作ればバイク自体の動きを作るの
だけは非常に簡単になるよ、という事です。
前スレ987のCSWikiの方法で乗り物kfと乗員kfとを別々に作ってマージするのは手順が
多くてやはり大変は大変だと思います。
元々その方法って、既存のクリーチャーを乗れる様に切り張り改造する時の話ですし。

なのでどうせ乗り物のSkeleton+kfを作り直して同時に乗員の動きも変えるのなら、
乗り物と乗員一体でkfを一発で作れればそれが一番早い気が。

少し試してみたのですが、出来ない事も無いみたいです。
理屈は置いといてとりあえず実際のサンプルを。先回りするみたいでアレなのですが。
細かな話は同梱のtxtに。

http://shy.jsphr.net/upload/img/ups19746.zip
http://shy.jsphr.net/upload/img/ups19747.jpg
523:2010/11/03(水) 17:34:56 ID:5/9b1T+4
>>51
おおぉぉぉー!!! あなたは神様ですかぁぁー!!!

ゲーム上で確認してみました! 見事に動いてます!
Readme通り水陸両用になってたのは笑いました(笑)

とてつもなくありがたいのですが、まだ自分の知識がなさすぎて
どうすればいいかわからない状態です。
かなり初歩的なところから既にわかりません…。
CS Wikiでアニメーションを調べているのですが、ペースが遅い…。

なのでとても時間がかかると思いますが、
是非ともアップしていただいたファイルを参考にして取り組んでいきたいと思います。
どうしてもわからないところが出たら、またお答え頂ければ幸いですm(_ _)m
53名無しさんの野望:2010/11/03(水) 19:40:17 ID:Bz7W27Xh
おー、動きましたか。
水陸両用っていいですよね。それが楽しくて今水中ばかり走ってます。

MOD制作は自分のペースで行くのがやっぱ一番だと思います。
こちらもレスはいつものんびりですし。なんか謎な事がありましたらまた。
54名無しさんの野望:2010/11/04(木) 02:49:48 ID:x1/Pcj2O
>>44
お礼がおそくなりましたが、直りました!
どうもありがとうございます!
55名無しさんの野望:2010/11/04(木) 07:50:26 ID:p+gEh7l3
>>51のtxtで一番重要な部分を間違えてました。最後の方55行目です。

(誤)「TargetType」を必ず「Bip02」に変更を
(正)「TargetName」を必ず「Bip02」に変更を

ここが本当に一番のキモだったんですけど。申し訳無い。
もうね、なんでそこを間違えますか。
563:2010/11/04(木) 09:59:03 ID:/1b8qE1a
>>55
まだその段階まで全然到達してないですが、その時は気をつけます!
57名無しさんの野望:2010/11/04(木) 18:09:53 ID:w7hGQFo1
wktkしつつ芸能山城組のBGM用意してバイクMOD待ってる
583:2010/11/04(木) 18:46:50 ID:/1b8qE1a
>>57
マジですか!? バイクMODを期待している方がいらっしゃったなんて…。
芸能山城組って初めて知りましたけど、どう考えてもCivのほうが向いて(ry
59名無しさんの野望:2010/11/04(木) 19:04:42 ID:PvYweUq5
最近modを勉強してみようかと思い立ち、既存のmodをいじったりしているものです。
いろいろ弄れるようにはなってきたのですが、horadric cube modにお手上げ状態です。
宝石追加時のエンチャ値を変えてみようかと思い、CSで開いてみると、
SigilStoneのところにそれらしいデータがあるのですが、数値を変えてもゲームに反映されません。
アドバイスをお願いします。

modの道は深く険しいですね…。
60名無しさんの野望:2010/11/05(金) 00:12:46 ID:pO+vcAZA
>>59
Horadric Cube に限ったことではありませんが、
クリーンインストールしないとスクリプトが更新されない Mod があります。
Horadric Cube は、日本語化したときスクリプトの文字列が更新されず
手を加えても以前の英語の文字列のままだったことがあります。
それが影響しているかもしれませんよ。
61名無しさんの野望:2010/11/05(金) 00:33:43 ID:EyNCwQkV
>>59
DIABLOのhoradric cubeなら知ってるけど、MODは使ったことないから、ちょっとイメージわかないけど、合成できるやつだよね。
なんとなく想像だけど・・・。
スクリプトで制御されていたりすると、アイテムを一旦消してから、新しく生成して初めて反映されることがあるよ。
もしくはSaveデータに保存されているか、かなあ。

以下の手順を試してみたらどうかな?
(あらかじめ、新規で保存しなおしてからやると確認だけできると思う。あと、持ち物のMODのアイテム番号をメモっておく)
1.MODをはずして、Saveデータをロードする。
2.MODのアイテムが消えてることを確認してSave。終了。
3.MOD組み込んでロード。メモしたアイテム番号からadditemする。
62名無しさんの野望:2010/11/05(金) 11:08:35 ID:bA1dtxGJ
「バイク」と聞くと油断してると頭の中で「Bone to Be Wild」が鳴る私はどうしたら
いいですか。

上の例って自転車的なモノにも応用出来たりしますよ。
ペダルと脚を動かしたり。立ち漕ぎさせたり。

あと船にも。
馬同様swim〜.kfを用意して、本来馬には無いswimfastforward.kfを追加、陸上用各kf
の動き量を充分小さく(1.0とか2.0とか。0は多分問題有り)すると、水中では普通に
高速で動いて陸に上がろうとすると急に進めなくなる「船」的動きがスクリプトとか無し
でそのまま出来たりします。

水上バイクとかスワンボートとかも多分。
63名無しさんの野望:2010/11/05(金) 11:29:07 ID:ODhc2Hpl
うっかり上げてしまっってすみません。
>>59様、>>60様素早い回答ありがとうございます。

数値を書き換える → modはずす → 起動してsave → mod入れなおして起動
でも結果変わらずでした。
CSで開いて、Item\SigilStone以下の"hc(宝石名)"の数値をいじってみたんですが、
そもそも根本的に書き換えてるところが違うんだろうか。

CSで数値をいじるところから始めて、wiki見ながらItemの色変えてみたりして、
もう少し複雑そうなことをやってみようと、HoradoricCubeに手を出してみたらこの有様。
お気入りの帽子に宝石埋め込めるようになるのはいつのことやら。

もそっとがんばってみようと思います。
アドバイスくれた方ありがとう。
643:2010/11/05(金) 13:37:48 ID:huwW6cAs
>>62
自転車的なモノ(ペダルと脚を動かしたり。立ち漕ぎさせたり)+ 船
=>あひるさんボートなわけですね。わかります。
水上ではあひるさんボート、陸上ではあひるさんバイクなんて素敵過ぎる!

現在、
・乗り手のポーズのblendファイル開く
・そこにNR500.nifをインポート
・人車一体、nifファイルとidle.kfファイルとしてエクスポート
・ゲーム上で表示されない
なんてアホなことやってます。
BlenderからExportしたファイルはNifskopeで加工しないと使えないんですよね。
いえ、人車合体させてる時点で、それが使えるかどうかすらわからないですが…。(無知

バイクを自分で作るのは大変すぎるので流用したいのですが、できますか??
後から何らかの処理で、ハンドルを切らせたりホイールを回すことはできるのかな…?
直感的には、Blenderでハンドルの位置を動かしたアニメーションのkfファイルでできそうな気が…。
65名無しさんの野望:2010/11/05(金) 13:58:19 ID:s5yGcH6L
なんだか全てを質問してやってる感じだね
663:2010/11/05(金) 14:09:19 ID:huwW6cAs
>>65
その通りですね。しばらく山にこもってきます(゚◇゚)ゞ
67名無しさんの野望:2010/11/05(金) 19:04:35 ID:bA1dtxGJ
別に聞いてもらってOKですよ。

むしろ些細な事に躓いて諦めたり、逆に単にマニュアル類を見ただけで基本を誤解した
まま作った謎構造のMODを公開して世界中のユーザーのゲーム動作を不安定にする方が
お互いずっと不幸な気が。


>>64
まず先に乗り物の完全水陸両用化の細かな話ですけど。
多分見た目にいいかんじにするには喫水線位置が問題に。
水中でのクリーチャーの体の沈み具合ってコリジョン形状によって自動的に決定され
ます。多分。
調整はskeleton.nifのBSBound→Center/Dimentionsの変更である程度は可能です。
SS上はサンプルのまま、下は試験的にそのZをそれぞれ「30」にしてあります。

http://shy.jsphr.net/upload/img/ups19828.jpg

ただ、クリーチャー生存時のコリジョンって完全な任意形状に出来る訳ではないので
指定には限界はあるとは思いますが。
続く)
68名無しさんの野望:2010/11/05(金) 19:09:05 ID:bA1dtxGJ
続き)
次にその仰る手順の話ですけど、

それって何が目的でどのファイルを開いて最終的にどのkfをExportしているかという
基本的な前提が分かんないとなんとも主旨自体が謎ですよ。
乗馬kfを作る手順の概要は雰囲気的にこれで大体合ってるか、て事ですか?

だとすると、その手順通りという事ならバイクのSkeletonをImportする過程が明らかに
無いので、乗り物kfとして意味あるkfはExportされないと思います。
NifSkopeでの加工とかの話以前に。またnifって何の為にExportしてるんでしょう。

>流用したいのですが、できますか??

流用ってそのNR500.nifの事だと思いますけど、技法上の意味での流用は別にいくら
でも出来ると思います。
バイクみたいに各部が固定の形状なら、Skeletonを適切に作って車体各部を別nifに
して該当BoneへのAttachで指定したり、または普通にBoneアニメとしてWeightを付ける
なりすれば通常のBlenderのアニメ操作でkfを作ってハンドルも車輪も動かせます。

でもそのNR500の場合についてだけの具体手順、というのはちょっとご勘弁を。
それって私が作ったMODじゃないので結果に責任が持てないので。
そのMOD個別ではない一般的な話ならいくらでもOKですけど。


で、人が乗れるクリーチャーって色々な要素が関係しているですよ。
その要素それぞれの把握を抜きに先を急いでも多分状況は変わらない気が。

人を乗せる話や車輪を動かす話はとりあえず置いといて、まずバイク単体で
クリーチャーとして正常に動かすにはどうするか、を把握する事を今は第一目的に
するのがいいと思うんですけど。その辺どうでしょね。
69名無しさんの野望:2010/11/05(金) 19:25:03 ID:dYJS2uui
自分で調べるのも大切だけど、自力に拘りすぎてスパゲッティになっちゃうってのはよくあるしな
70名無しさんの野望:2010/11/06(土) 10:48:02 ID:8/P+jJGP
playable属性を外したアイテムをPCが入手する際、左上に「〜〜を手に入れました」と
表示がされるようになってしまったのですが、これっていったい何が原因なんでしょうか……。
playable属性は確かに外れていて、入手した、という表示が出てもインベントリには何も(見かけ上は)増えていません。
もちろんNPCに取得させても見えないままです。

ゲームに支障はないのですが、アイテムにアイコンを設定していないため、四角い紫色のアイコンが表示されてしまうので見栄えが悪く……。
数日前まではこんな事はなかったと思うので恐らく何かいじってはいけない部分をいじってしまったのでしょうが、思い当たる節がなくて……。
よろしければ知恵をお貸しください。
71名無しさんの野望:2010/11/06(土) 13:15:56 ID:Xl6BEr7z
>>70
スクリプトからaddItemしてるんですよね?
playale属性のあるなし関係なく、単にaddItemすればメッセージ出ます

OBSEのaddItemNSを使うか、
Message " "を2回、addItemする前に書くとメッセージ出ない
72名無しさんの野望:2010/11/06(土) 13:17:46 ID:xYw2Wan1
>>70
たぶん属性は関係ないと思う。
AddItemNSをAddItemにしたとかじゃないかな?

これの違い把握してるかな?
AddItemNS:アイテムをこっそり渡す。「〜〜を手に入れました」が出ない。
AddItem:プレイヤーに通知して渡す。「〜〜を手に入れました」が出る。

ほかにも後ろにNSがつく関数は、通知がないものだよ。(これはOBSEの関数ね)
73名無しさんの野望:2010/11/06(土) 14:19:06 ID:8/P+jJGP
>>71>>72
まさしくお二方のご指摘の通りでした。
AdditemNSに書き直したところ、表示は出なくなりました。
以前は出なかった、というのは単に自分が見落としていただけだったようです。
不勉強が恥ずかしい……。
お二方とも、ご指導ありがとうございました!!
743:2010/11/07(日) 15:39:03 ID:YCLBerwu
>>67
バイクMODは
・(特殊な設定が必要な)乗り物である
・バイクグラフィックの流用+各部を動かすのに、色々と加工が必要
と、無知な自分にはとんでもなく敷居が高すぎるですので、
完成までには数カ月〜数年かかりそうですね…(汗)
かなり広く深い知識が必要そうなので、じーーーっくりと腰を据えて取り組んでいきたいと思います…。

ひとつ質問なのですが、このMODはバイクのグラフィックをお借りしています。
TESNでオリジナルMODのアップロード者さんに連絡をとっているのですが、返事がありません。
この場合、グラフィックを借りたMODを公開することは不可能となるのでしょうか?(盗作?)
75名無しさんの野望:2010/11/07(日) 21:12:13 ID:tsGw9x73
>>74
TESNEXUSのルールで言うと駄目でしょうね。
作者が明に許可を出している場合を除いては盗作扱いです。
私なら公開せずに個人の趣味で使うか、TESNEXUSに公開するつもりのものは一から作ります。
TESNEXUSではなく例えば2chなどで公開するのであれば、ここは全くの無法地帯なので個人の判断でしょう。
76名無しさんの野望:2010/11/07(日) 21:45:17 ID:aMTkekVv
>>74
nifの借用については特に何かを示唆するつもりは無いです。
各コミュニティのローカルルールで。なのでその話はいいとして。


で、確かに理屈の把握をまずお薦めはしたのですが、それには実践も当然伴う訳で、
もしその過程でヒトと乗り物でのツール操作手順の違いみたいな本質的で無い部分で
詰まって「敷居が高い」としているならそれはそれでやはり不幸な気が。

なのでご参考までに細かな手順的な話を。また長くなりますが。

>・(特殊な設定が必要な)乗り物である

ヒトポーズを作った事はあるんですよね?

乗り物kfを作るのは原理的にはヒトポーズ作りと全く同じです。
使うSkeletonが違うだけでヒトも単体クリーチャーも乗り物も全部やる事は同じです。

自作乗り物にはヒトポーズ作成パックみたいに初期状態を一発でLoad出来るblendが
用意されている訳では無いので恐らく手順的に難しそうな印象はあるかもですが。
また、失礼ですけど、恐らくそういった特定のヒトポーズ作りの手順に捕らわれ
すぎて、別な事をしようにも何をしていいのかサッパリ、という状況な気も。

上のサンプルを例にするなら、kfを作るのは単にskeletonEdit.nifをImport→ヒト同様
の方法でキーを打って→kfをExport→NifSkopeで諸指定を相当するバニラ馬kfと見比べ
て同じに書き換えれば原則それでOKです。
または同梱のkfをSkeletonと一緒にImportすればそのkfの改造が出来ます。

またヒト体nifや車体nifのImportをするのはBoneの具合を確認する操作上の利便の為で
それ自体はkf作成の本質とは関係無いです。
あと初期状態でblend形式でSaveすれば恐らく>>74さんがヒトのポーズ作成手順で多分
いつも使っているのと同様な初期状態blendになります。
77名無しさんの野望:2010/11/07(日) 21:52:02 ID:aMTkekVv
続き)
>・バイクグラフィックの流用+各部を動かすのに、色々と加工が必要

これもNifSkopeを使った事はあるんですよね?

Skeletonを作る、てのはNifSkopeでskeleton.nifを書き換える、て事です。
車体nifの改造も同様です。
(車体はBlenderでメッシュのWeightで、という方法もありますがそれは今は置い
といて。装備とか作った事があるのでしたらそっちの方が分かり易いかもですが)

例えば上のサンプルの後輪を回すのなら、skeleton.nifのBip01PelvisBの子供として
NiNode(Bone)を追加、適当な名前を付け(「Bip01 RWheelB」とか)その位置を車軸位置に
合わせ、車体nifの後輪部分だけを別nifにし、中心座標を0にしてStringExtraDataでの
Attach位置指定をその追加したBone名にし、CSでバイククリーチャーの体パーツの一つ
として指定すれば準備はOKです。
これってバニラ馬の眼球の構造と同じ事なのでそれを参考に。

下準備が出来たらskeletonEdit.nifにも同じBoneの追加をして該当kfにそのBoneが回る
動きを付ければゲームで車輪が回ります。
同様にフロントフォーク部分も作ってその子供として前輪を付ければ親子構造で
ハンドルを切れば前輪も曲がります。


で、いずれの手順も上のサンプルについての話であれば具体的に答えられるので、
その場合はいくらでも具体手順を聞いてもらってOKですよ。
そのNR500をもし借用するのなら多分手順は同じで行けると思いますし。

あと上のサンプルって失礼ですけど特に>>74さん専用という訳ではないので、
どなたが使ってくれても質問してくれてもOKです。
783:2010/11/07(日) 22:41:46 ID:YCLBerwu
>>75
自分が作ったMODが勝手に借用されてたら嫌な気分になりますよね…。
連絡がとれない以上、致し方ないです。
仮に2chのような限られたエリアで公開するとしても
ちょっとやっぱり引っかかるものがあります。。。
プラス思考に良い経験だと思って…バイクも作ってみます。。。

>>76
いつもながら、実に鋭いご指摘ばかりでして…(汗)
自分から見ると、とてつもなく凄い人・神様って感じに見えます。。。

>で、いずれの手順も上のサンプルについての話であれば具体的に答えられるので、
>その場合はいくらでも具体手順を聞いてもらってOKですよ。

とても助かる一方、他の利用者さんからは
「おいおい、いつまで質問しまくる気だよ…」みたいに見られて焦りますので、
できるだけ絞って質問させていただくよう気をつけます…。
793:2010/11/07(日) 23:00:35 ID:YCLBerwu
>>76
早速の質問(しかも初歩的)で申し訳ないのですが、
上のMODのskeletonEdit.nifをImportするとバイクが表示されず、
人間も基本骨格だけのワイヤーフレームになってしまいます。

皮膚をつけるためには、base_female.nif(女性のNifファイル)のようなものから
NiTriStripsやNiTriStripsDataをCopy Branchして、
skeletonEdit.nifの各部位に貼り付けを繰り返すしかないのでしょうか?
それとも、皆様はあのワイヤーフレームで作業を続けていますか??

人間を表示したあと、バイクはMarkerBike.nifをインポートして、
それをBlendファイルとして保存すれば初期状態完成でしょうか…??

NifSkopeは浅く限定的な使い方しかしたことがないため、
ご説明いただいた手順は頭で想像はできるのですが、自信は全くないため
バニラの馬とかと見比べて色々試してみたいと思います。

質問ばかりで重ね重ね申し訳ないです…。
80名無しさんの野望:2010/11/07(日) 23:49:43 ID:aMTkekVv
>>79
実はこちらも人馬一体Skeletonで乗馬kfを一発で作ったのは初めてなので、質問の
検証過程で手法自体の問題が見つかる可能性もあったりするですよ。
そいういう意味でも色々聞いてもらった方が有り難かったりします。
なのでご遠慮無く。

で、skeletonEdit.nifってボーンだけのnifなのでワイヤーフレームっぽくて正解
です。その状態にヒト体nifやバイクnifをImportすればヒトポーズ作成初期状態blend
みたいな絵面になります。

各nifのImportはそのSkeletonオブジェを選択状態にして
「ImportGeometryOnly+ParetnToSelectedArmature」ボタンをONで。

但し、そのSkeletonの場合ヒトのBip01位置がActorParentの位置だけずれているので
体nifの位置がヒトSkeletonとずれます。補正はBlender上で手動で体オブジェ位置の
LocZを+1.0に。その話は同梱のtxtに。

またMarkerBike.nifはAttach位置がBip01PelvisBで、SceneRootノードにその座標補正
量が書いてあるので、Importすると多分Skeleton全体の位置が下に-5ぐらい沈みます。
その補正はBlender上で「SceneRoot」オブジェ(ヒト足元の下)のzを0に。

体nifと全体のズレが無くなったらその状態でSaveすればいわゆる「初期状態blend」に
なると思います。
81名無しさんの野望:2010/11/08(月) 00:27:23 ID:g+7ZVs8J
でもそのままだとバイクの絵はBip02を動かしても追従しないので、Blender上では
Weightを付けといた方がいいかもですね。

バイク各部オブジェへのWeithtの付け方は、概念的にはバイク各オブジェにSkeleton
オブジェをParent指定し、VertexGroupの「Bip01 SpineB」に全頂点のWeightを1.0に
Assignすればいいんですけど、操作手順的にはちょっと説明がややこしいので、そこ
だけはBlender操作関係を調べてもらう、という事でここはひとつ。

大元のBip02ではなくて特に「Bip01SpineB」にする理由は、今後アニメでバイク本体を
宙に浮かせたりウィリーさせたりする時の為です。
82名無しさんの野望:2010/11/10(水) 00:07:00 ID:iDW/kB8W
OBMMのCreateで、Zip形式にしてomodファイル作ると、ReadmeとScriptの日本語が文字化けするね・・・。
内部で使ってるZipライブラリが日本語対応してないっぽい。

素直に7-zip形式にしたほうがよさそう。(サイズもぜんぜん7-zipのほうが小さくなるし)
83名無しさんの野望:2010/11/10(水) 15:18:11 ID:bc144Pjb
凄い基礎的な質問なのですが
CS等で、leveled creatureリスト内にドラッグして放りこめるNPCと
放り込めないNPCがいるのですが
両者の違い、分かれ目はどの設定になるのでしょうか?
ご教示いただけると幸いです
84名無しさんの野望:2010/11/10(水) 17:29:53 ID:B7ghFLU+
>>83
そのアクターの「NoLowLevelProcessing」オプションがOFFだとLeveledCreatureの
リストに加える事は出来ないです。多分それでは。

で、その指定って単なるおまじない的指定では無く、それによるアクターの挙動の
違いに加えて、LeveledListで出現するアクターと、CSで直接初期配置したアクター
ではシステムの内部的に大きな違いがあったりします。

そのアクターの行動範囲がそのセル内限定で全然重要でないキャラならLeveledListで
別にOKなのですが、ロードドアを通って別セルへの移動が必要だったり、そのアクター
のRefを使って何か細かな事をする予定がある場合は、LeveledListを使う事自体が
適切かを含めて要検討だったりすると思います。
85名無しさんの野望:2010/11/10(水) 18:56:33 ID:HVkkXs/c
>>84
的確なご回答と、ご指摘をいただき感謝します
ありがとうございました
86名無しさんの野望:2010/11/11(木) 07:30:53 ID:khCCgApj
質問させていただきます

Reanimateの範囲魔法を作りたいのですが、Reanimateの効果自体
範囲が設定できません。

スプリクトエフェクトで同じ効果を作りたいのですが
いいやり方をご教授願えないでしょうか?
87名無しさんの野望:2010/11/11(木) 07:43:41 ID:khCCgApj
○ スクリプトエフェクト
× スプリクトエフェクト
88名無しさんの野望:2010/11/11(木) 14:16:49 ID:eUhzURbl
>>86
単に一定時間生き返りさえすればOKで、見た目効果もある適度それっぽければOKなら、
MagicEffectScriptのScriptEffedtStartでResurrect、適当なEffectShaderをPlayMagic
ShaderVisualsしてScriptEffectFinishでStopMagicShaderVisualsしてKillすればOK
だと思うんですけど。

でもそういう事ではないとすると少し話がややこしくなると思います。

もしScriptEffectでReanimateと全く同等な見た目と効果を自前で一から作れるか、と
いう事だと難しいかもです。
Havokで体をズルズル持ち上げたり、目の色を変えたりは多分現状Scriptでは出来ない
ですし。

また実際のCast動作無しでバニラやOBSEの関数呼び出しだけでReanimateがCastされた
事にして等価な挙動をさせる事は出来るか、というとそれも多分出来ない気が。

なのでReanimateそのものの範囲魔法化がどうしても必要、という事なら、透明な
アクターを用意してScriptEffectのArea内の各死体に順次MoveTo→Reanimateを実際に
Castさせる、みたいな手しかやはり無いかもです。
なんか冗長な方法ですが。でも要領良く作ればスクリプト自体は多分単純で済みそう
な気も。

その際のReanimate独特の制限や不特定多数の死体に一人のアクターで順次Castさせる
方法とかその辺の細かな話が必要でしたらまた聞いて下さい。
89名無しさんの野望:2010/11/11(木) 18:25:49 ID:9pQO9uxs
ダンジョン作成で質問させてください。
Kvatch攻城戦の改変ダンジョンを作りたいと思っています。
ただ、実際のcellを弄るとストーリー展開に支障が出る為、cellを複製できればと考えています。
ChapelやCastle等、World SpaceがInteriorsの物はDuplicate Cellで複製できるのですが
World SpaceがKvatchEastにあるKvatchEastArena等はDuplicate Cellしても複製できず困っております。
この様なCellを複製する方法はありますでしょうか。
90名無しさんの野望:2010/11/11(木) 18:40:40 ID:o8S/vUhB
別のワールドスペースを作ってオブジェクトはコピーするしかないかなぁ
91名無しさんの野望:2010/11/11(木) 18:55:54 ID:FG1bpGCR
ワールドスペースごと丸ごとコピーできたような?
それで親スペースを別世界にしておけば、尚安全かも
今はちょっとCS上の確認がとれませんが
http://shy.jsphr.net/upload/img/ups16426.zip
これは以前にMMMのアドオンとして作った
バニラの街をコピーした戦場MODです
(高台へのMOB配置についてご教示下さった方、その節はありがとうございました)
自分用に作ったものなので、遊ぶには必要スペックがきつめですが、何かのご参考になれば
92名無しさんの野望:2010/11/11(木) 19:02:37 ID:o8S/vUhB
ワールドスペースごとコピーすると
espがとんでもない大きさになってムリだと思う。
そもそも途中で高確率でエラー。

なので
親をTamrielにして
オブジェクト(街とかまるごと)コピーして移すしかないとおもいまう
9389:2010/11/11(木) 19:20:55 ID:9pQO9uxs
>>90〜92
アドバイスありがとうございます。ワールドスペース自体を弄れるとは知りませんでした。
コピーで済むのか、新規で作ってコピーしなければならないのか、試してみないと分かりませんが
何とか解決できそうです。ありがとうございました。
94名無しさんの野望:2010/11/11(木) 19:36:19 ID:FG1bpGCR
>>92
tamriel全体をコピーするかのような誤解を招いてしまったでしょうか?
ワールドスペースといっても
>>89氏や私の用途であれば、範囲は「kvatchworld」など街とその周辺スペースなので
複製するとサイズが数百kbは増すかもしれませんが、おそらくそのぐらいです
いらないオブジェクトをどんどん丁寧に削除していけばもっと節約できるかもしれません

あまり知識のない人間ですが、個人的には複製した街worldはtamrielとは
別の親ワールド下においた方が使い勝手がいいのではないかと思っています
95名無しさんの野望:2010/11/11(木) 20:25:49 ID:eUhzURbl
KvatchEast程度なら丸ごとDuplicateでいけるんじゃないですかね。

>>89
WorldSpaceってInteriorCellと違って複数のCellを持っていて、その中の一つだけを
複製する事は出来ないです。
WorldSpaceとして出来る事は、丸ごと複製するか、そのWorldSpaceを親にしてその中の
一定領域を新規の子供WorldSpaceとして作るかのどちらかです。

でも子供WorldSpaceとは言ってもCell地表形状だけを親から継承しただけの全く別物の
独立したWorldSpaceなので、Cell境界が解放した領域を子供にしても親との間で自動的
に行き来出来たりする訳では無いです。
子供WorldSpaceを作る場合は例えばバニラの各町みたいに塀等で囲まれていて必ず門を
介して出入りする様な、周囲が閉じた地形構造である必要がまずあります。

で、仰るその場合、CSのWorld→WorldSpaceの左リストの「KvatchEast」を右クリで
Duplicateするのが一番ご希望に近い気が。

でもCellを複製する事とストーリー展開を妨げない事とはそもそも関係は無いですよ。
複製したKvatchEastにドアを繋ぎ直してもクエ進行に支障が無いか、各部仕掛けが
うまく動くかは関連各クエとDuplicateした各オブジェの状態を良く見てみないと。
KavatchEastの場所に依存する重要なクエってなんかありましたっけ。
9689:2010/11/11(木) 20:45:12 ID:9pQO9uxs
>>95
詳細な説明ありがとうございます。

>>でもCellを複製する事とストーリー展開を妨げない事とはそもそも関係は無いですよ。
>>複製したKvatchEastにドアを繋ぎ直してもクエ進行に支障が無いか、各部仕掛けが
>>うまく動くかは関連各クエとDuplicateした各オブジェの状態を良く見てみないと。
>>KavatchEastの場所に依存する重要なクエってなんかありましたっけ。
KavatchEastと書きましたが、具体的には城門入ってから王の寝室までの領域を使いたいと思っています。
EntranceやPlazaも使いそうですね。具体的に言うとBUDと言うMODのダンジョンの1つとして使いたいと思っていまして。
専用オブジェクト、トラップ、MOBが存在する為、それらを複製前のcellに配置すると
メインシナリオ進める為にKavatchに行った際にBUMOBが闊歩している状況になるかなと。
その為、独立したcellが欲しいと思った次第です。
とりあえず教えていただいた方法で複製してみます。ありがとうございました。
97名無しさんの野望:2010/11/11(木) 21:09:52 ID:eUhzURbl
あー、バニラのKvatch関係の地形を自MOD用に別物のダンジョンとして流用する、て
事ですか。
でしたら上の方法でWorldSpaceを丸ごとDuplicateして、複製されたオブジェにバニラ
クエ関係の何かをしているものが無いか調べて取り除きさえすれば、後は改造でも
敵配置でもなんでもOKだと思います。
98名無しさんの野望:2010/11/11(木) 21:33:51 ID:eUhzURbl
書き忘れましたけど、もしその複製したKvatch関係のWorldSpaceのCell地表形状も改造
するのなら、World→WorldSpaceの「ParentWorldSpace」を「NONE」にしとかないとマズい
かもです。
子供WorldSpaceのCell形状変更は親にも反映されるので。
99名無しさんの野望:2010/11/11(木) 21:59:07 ID:khCCgApj
>>88
ありがとうございました、試してみます!
10089:2010/11/11(木) 22:02:56 ID:9pQO9uxs
>>あー、バニラのKvatch関係の地形を自MOD用に別物のダンジョンとして流用する、て事ですか。
改変ダンジョンと言うと、既存cellに手を加えた物も該当しますね。分かりにくい表現で申し訳ありませんでした。

>>書き忘れましたけど、もしその複製したKvatch関係のWorldSpaceのCell地表形状も改造
>>するのなら、World→WorldSpaceの「ParentWorldSpace」を「NONE」にしとかないとマズいかもです。
>>子供WorldSpaceのCell形状変更は親にも反映されるので。
丁度複製が終わった所なので設定しておきます。
試してみた所、今のところはいい感じです。後はドアのテレポート設定で
複製セル同士を繋げれば下地は完成しそうです。重ね重ねありがとうございました。
101名無しさんの野望:2010/11/11(木) 23:12:12 ID:EIL6p0Fk
仮面とか頭部アクセサリー作りたいんですが、設定方法がわかりません
頭部が消えて、アクセサリーだけが浮いてる状態になってしまいます
どこかに設定方法を解説してくれているサイトはありませんか?
102名無しさんの野望:2010/11/11(木) 23:13:39 ID:Lqz+FYbZ
head属性じゃなくてアミュレットとかリングにしてゲーム内で確認してみれ
103名無しさんの野望:2010/11/11(木) 23:37:58 ID:EIL6p0Fk
できました。ありがとうございます。
よく見たらライトアーマーの兜ってHairなのね
Head属性は鎧等と同じく頭を完全にすげ替えるので
hair属性は髪型みたいなもん
アミュレットやリングは座標さえあっていればその位置に装着される
って感じでおkですか?
104名無しさんの野望:2010/11/11(木) 23:40:46 ID:Lqz+FYbZ
鎧召喚の石碑とかで試せばわかるけどheadは首から上の頭そのものを置き換えるし
hairは髪の毛と置き換える。解説してるサイトはあったと思うけどURL忘れたすまん
105名無しさんの野望:2010/11/12(金) 00:38:08 ID:49mtxIgd
イカ娘のmodがスレに貼ってあったのでダウソしたら、エロサイトのウィルス入りでした
そもそもイカ娘の物は配布されていないのでしょうか?
ゲハ板で貼られていたのを見て、一気にGOTY版をカオスで買って遊ぼうとしていたので
すごく気になっています。まさか画像をアップロードした人がウィルス踏ませるためにやってるとは思いたくはないです
106名無しさんの野望:2010/11/12(金) 01:17:34 ID:QUobCAeT
なんだsteamの使い方がわからない子か
107名無しさんの野望:2010/11/12(金) 07:56:57 ID:aUIhd7FA
荒らしにしてもつまらなすぎる
108名無しさんの野望:2010/11/12(金) 08:13:22 ID:to/+trd5
本人は真面目に書いているんだから生暖かい目で見守ってあげようw
109名無しさんの野望:2010/11/12(金) 17:45:21 ID:5E/J+3Gq
スクリプト系の質問です

Begin GameModeなどではなく
魔法の類がヒットした瞬間に計算される
Begin ScriptEffectStartについてなのですが

GAMEMODE等の継続的にチェックを行っているスクリプトについては
タイマーを利用したものも普通ですが、
ScriptEffectStartのように、基本的にその場で当たって終わりのスクリプトについては
時間差をおいて処理を行うといったことはかなり難易度が高いのでしょうか?
(例えばトークンアイテムを3秒後に外すといった処理です)

SaveIP
if
(3秒経過していればトークンアイテムをremove)
else
RestoaIP
endif

というのも試しにやってみましたが、もの凄い勢いで無駄に計算しているのか?
スクリプトが発動した瞬間にゲームが固まってしまう代物に……

ご教示をいただければ幸いです、お願いします
110名無しさんの野望:2010/11/12(金) 18:10:04 ID:kBh5zz2o
すみません、Wrye_Bash_275_-_Self_Installer-22368.exeをインストールして
動作確認後、Wrye_Bash_290_-_Archive_Version_-_Update_Only-22368.7zを
展開上書きしましたらWrye Bashが立ち上がらなくなりました。
正しい導入はどうすればいいでしょうか?
111名無しさんの野望:2010/11/12(金) 18:14:23 ID:lPqeUG50
>>110
ここ作成支援スレですけどWryeBashを一から作ってるの?
とりあえずScript見直してみたら?
112110:2010/11/12(金) 18:14:38 ID:kBh5zz2o
誤爆しました。移動します。
113名無しさんの野望:2010/11/12(金) 18:37:59 ID:kBh5zz2o
あ、すみません。教えてもおらいました。
290は286以上が対象って落ちでした。
114名無しさんの野望:2010/11/12(金) 19:43:19 ID:HNP7kiBZ
>>109
MagicEffectScriptには「ScriptEffectStart/Update/Finish」という三つのブロックが
あり、そのうちの「ScriiptEffectUpdate」が「GameMode」に相当します。

で、「ScriptEffectUpdate」でGameModeと同様なタイマー的な事も出来ますが、例えば
魔法が当たって3秒経ったら何かをして終了、みたいな事をするのであれば、
SpellのScriptEffect→Durationを「3」に指定して「ScriptEffectFinish」ブロックで
それを実行するのが素直な方法だと思います。

あとMagicEffectScriptって、いつでもDispelされる可能性があり、システム上も
変数内容が保証されていなかったりで元々「万一動かなくても特に問題が無い用途向け」
という位置付けの機能です。

なのでもし、ScriptEffectStartでトークンをAdd→三秒経ったらトークンをRemove、
みたいな事を予定していて、そのトークンは必ずRemoveされないと動作上色々マズい、
という事なら、MagicEffectScriptだけでその処理をするのは問題かもです。

その場合は例えばMagicEffectScriptではScriptEffectStartブロックでそのトークンを
Addするだけにして、Removeはトークンに付けたObjectScriptのGameModeでタイマーを
見て3秒後に自分をRemoveMe、みたいな構造にした方がいいかもです。
115名無しさんの野望:2010/11/12(金) 22:32:30 ID:XI2cKyUv
服装備作成関係で質問です。
tona氏の装備作成チュートリアルの手順に沿って
blenderでメッシュをnifファイルでエクスポートし、
nifskopeでMake All Skin Partitionsを行ったところ以下のメッセージが出ました。

"reduced 1167 vertices to 4 bone influences (maximum number of bones per vertex was 9)"
"did 3 partitions"

このメッセージを見ると、いくつかのボーンに関連付けられた頂点が削られているようで、
ゲーム中で確認すると複数の頂点がマージされたようになって、正しく表示されません。

チュートリアルだと、nifskopeでMake All Skin Partitionsを行うと
"did 0 partitions"となっているのですが、私の方では毎回頂点削除が行われてしまいます。
どこを直せば正しく表示されるのか分からず困っています。

どなたか服装備作成に詳しい方がいたらアドバイス願います。
116名無しさんの野望:2010/11/12(金) 22:36:52 ID:lWWpVqf9
>>115
やらないでイイです
117名無しさんの野望:2010/11/12(金) 23:31:49 ID:VH9bgxvE
>>115
第二版が出てるよ
wikiかご本人のブログでチェックしてみれ
118名無しさんの野望:2010/11/13(土) 00:15:51 ID:M/GZFneC
>>115
それって一つの頂点に5つ以上のVertexGroupがWeightとしてAssignされているから
です。本来は4つ以下である必要が。
EditModeで各頂点のTransformPropertiesのVertexDeformGroupeのリストを見れば
ボーンが5つ以上最大で9つ割り当てられている頂点がたくさん見つかる気が。

原因は恐らくBlenderでWeightを付ける作業上の何かなのでその辺をやり直してみると
状況が変わるかもです。
119名無しさんの野望:2010/11/13(土) 01:46:19 ID:oYt5hbIr
>>114
詳細なご解説ありがとうございました、感謝いたします
確かに待ち時間までに魔法が止まってしまうおそれはありますし
それに対して、アイテムのスクリプトなら所有している限りは発動してくれますね、目から鱗です

本題の方なのですが試してみたところ、魔法の効果でTokenを一つ与えるところはまでは問題なく動いております
ですが、トークンにスクリプトを持たせると
上記のRestoaIPと同じ同じ症状で、魔法がヒットした瞬間に固まったりエラーを吐いてしまいます

問題に関連するtokenのアイテムスクリプトとしては大体以下のような記述をおいています
tokenの条件付けによる動作は切った状態で試しているため(tokenを持っていても何も起きません)
そちらが原因ということは、おそらくないように思えます
ご助言をいただき、更に甘えてしまいますが
何か致命的な過ちを犯していたら、識者の方のご指摘をいただけると、大変有り難いです
*このスクリプト開始時には、魔法の結果として既にTokenが一つ付与された状態です
ref me
short Rank
float timer
Begin GameMode
set me to GetSelf
If me.getitemcount Token >= 1

if Rank == 0
set timer to timer + GetSecondsPassed
set Rank to 1
elseif timer >= 2 && Rank == 1
me.additemNS Token 1
set Rank to 2
elseif timer >= 3 && Rank == 2
me.removeitemNS Token 2
set Rank to 0
endif endif end
120名無しさんの野望:2010/11/13(土) 01:47:46 ID:oYt5hbIr
またタイマーについては、減算方式を見よう見まねで試してみましたが、こちらでも同じでした
121名無しさんの野望:2010/11/13(土) 01:57:57 ID:Iu3dRpmt
>>118
オリジナルデータを見てみたらざっと見た感じ最大5にしているようです
本来は4ではなく、だいたい4ぐらいのものだと考えていました
これによるゲームへの影響はシステムへの演算負荷と考えたらいいんでしょうかね
122名無しさんの野望:2010/11/13(土) 08:02:35 ID:j8u3LERu
>>119
me にアイテムを所持している人をセットするには、
set me to GetSelfではなく、set me to GetContainer とします

確認ですが、
これはToken自体に付けたスクリプトで、自分自身をaddItemして数を増やすことがある、ということ?
だとすると、その増えたToken自体もスクリプト付きで、独自に動作するので制御しにくいと思います

Tokenの数を制御するスクリプトは、また別のnon-playableアイテムに付けて1箇所で制御した方が楽かと
魔法の方ではTokenと同時に、スクリプトでTokenを制御するアイテムを1個だけaddItemする、という形で

あと、処理終了時にこのnon-playbleアイテムを取り除くことになりますが、removeItemを使ってはだめです
自分自身を取り除くときには、RemoveMeを使います

とりあえず気付いたのはこんだけ
123名無しさんの野望:2010/11/13(土) 09:48:41 ID:M/GZFneC
>>119
やっぱり確認ですけど。
そのスクリプトはObjectID名が「Token」のオブジェに付けてあり、目的の動作は、
アクターにそのTokenを一つAddして2秒経つと同じものがもう1個追加され、3秒経った
ら全部Removeする、というかんじに見えるのですが、それで合ってます?

だとすると同じスクリプトの付いたアイテムをまたAddして数を増やすと話が非常に
ややこしくなると思います。
やはりタイミングやトークンの数を制御するスクリプトを付けたアイテムとトークン
自体は別物にした方が。その他も上の方の仰る通りです。

で、それって例えばアニメ再生関係の話だったりします?
あるアニメを2秒再生して次に別なアニメを一秒再生して、みたいな事でしたら別な
方法もあったりします。

それ以外でも場合によってはトークンを使う必要は特に無かったりするので、大体の
大枠の目的を教えてもらうと話が早いかもです。
124名無しさんの野望:2010/11/13(土) 09:57:41 ID:M/GZFneC
>>121
確かにバニラnifでも「6」ぐらいまでは見た事ありますけど。
でも一つのnifで5以上は数十頂点程度だった気も。全部は調べてませんが。

上の話は、NifSkope推奨のデフォが本来「4」なので、デフォでMakeSkinPartitionする
なら「4」以下の必要がある、という事です。
Maxが「4」より大きい必要があるのなら5,6と自由に増やしてもらってOKだと思います。
というか見た目に動けばOKなら別にMakeSkinPartitionをする必要は無いです。多分。

で、その数が大きければ演算負荷も増えるのでしょう。恐らく。
ただ、実際に何がどのぐらい増えるかは多分描画系やPCの構成次第だと思います。
またObの場合それが幾つまでOKかは謎です。
125名無しさんの野望:2010/11/13(土) 10:28:51 ID:Iu3dRpmt
>>124
レスdです
おおよその予想が外れてなかったのでとりあえず安心です
しかし軽く作るという事は相変わらず難易度高いです
バニラの装備はホントよく出来ています、さすがプロだなぁ
126名無しさんの野望:2010/11/13(土) 11:25:06 ID:ceZqzSKs
まあコンシューマだと一つの頂点に対して基本1、多くて2か3ってのはざらみたいだな
ウェイト付けって一番面倒で精神的にやってらんないらしい
127名無しさんの野望:2010/11/13(土) 11:32:26 ID:aF9VLMNE
pose→bone選択→weightpaint
もしくは
edit→頂点選択→boneにassign
最初のうちはどのくらいの強度でどの部位に付けるかわかり辛いかも知れないけど
自分でポーズ取ってみたり動いてみればだんだんわかってくると思う
128名無しさんの野望:2010/11/13(土) 12:12:08 ID:eesWpkGC
>>122
ありがとうございます、
ご指摘の通りに直したところ、動くようになりました
高い知識と洞察力を持った方が、惜しみなくご教示を下さり
このスレにはとても助かっています

>>123氏もご教示をいただきありがとうございます
ご指摘の通りのようでしたので、お恥ずかしい限りです

>で、それって例えばアニメ再生関係の話だったりします?
実はその通りです、といってもそんなに高レベルのことをやるわけではなく
次次再生しなくてもよくて
魔法効果が現れた後、あるモーションが数秒表示されてから
元に戻るのがありがたいなといった感じです
できましたらお教えいただければとても有り難いです
129名無しさんの野望:2010/11/13(土) 14:57:50 ID:M/GZFneC
>>128
いや申し訳無い、別な方法、と言っても特に画期的でも何でもなく単にトークン
アイテムの代わりにFactionを使う、というだけの事だったのですが。

具体的には、適当なFaction(仮に「AAFaction」)を作り、IdleAnimationsで例えば
「GetFactionRank AAFaction == 0」を条件にして再生は以下みたいなかんじで。

me.SetFactionRank AAFaction 0
me.PickIdle
me.SetFactionRank AAFaction -1

SetFactionRankで指定する値は何でもOKなので、複数のIdleAnimation指定は条件の
値を変えて一つのFactionを使い回しで。

でもこの方法って結局アイテムのAdd/Removeと同じ事なので、処理の雰囲気を少し
変えたかったり、非Playable指定で装備個所無しアイテム宿命のCSロード時のWarning
をどうしても無くしたいマニア向けな気も。
という事で特に拘りが無い限りやはりトークンアイテム方式がいいかもです。
130名無しさんの野望:2010/11/13(土) 16:23:44 ID:q94Y/EEC
こちらに行けと言われたのでこちらでも聞きます

 TESNからHGECをDLしてください。
 meshs\characters\_maleの中に格納されている4つのnifが、上半身・下半身・手・足先のnifになります。
 今回はHGEC用のシャツを作りますので、femaleupperbody.nifをworkフォルダにコピーしてください。

俺はイカちゃんに合わせて、貧乳ボディを素体として創りたいんだが、どうすればいいんだ?
131名無しさんの野望:2010/11/13(土) 16:27:18 ID:96oKn3rx
>>130はあちこちのオブリスレ荒らして回ってるので無視
132名無しさんの野望:2010/11/13(土) 16:33:31 ID:q94Y/EEC
手に入らないものは仕方ないと諦めて、自らでMODをつくろうとする者と
それを邪魔して難癖つけることしかしない者と
どちらが正しいのか。
ここで親切に支援してくれるのなら、他のスレに迷惑をかけることはないだろうが
そういう態度なら他のスレにも聞きまくるほかない
133名無しさんの野望:2010/11/13(土) 16:53:38 ID:eesWpkGC
>>129
とんでもないです、とても面白いし参考になりました
ありがとうございました
皆様からいただいたご助言で、色々と試してみます!
134115 :2010/11/13(土) 21:16:14 ID:YN0ZUaz/
皆様、色々な助言ありがとうございます。
ボーン一個に対して5つ以上のウェイト載せてたのが悪かったんですね。てかnifskopeに英語でそんなの注意書きで書いてあるし。
現在blenderでウェイト再調整中、肩とか鎖骨のボーン鬼畜過ぎる・・・。

ここで、やってることを自分用メモがてら。
服のメッシュの何百、何千ある頂点から一個一個ボーンにウェイトがアサインしてるかどうか確認するのって面倒極まりない。
「Edit Mode」の「Link and Materials」にある「Vertex Groups」から各ボーンを選択して、「Select」を実行すると
選択したボーンにアサインされている頂点がアクティブになるので、それで5つ以上のボーンにアサインされた箇所を探して要らない部分のウェイトを0に。

さらに一度ペイントしてアサインしたけど、ウェイト0で塗り直したからアサインをリムーブしたい場所も沢山発見。
で、blenderで使えそうな機能を発見。
blenderの「Weight Paint」→「Paint」→「Clean Weight」を実行。
これで指定値以下のウェイトが乗った頂点から余計なアサインをリムーブ出来る、ぽい。

レスを読み返すと、MakeSkinPartition無しでもOKみたいな意見がありますが
それやらないとうちの環境だと全く表示すらされないんで。

また何か詰まったら相談に来るかもです。
135名無しさんの野望:2010/11/14(日) 10:28:08 ID:vFWI3DxU
クエスト等の会話の結果として
ギルドを追放するにはどうすればいいのでしょうか?
GetはinFactionという記述があるのに
Setの方はFactionrankしか見あたらず
RANK==0でも加入しているという意味のようなのですが
宜しければ教えてください
136名無しさんの野望:2010/11/14(日) 10:30:08 ID:vFWI3DxU
ごめんなさい、CSwikiでMODの方をみてだめだと思ったら
set -1と描いてありました
とりさげます、スレ汚し失礼しマシた
137名無しさんの野望:2010/11/14(日) 14:22:39 ID:6Fn1UHLY
マントとかヒラヒラした部分を作る場合、地道にウェイトを設定していくしかないんですか?
あとボーンのない武器や盾の場合ヒラヒラさせるにはどうするんですか?
1383:2010/11/14(日) 14:50:25 ID:GsllPS9P
しばらく前にバイクMODでお世話になったものです。
その節は大変お世話になりました。

3Dモデリング無経験者がバイクを自作するのは極めて無謀だということを痛感し、
少し調べてみたらこのNR500はBlenderのフリー素材のものを使っていることがわかり、
流用もOKかもしれないと考えています。

とりあえず「MarkerBike.nif」を入れ替えてみようとしたのですが、
自分で色々やってみましたが、ゲーム上で表示されませんでした。
・nr500.nifと入れ替え(部位の名前を変えたり色々してみた)
・Blenderで何かを編集してnifエクスポート=>「1 BSXFlags」がない

「skeleton.nif」やkfファイルなどと構造が一致していないと表示されないのでしょうか?
skeleton.nifなども同時に作るしかないのでしょうか?
説明が複雑で大変になりそうなら、無視していただいて大丈夫です(汗)
139名無しさんの野望:2010/11/14(日) 16:29:10 ID:yJcgF4z2
質問なのですが、あるオブジェクトをゆっくり移動させたい場合はどのようなスクリプトが必要になるのでしょうか?
SetAngleやposのように瞬間移動するのではなく、rotateのようにゆっくりと動かしながら位置を変えたいのですが
140名無しさんの野望:2010/11/14(日) 16:52:44 ID:YOnvD47G
orogみたいなデカキャラ大好きだけど顔がアレすぎる
スパミュ種族作ってフォークスさんプレイがやりたいなぁ
違法だろうからスルーしてもらっていいんだがfo3のデータから種族作るのって初mod作成には荷が重いもん?
141名無しさんの野望:2010/11/14(日) 19:32:22 ID:VqLMk9Hp
>>138
いや説明が大変とかではなくて、あるユーザーMOD独自のnifについてだけの改造手順を
聞かれても、そのnifの正当性自体がよく分かんなくて結果に責任が持てず答え難い
んですよ。

一般的な話ならクリーチャーにnifを付ける場合は、そのnifのBSXFlagsとNiStringExtra
Dataを適切に指定して(無ければコピペでも追加でも)CSでそのCreature→ModelList
タブでそのnifにチェックを入れればOK、みたいな事は答えられえますけど。
要するにそのMarkerBike.nifやバニラ馬の眼球nifと同じに、て事ですが。

NifSkopeの操作手順的な話でしたら、BlockListで右クリすると色々出てくるので
その中のそれっぽいのを。NifSkopeを二つ立ち上げれば相互にコピペ出来ます。

>>79の件はもういいんですか?
142名無しさんの野望:2010/11/14(日) 19:34:52 ID:VqLMk9Hp
>>139
Rotateって内部的には毎フレームSetAngleしているのと同じ事です。
角度の変化量が少なくて等量だから滑らかに連続的に動いている様に見える訳で。

移動も同様で、例えばGameModeで毎フレーム位置を少しずつ変えてSetPosすれば
ゆっくり動いている様に見えます。

具体的な座標の計算方法とかスクリプトの書き方は状況に応じて色々です。
またオブジェの種類によってはSetPosでコリジョン位置が反映されなかったり、
動かせる距離に限界があったり、物理演算が異常になったりする事も。

その辺って状況次第なので、細かな話が必要でしたらもう少し詳しい状況込みでまた。
1433:2010/11/14(日) 20:16:23 ID:GsllPS9P
>>141
以前そうおっしゃっていましたね…。大変失礼いたしました。

ただ少し説明不足な点がありまして、このnr500.nifもそうなのですが
MarkerBike.nifをBlenderで編集してExportした場合も「BSXFlags」が
なかったりして表示されなかったので、それについてお尋ねしていました。

>>79の件で、Blenderへのインポートに適用できた設定
1)skeletonEdit.nif…「Inport Animation」のみ
2)base_female.nif(人間)…「Inport Animation」のみ
3)MarkerBike.nif…「Inport Animation」と「ImportGeometryOnly+ParetnToSelectedArmature」

>各nifのImportはそのSkeletonオブジェを選択状態にして
>「ImportGeometryOnly+ParetnToSelectedArmature」ボタンをONで。
とありましたが、1)と2)はそれを指定するとエラーになってしまいます。

なので上記の設定でインポートしているのですが、すると
2)の時点で実体がある人間の上に全く無意味なワイヤーフレームができてしまいます。
本来は人間の方にはワイヤーフレームがなくて、
それに実体の位置を合わせるのだと想像するのですが…。

これをクリアしたら、BSXFlagsやNiStringExtra
Dataなどにも取り掛かりたいと思います…。
144名無しさんの野望:2010/11/14(日) 22:06:35 ID:h+eFjUyB
>>143
いやですから無ければコピペなり追加で。

nifってOblivion専用ではなくて別な会社が作った汎用のフォーマットです。
またBlenderもNifScriptもOblivion専用では無くて汎用です。
一方「BSXFlags」てのはBethesda独自のnifの拡張です。
なのでExportされたnifにBSXFlagsが無くても何も不思議ではないです。

で、覚悟を決めてもうステップ毎に一つずつやりましょう。規制中なんでやりとりに
時間はかかるとは思いますが。

Blenderを起動し、Import画面でまず「skeletonEdit.nif」を指定し、ボタン画面で一回
「RestoreDefaultSetting」を押し、「ImportSkeletonOnly+ParentToSelectedArmnature」
を押してON状態にし、「ImportAnimation」ボタンを押してOFF状態にして「OK」を。

どうなりました?
作業状況が分かる様にSkeltonがよく見える位置に視点を適当に変え、Skeletonを選択
状態にしてBlenderの全画面のSSをUPして下さい。
文字が読めればOKなので圧縮率は超高く。BlenderとNifScriptのVerも教えて下さい。

その状態でPoseModeにしてキーを打てばもうkfは作れるのですが、その辺は後で適当に
試してもらうとして、まずはSkeletonのImportだけが正常に出来たかを確認させて
下さい。
1453:2010/11/14(日) 22:28:58 ID:GsllPS9P
>>144
自分にとってはとても助かるのですが、非常に申し訳ないです。
色々知ることができたら、(需要があるかわからないですが)
自分なりにOblivion用の解説ページを作ってみたりしたいと思ってます。

「ImportSkeletonOnly+ParentToSelectedArmnature」は無く、
「ImportSkeletonOnly+ParentSelected」と
「ImportGeometryOnly+ParetnToSelectedArmature」はあります。
後者は必ずエラーになり、前者ならかかしのような人間が表示されました。
http://moto4life.web.fc2.com/material/bl01.jpg
※直リンクなのでFC2の特性上、Firefoxからだと見れない可能性があります。IEなら必ず大丈夫です。

・Blender v2.49b
・Blender Nif Scripts v1.5.7 windows ←v2.xだとImport/Exportのメニューが出ません…。
146名無しさんの野望:2010/11/14(日) 23:49:23 ID:3muqiRwS
>>145
あ、申し訳無い、「ImportSkeletonOnly+ParentSelected」です。
そのSSの案山子状態で正解です。
というか日本語Blenderってあるんですね。用語が混乱しないか心配な気も。

で、次に体nifのImportですけど、まずバニラのheadhuman,upperbody,lowerbody,hand,
footの各nifを用意して下さい。female〜でも多分OKです。
上でも言いましたけど、バニラ以外のnifは動作に責任は持てないです。

用意が出来たら、Skeletonを選択状態のままImport画面で例えばheadhuman.nifを指定、
ボタン画面で「ImportGeometryOnly+〜(後半部は間違い易いので省略)」を押して
「OK」を。「ImportAnimation」はOFFです。

で、オブジェの位置操作の為にObject→TransformPropertiesを出し、Importした頭を
選択してそのTransformPropertiesの「LocZ」を+1.0します。これで頭とSkeletonのズレ
が無くなるはずです。
以降Skeletonの選択→体nifのImport→LocZ+1.0を必要なだけ繰り返します。

体nifが全部Import出来たらPoseModeで各ボーンを動かして体メッシュが追従して動く
か確認を。それが正常なら体nifのImportはOKです。
blend形式でのSaveは別にいつでもOKなのでこの辺で一度Saveしとくといいかもです。

問題が無ければSSはいいですけど、経過を見たい人もいるかもなのでUPしても。

後はバイクnifを同様にImport、SceneRootオブジェのZ位置を調整すればImportは終り
なんですけど、バイクをBlender上で動かすには他にWeight付け作業が必要なので
手順的に少しややこしくなるかもです。

という事で今日はこの辺で。
147名無しさんの野望:2010/11/15(月) 06:38:18 ID:AUkjge+T
すいません、Blenderを初めて使おうと思ったんですが
Tonaさんのチュートリアルを参考にしてるんですが
メッシュをインポートするのにFile>import>Netlmmerse/Gamebryo(.nif)というのがなくて
始めることすらできなくてどうすればいいのかわかりません
どうすればいいのでしょうか?

http://www.dotup.org/uploda/www.dotup.org1251052.png
148名無しさんの野望:2010/11/15(月) 06:42:43 ID:3O6lY5mR
149名無しさんの野望:2010/11/15(月) 06:45:14 ID:AUkjge+T
>>148
exeは持ってるんですけど、インストールしようとすると
先にBlender入れろよ、みたいな警告でるだけで
150名無しさんの野望:2010/11/15(月) 06:55:33 ID:AUkjge+T
>>148
すいません、導入できました。
他にも必要なものあったんですね。
自分が早漏でした。
スレ汚しすみません。
ありがとうございます。
151名無しさんの野望:2010/11/15(月) 07:20:04 ID:3O6lY5mR
>>149-150
お、導入おめでとう
MOD完成楽しみにしてるよ(・∀・)
152名無しさんの野望:2010/11/15(月) 15:38:33 ID:xUKWHz/T
あー、ちょうどNifScriptの話が。

>>145
Verはやっぱ2.5台の方がいいかもです。導入の確認を。

あとBoneに体メッシュが追従するかの確認の時ですけど、Skeletonオブジェを選択→
PanelsのEditing→Armature→EditingOptionsの「X-Ray」ボタンを押すと、Boneが
体メッシュに隠れずに見える様になって選択し易くなります。
1533:2010/11/15(月) 15:38:56 ID:zLCrA43+
>>146

>日本語Blender
Blender内の設定で色々と言語設定ができます。ちょっとだけイージーになります。
しかし英語とワード自体が違うことがあるので、適宜英語に戻したりしたいと思います。

体nifのインポートですが、「Blender_KF_SupportPack_0_4」のものは
インポートに成功しても表示されず、バニラでないとダメでした。男にしておきました。

全ての体nifのZ軸方向への1.0の移動も完了し、体もちゃんと回転できます!
http://ime.nu/moto4life.web.fc2.com/material/bl02.jpg

ここからは、MarkerBike.nif(こちらが基準)とnr500.nif(試験的)の両方で試してみたいと思います。
SceanRootを選択状態にしてMarkerBike.nifをインポートすると以下のようになりました。
http://ime.nu/moto4life.web.fc2.com/material/bl03.jpg

また他MODの話で申し訳ないのですが、nr500.nifの場合はこんな感じに。
http://ime.nu/moto4life.web.fc2.com/material/bl04.jpg
nr500.nifは横に倒れて後ろを向く設定のようです。ゲーム上はこれで正常っぽいです。
1543:2010/11/15(月) 16:23:15 ID:zLCrA43+
>>152
Blender NIF Scripts ver.2.5.5にしました。問題なく使えるみたいです。

以前、2.5.xを入れたとき、Import/Exportにnifが出なかったのは
インストール要件をしっかり守ってなかったからだと思います。
1)Blender ver.2.49b
2)Python ver.2.6.4   ←2.6.5をインストールしてた
3)PyFFI ver.2.1.5
4)Blender NIF Scripts ver.2.5.5
の順番にバージョンを守ってインストールが必要みたいです。
155名無しさんの野望:2010/11/15(月) 18:49:56 ID:anX7FHmD
>>153
あれ、バイクのImportまで行ってたんですか。

MarkerBike.nifのImport自体はそれでOKです。
全体の位置が下にズレるのはゲームでの表示の辻褄併せにバイクnifの「SceneRoot」に
Bip01SpineBとの位置が合う様に暫定的にその値が書いてあるからです。

その下に沈んだ状態の修正は、ヒトの足の下の「SceneRoot」オブジェを選択して
TransformPropertiesでLocZを「0」に。

あと、少し話が逸れますが。

本来はMarkerBikeのモデルはBip01SpineBの位置を原点にするのが筋な気もします。
でも今その辺の話をするのは混乱の元な気がするので、モデルの座標には色々な考え方
や方法があり、このサンプルのnifや方法手順だけが別に唯一では無い、という事だけ
をとりあえず頭の隅に。

で、また別な一般的な話ですが、明らかにObと違う座標系で作られたモデル(NiNode/
TriStripesの変換では無く、Y:P:Rが0の「素の状態」で横倒しだったりひっくり返って
たり前後が逆だったりするモデル。ObはY正方向が「前」でZ正方向が「上」)の修正は、
NifSkopeでNiNode/NiTriStripesに好きな移動/回転変換値を入れて右クリ→Transform
→Applyで出来たりします。
156名無しさんの野望:2010/11/15(月) 18:51:04 ID:anX7FHmD
続き)
話が逸れましたが。手順の続きを。

Importはそれで全部です。でも上でも言いましたけど、バイクの絵はそのままでは
Boneに追従しないのでWeightを付ける作業が必要に。

まずバイクの「Frame」オブジェを選択、Shiftを押しながらSkeletonを選択して二つを
同時に選択した状態にし、Object→Parent→MakeParentしてMakeParentToで「Armature」
を、CreateVertexGroups?で「NameGroups」を選びます。

次にFrameオブジェだけを選択し、EditModeにして全頂点を選択します。
「A」キーを何度か押してワイヤーフレーム全部が明るくなれば全選択状態です。

その状態でPanels→Editing→Link and MaterialsのVertexGroupsのBone名(多分最初
は「EntryPoint」となっているはず)の左のボタンでBoneのリストを出し、
「Bip01 SpineB」を選び、「Weight:1.000」なのを確認して「Assign」ボタンを。
これで一つのオブジェのWeight付けは完了です。

同じ事をバイクのFWheel,RWheel,FFork,Seat,SBar各オブジェに。これでバイクと
乗員が一緒にBip01SpineBに追従して動きます。確認を。

これで初期状態を作る作業は全部終わりです。
後はヒトアニメを作る手順と同じです。
157名無しさんの野望:2010/11/15(月) 20:49:02 ID:AUkjge+T
すいません、Tonaさんのチュートリアル参考に、とりあえず作ってるんですが
UVマップ作成のところで
UV Face Select UV/Image Editer
の選択がないんですが、これもなにか特別なソフト必要なんですか?

http://www.dotup.org/uploda/www.dotup.org1251837.png
http://www.dotup.org/uploda/www.dotup.org1251841.jpg
158名無しさんの野望:2010/11/15(月) 21:05:54 ID:b5Bd/68/
>>157
Version違うだけだと思うよ
俺も無いけど別にUVマップ作るのに不自由しないしな
Editモードで切りたいところを選択してCtrl+Eでマークして展開するだけ
159名無しさんの野望:2010/11/15(月) 21:24:48 ID:SmIr9uOh
俺もそれで1日費やしたわw
そのチュートリアルはBlenderのバージョンが低いんだよね
最近のBlenderはUVがエディットモードに統合されてる
エディットモードでUを押すか、Meshの項目にUV展開があるはず
Blenderはバージョンによっていろいろ変わるんだよな
おかげでちょっと古いチュートリアルとかだと参考にならないときがあるぜ
160名無しさんの野望:2010/11/15(月) 21:40:52 ID:AUkjge+T
>>158‐159
なるほど。
ちょっとした改変でもここまでいちいち設定しないといけないんですね・・・
161名無しさんの野望:2010/11/15(月) 22:05:05 ID:iyQG+p+v
つうかブレンダーのUIが統一されなさすぎでわけわかめ
162名無しさんの野望:2010/11/16(火) 09:49:39 ID:xCVoRbgA
質問なのですが、現在worldspaceでの作業で困っています。
Tamrielを親とするworldspaceを作成したのですが、遠くを見た際に色々妙な事になります。
具体的な例で言えば、ICから見たコロルが空中に浮いている・コロルから見た場合ICの建物が見えない、などです。
Tamrielと同様の遠景を、このTamrielを親とするworldspaceでも使用したい場合はどのようにすればよいのでしょうか?
163名無しさんの野望:2010/11/16(火) 10:30:31 ID:KGwCNHpW
blenderで髪型をいじってみたけど何かいろいろとダメだった
参考になるサイトがあれば教えてほしい
164名無しさんの野望:2010/11/16(火) 11:04:57 ID:zicuZlq1
何がダメだったかによります
Blenderの操作自体なら有名どころがすぐ引っかかると思いますが
髪型のことならここでSS付で質問したほうが早いかも

オブリ系のブログとかでも断片的な情報はあると思いますが、なかなか探してる情報は無かったりしますし
情報の揃ったとこがあったとしても個人ブログとかはさらせませんしね〜
165名無しさんの野望:2010/11/16(火) 12:39:25 ID:KGwCNHpW
>>164
回答ありがとうございます
tona氏の装備mod製作チュートリアルを参考にして
二つのの髪型をくっつけてエクスポートしただけの物なんですが

http://shy.jsphr.net/upload/img/ups20234.jpg

こうなります
166名無しさんの野望:2010/11/16(火) 12:44:21 ID:uK1+MEed
アルファ病か
前スレ↓が参考に
OBLIVION MOD作成支援/相談スレPart6
ttp://yuzuru.2ch.net/test/read.cgi/game/1269312819/862
167名無しさんの野望:2010/11/16(火) 13:50:02 ID:zB9gZSGU
>>165
内側のmeshから順に貼り直せば直る
Editで内側のメッシュの頂点選択、Ctrl+Lでmesh選択してコピー、元を削除
後nifskope上でおかしく見えてもゲーム内で大丈夫ってこともあるからちゃんと中で確認した方が良い
168名無しさんの野望:2010/11/16(火) 15:17:31 ID:OSJUAj/M
ここ見て、おっし!俺も!と思ってBlender2.49入れて、nif scriptとかも入れて、
おっしゃ!と適当な装備品インポートしたら、Editモードにできなかった…

TABキーで最初からある箱はEditモードにできたのになぁ…
どこの解説サイト見ても、「TabキーでEditモードにして編集してね」って書いてある
もうね、俺、センスとか技術とかそういう問題じゃない世界に突入しちゃってるよ
169名無しさんの野望:2010/11/16(火) 15:23:06 ID:zB9gZSGU
メッシュ選択してないんだろう
170名無しさんの野望:2010/11/16(火) 15:32:17 ID:KGwCNHpW
>>167
ありがとうございます
早速やってみたところ完全には直りませんでしたが大分マシになりました
感謝です

それともう一つかなり初歩的な問題ですが、そもそも髪に色が着けれませんでした
あまりにも前知識が足りなくて泣きそう
171名無しさんの野望:2010/11/16(火) 15:39:49 ID:zB9gZSGU
>>170
VertexPaintを確認
白がテクスチャの影響を強く受けて黒はテクスチャの影響を受けない
172名無しさんの野望:2010/11/16(火) 16:16:06 ID:OSJUAj/M
>>169
いや、その状態でDELETE押せば削除できるから、メッシュは選択されてると思うんだけど…
173名無しさんの野望:2010/11/16(火) 16:41:16 ID:KGwCNHpW
いろいろ違った
マシになったと思った透過はテクスチャ変えたからだった
VertexPaintも黒白灰と試したけどCSではなんの変化もなし
そもそも手順がぶっとんでる気がする

blenderで合成したい髪をインポート

いらない部分を削除

ctrl+Jで結合

materialをひとつにしてエクスポート

nifskopeではテクスチャくらいしか弄ってないし端折りすぎだろこれ
174名無しさんの野望:2010/11/16(火) 17:48:34 ID:6F6YAlIZ
>>162
視界の開けた巨大子供WorldSpaceを作ってたりしません?それか超高空とか。

もしそうならちょっとややこしい話になるかもです。

遠くの建物が浮いて見えるのは恐らくその領域の地表LODが表示されていない
からです。多分。
TamrielはCell数が通常のWorldSpaceより多く、地表LODの数も多くて他に比べ遠く
まで見渡せます。
でも子供WorldSpaceは親の事情とは関係無く自分を中心にした最低限の32x32Cellx4の
範囲しかLODを表示しないかもです。

Tamrielの子供で遠くまで見渡せる様なWorldSpaceはバニラには無いのでシステム自体
が元々その辺を考慮していない可能性が。

なので現在のCell座標から最短で16Cell程度離れた位置の地表が表示されなかったり、
建物なんかの遠景オブジェも表示されなかったり欠けたりするかもです。

で、以前少し試してみた事があるのですが、そのWorldSpaceをTamrielの子供ではなく
独立した普通のWorldSpaceにしてMapDataをTamrielと同じにし、Tamrielの地表LODの
nif/dds、遠景オブジェのファイルを全部コピーして各ファイル名をそのWorldSpace
相当に変えればTamrielの遠景がまんま表示されるかもです。

とりあえずここが多分参考に。

http://cs.elderscrolls.com/constwiki/index.php/Landscape_LOD_Tutorial

でもLODを一から作る話とも少し違うと思うので、何か謎な事がありましたらまた。
1753:2010/11/16(火) 18:58:32 ID:B4SbPoBg
>本来はMarkerBikeのモデルはBip01SpineBの位置を原点にするのが…
>で、また別な一般的な話ですが、明らかにObと違う座標系で作られたモデル…
大変興味深いです。
たしかに、例えば宇宙での乗り物だったら地表とは違う座標になるかもしれませんし、
そもそも使う環境によってXYZ軸の方向が違うということですね。
NR500が倒れてたり地面から生えてたりしたら「NiNode/NiTriStripes」をいじってみます。

全てのバイクオブジェでWeight付けした後、PoseモードでBip01 SpineBを動かしたところ、
体全体とバイクが連動して動きましたが、Bip01 PelvisBとBip01 NonAccumBは動かず残りました。
これで正しいでしょうか??

ポーズを作ることができました。
http://ime.nu/moto4life.web.fc2.com/material/bl05.jpg
kfファイルとしてExportしても、NifSkopeで設定を上手く変更しないとまだ使えないみたいですね。

こちらも規制対象になったみたいです…。書き込めません…。
一時的に携帯から書き込みました。
176名無しさんの野望:2010/11/16(火) 20:39:31 ID:MNISgCwZ
>>175
座標系については「右手系」「左手系」とかで検索してみて下さい。
また各軸の意味は、Xが左右、Yが上下、Zが奥行き、みたいな考え方をする場合も
あったりします。
ツール環境や目的によって座標の方向や意味は色々、て事です。

そういう色々な環境や解釈で作られたモデルをObに持ってくると横倒し/上下逆/前後逆
になったりすることがあり、その修正はBlenderだけでなくNifSkopeでも出来る場合が
あるよ、という話です。

で、Bip01SpineBを動かしてもその親Boneが動かないのはそれでOKです。
前進/後退でバイクを動かす時は「Bip02」を動かします。
例えばウィリーさせる、みたいな場合に、Bip02を「前」に動かしながらBip01SpineB
(PelvisBでも多分NonAccumBでも)を回転/移動させて相対的なバイクの位置や向きを
作ります。

またPelvisやSpineというのは動物の場合の命名規則に倣っているだけなので、Boneの
名前自体は実は「Frame」でも「Seat」でも「ABC」でも何でも良かったりします。

あとkfの設定は、相当する馬kfとNiControllerSequenseの名前とCYCLE_TYPEを同じに
してTargetNameを「Bip02」にすればOKです。
TimeLineとかTextKeyの指定はヒトポーズやアニメを作る時と同様に必要なフレーム数
やキーを指定で。
177名無しさんの野望:2010/11/16(火) 20:46:05 ID:FD/qTkBw
>>172
objectを複数選択してるとeditモードにならない
複数選択で削除は出来る

確認してちょ
1783:2010/11/16(火) 22:18:11 ID:B4SbPoBg
>>176
できましたぁぁ!!
・Idle        http://moto4life.web.fc2.com/material/bl06.jpg
・Forwardでウィリー http://moto4life.web.fc2.com/material/bl07.jpg

出力されたkfファイルを、もともとあったIdle.kfやForward.kfと比べて
・ファイル名を一致
・「0 NiControllerSequense」の名前を一致
・「0 NiControllerSequense」の中にある「TargetName」を一致(Bip02へ)
・「NiTextKeyExtraData>TextKeys」内のTextKeys2つの「Value」を一致
以上で置き換えることができました!

連続で申し訳ありませんが、疑問があります…。すみません。
Blenderで決めたBip02での前進後進の移動量は、ゲーム中での移動距離に直接影響するのですか?
とすると、CreatureのSpeed以外に、kfファイルでスピードも自在に変更できることになります?

GameModeブロックでIsKeyPressed3を使って<Fキー>を押したらウィリーなどと設定したいのですが、
任意のkfファイルを再生させるためにはどうすればよいでしょうか…??
ポーズMODを見ても理解できませんでした。
179名無しさんの野望:2010/11/17(水) 03:30:53 ID:QYqQfHMM
>>174
非常に分かりやすい説明でホントありがとうございます
ページを参考にして頑張ってみようと思います
180名無しさんの野望:2010/11/17(水) 03:33:40 ID:wypB2CxB
player.Playgroup って、もしかしてモーション中は移動操作受け付けなくなります?例えば
player.Playgroup CastSelf 0
で、前進中に再生が入ると、終了まで前進し続ける、みたいな。
いや、そんなことないよ、って言われた方がありがたいのではあるのですが。
181名無しさんの野望:2010/11/17(水) 11:23:53 ID:9zc8RZTY
>>178
おー、動きましたか。よかったです。

後は好きなバイクのモデルを必要ならBlenderなりNifSkopeで素の状態で
MarkerBike.nifと同じ位置/向きになる様に加工すれば同様にゲームに出したり
kf作成用のImportが全く同じ手順で出来るので応用はご自由に。

で、ゲームでの前進後退の移動距離はkfの移動距離を変えれば変わります。
でも移動距離とフレーム数って、馬の場合は足の動きの周期と歩幅の結果ですし、
バイクなら車輪の回転数と円周で一意に決まると思うので、結局アクターのSpeedで
移動アニメを早く/遅く再生するのと同じ事だったりするかもです。

任意kfの再生はIdleAnimationsの指定を。クリーチャーもNPCと同じです。
条件はトークン用アイテムのGetItemCountでも上で出たFactionでも。
相手がバイクならトークンアイテムは多分何でもOKです。有り物のリンゴでも何でも。
IsKeyPressed3でのキー入力検知はここの二つ目のコード例を。

http://cs.elderscrolls.com/constwiki/index.php/IsKeyPressed3

その例のif文の前に「set MyKey to 33」と書き、そこの「do stuff,〜」に例えば
トークンアイテムがAppleなら、

AddItem Apple 1
PickIdle
RemoveItem Apple 1

と書いてバイクにそのスクリプトを付ければとりあえずは動くと思います。
でも多分PCが乗っていなくても動くのでリモコン操作も出来てしまうかもですが。
またIsKeyPressedは環境によってはOblivion.iniの「bBackground Keyboard」とも関係
するので、動かない場合はその辺の確認も。
182名無しさんの野望:2010/11/17(水) 11:25:29 ID:9zc8RZTY
>>180
あー、そうなるかもですね。
PlayGroupの後に動けなくなるのは「PlayGroup Idle 1」で復帰はしますけど、
多分そうではなくて再生中に操作が出来無い事が問題なんですよね。

CastSelfだけの話なら「Player.Cast XXXX Player」ではダメなんでしょうか。
また他の動作もOBSEの「TapKey」や「Holdkey」でその操作キーが押された事にすれば
PlayGroupと見た目同じ事になるかもです。
183名無しさんの野望:2010/11/17(水) 14:39:51 ID:NglYfDua
全力スレで誘導されました。

うまく説明できませんが、服の部分のテクスチャは普通に貼られるのに
ボタンのテクスチャだけリピートになってしまいます。

ボタンの質感だけ変えようとして、マテリアルを二つにしたのが原因かなと思い
マテリアルを一つに設定し直したのですが、変化はありませんでした。
ただ黄色のベタ塗りにしたいだけなのに・・・。

http://shy.jsphr.net/upload/img/ups20229.jpg
184名無しさんの野望:2010/11/17(水) 14:44:15 ID:+19oh/xL
Flip Normalは?面がちゃんと外向きになってるか確認
VertexPaintでtextureの影響を受けるようになっているか確認
185名無しさんの野望:2010/11/17(水) 14:51:02 ID:563Bc2xd
>>183
blenderでUV再設定するしかなさそう
nifskopeでやるなら、たぶんUVのボタンの頂点があっちこっちに飛んじゃってるからNiTriStripsを右クリックTextureのEditUVで
ひとつずつ頂点を移動させてやればいけるかな
左クリックドラッグで動かしたい頂点を指定してその頂点を左クリックドラッグで移動させる
Ctrl+Zでアンドゥできるから
186名無しさんの野望:2010/11/17(水) 18:09:16 ID:wypB2CxB
>>182
ありがとうございます。んー、やっぱりですか。

魔法に失敗要素を持たせようとしているのですが、要素はともかく結果をどうしたものかな、と思いまして。
PlayGroupを割り込ませると確実に動作をキャンセルできるようですが、再生中身動きできないというジレンマが。

他にScriptEffectでコストゼロのダミー魔法を作って・・・というところまで考えたのですが、
まずは本来Castされるはずの魔法を止めないとどうにもならないですよね。

スクリプトもMOD作成も素人ですので、Wikiを見ながらぼちぼちやってみます。
・・・でも煮詰まったらまた相談に来させてもらうかも。
1873:2010/11/17(水) 20:22:35 ID:Cl9ZL9dj
>>181
アクターのSpeedは、kfファイルの再生の速度なんですね。
確かに、馬のSpeedを255にしたら、足をバタバタさせてました。

>バイクなら車輪の回転数と円周で一意に決まる
この辺りがすんなりわかってしまうのが、やっぱり凄いなぁと感動しました!


任意kfの再生を試したかったのですが、その前に問題が…。
おっしゃる通り、他MODの流用にはトラブルがつきものだと痛感しました…。

NR500のオリジナルnifで、素直にkfファイルを出力した結果がコレです。
http://ime.nu/moto4life.web.fc2.com/material/bl08.jpg

NR500の方はnr500.nifの「0 NiNode」の「Rotation」を変更すれば真っすぐになり、
人間の方はkfファイルの「Bip01 NonAccum」の「Rotation」を変更すれば真っすぐになりました。
http://ime.nu/moto4life.web.fc2.com/material/bl09.jpg

しかし、まだ位置ズレがあります。
出力されたkfファイルをエクスポートする度にこれらを修正するのはかなり手間になるので、
いっそBlenderで編集の時点で横にして編集すれば良いのではないかと考えたのですが、
これは可能と考えられるでしょうか…??
最初の写真から、左に90度向いてそのまま地面に倒せば、そちらが正面になりそうですが…。
188名無しさんの野望:2010/11/18(木) 00:05:47 ID:3JZ0eA+o
>>186
目的はプレイヤー操作によるCastが起きた時に、動きや操作は通常通りで魔法が出るの
だけをキャンセルする、て事でしょうか。だとするとCastが起きた時に例えば、

PlayGroup CastSelf 1
PlayGroup Idle 1

と続けて実行すれば行けるかもです。AnimGroupの種類は状況に応じて。
実行のタイミングは操作によるCastが開始した直後のフレームより少し遅らせた方が
いいかもなのでその辺要テストですが。

でも単に魔法だけが不発で後の動きは全くそのままだと、魔法の失敗というよりは
システム上の何かの不具合みたいに見えそうな気も。

他にもPriorityがCastより高いSpecialIdleを再生してCastのHitキーを再生させずに
魔法をキャンセル、みたいな方法もあると思います(いわゆるポーズの再生と同じ事
です)。
この場合移動操作は下半身のProority次第で可能にも不可能にも。
爆発音や失敗っぽいEffectShaderと併せて魔法が暴発してよろめく、なんて事も多分。

技法的には色々可能だと思うので、その辺何をどうするかは演出上の要求との兼ね合い
だと思います。
189名無しさんの野望:2010/11/18(木) 00:07:36 ID:3JZ0eA+o
>>187
うーん、どうしましょ。
モデル自体を直さずにNiNodeの回転やkfで辻褄を合わせると後々に禍根を残す事に
なりそうな気がするですよ。

>>181で言ったのは、そのモデルをNiNodeでの辻褄合わせの回転が無い「素の状態」で
MarkerBikeと同じ向きになる様に加工すればMarkerBikeの代わりにそのまま何もせずに
入れ替えて使えるよ、て事です。

具体的には、そのモデルの0番NiNodeのTransformとRotationを全部0にして素の状態
にし、MarkerBikeと同じくY軸正方向が「前」になる様に0番NiNodeのRotationのRを180に
して0番NiNodeを右クリ→Transform→Applyすれば修正自体は終りです。
後は0番NiNodeのTransformとNiStringExtraDataのBone名をMarkerBikeと同じにすれば
互換になります。

そのバイクモデルの修正の具体手順って実はこれだけです。
出来れば直接の手順の話は避けたかったので色々回りくどい言い方をしてしまって
分かり難くて申し訳無かったのですが。
190名無しさんの野望:2010/11/18(木) 01:02:20 ID:VYh/JDLk
>>188
一番目の方法は始めに思いついて試してみたのですが、やはりPlayGroupの動作中は融通が利かないようです。
(後にidleを入れることでモーションが固まるのを防ぐことはできると思いますが)

その後、参考になりそうなMODを探していたところ、AudaciousMageryというMODに気になる記述がありました。
曰く、「Cast時に、player.AddSpellでAbilityのSpellを追加することで、魔法効果をキャンセルできる」そうです。

(略、魔法の成否判定)
player.AddSpellNS XXXX
player.RemoveSpellNS XXXX

とすることで、モーションはそのまま、魔法は不発という状況を作れました。
後はmessageなりSoundなりを追加すれば、一応は失敗の確認をとれると思います。

ただ、作者自身も理由はよくわからないようで、
adding an ability to the player interrupts the casting... who knew? と言ってますので、
もしかしたら、仰られたようにOblivion自体が持つ不具合かもしれません。
ご助言ありがとうございました。
まー、メインは判定方法なので、ここからが本番なのですが・・・w
191189:2010/11/18(木) 01:06:48 ID:aDfMNQKT
誤) NiNodeのTransformとRotation
正) NiNodeのTranslationとRotation

です。「移動」です。NiNodeのX,Y,Zの事です。二個所も間違えてます。
もうね、寝ます。
192名無しさんの野望:2010/11/18(木) 01:33:54 ID:YauoZXm+
>>190
あれ、それと同じ様な例が前スレ913,914にありますね。
Cast中にエンチャント付き装備をEquipすると魔法が不発になる、て話です。
Abilityでも不発になるって自分で書いてますし。やっぱもう寝ます。

動作が固まるのは多分タイミングによります。
実際に試しましたがユーザー操作のCastが始まった直後は多分マズいです。
数フレーム以上待てばOKだと思います。
193名無しさんの野望:2010/11/18(木) 05:57:40 ID:tEEsCPsj
NPC等特殊なキャラではなく、一般NPCが戦闘時にどんな回復/支援魔法を優先的に使うか
もしおわかりになっている方がいらしたらアドバイスをいただけないでしょうか?

体力が一定以下になった際に、この回復魔法を使うと
この演出が起こる、といった感じに使いたいのですが
種族スペル欄やNPC個別スペル欄に追加したスペルをなかなか使ってくれません
(おそらくclassごとのleveledspellや、Breton種族のシールド能力などは
見ていてもわりかし使っているようなのですが)

武器防具などは、Classごとの得意武器や
装備箇所や総合評価の高いものを使うといった感じがあってわかりやすいのですが
魔法にもなにか似たような基準があればと
194名無しさんの野望:2010/11/18(木) 06:03:53 ID:tEEsCPsj
×NPCなど特殊な
○MPCなど特殊な
でした、失礼しました
195名無しさんの野望:2010/11/18(木) 08:54:43 ID:tEEsCPsj
すみません、使ってくれるようになりました
取り下げます、失礼しました orz

ただ戦闘開始時や終了時ではなく
戦闘中に回復支援魔法を使う頻度というのは
どのあたりの影響を受けて決定されるのですかね?
攻撃性や勇敢さといったAIの数字を
わりと下げても、死ぬまで回復を使わないで頑張ってしまいます
combatstyleにはあまりそんな感じの項目はありませんし

stopcobatをかけると
その場で回復魔法を使用して回復をはじめるので
回復を持っているという認識?はしているようなのですが
196名無しさんの野望:2010/11/18(木) 14:50:48 ID:36V9OJCQ
>>184
>>185
ありがとうございます。
EditUVを見た所、ボタンのUVだけメチャクチャになっていました。
nifskopeでの修正は困難なのでblenderで再設定しようと思います。
197名無しさんの野望:2010/11/18(木) 16:38:11 ID:Bu96E0yE
>>196
editでボタンの頂点を1つ選択、Ctrl+Lでボタン全体を選択してUVUnwrapでおk
マテリアル一緒にしてくっ付けた場合でも簡単に選択できるから覚えておいた方がいいよ
1983:2010/11/18(木) 18:55:55 ID:gRBFPsxJ
>>189
手順を皆まで言わせてしまってすみません…。
>>155にだいぶ具体的な手順が書いてありましたね…申し訳ないですm(_ _)m

おっしゃる手順を踏んだ後、そのnifをBlenderでインポートしたら上手くいきました!
http://ime.nu/moto4life.web.fc2.com/material/bl10.jpg
http://ime.nu/moto4life.web.fc2.com/material/bl11.jpg

大変ご迷惑をおかけしましたが、おかげ様で壁を乗り越えられました!
自分には全くムリだろうと思っていたので、本当に助かりました! ありがとうございます!
また、スレご利用の皆様にも、見苦しい教えてクンで申し訳ありませんでしたm(_ _)m

今後は全てのkfファイルの置き換えと、ウィリーなどの特殊モーション、
(これはできれば)車輪やハンドルに動きをつける、
レースやジムカーナのようなミニゲームの作成を考えてます(できるかわかりませんが(汗))
あと、教えていただいたことをまとめたサイトも作成中です(まだまだ未完成)。

今後も質問させていただくことがあるかと思いますが、
すみませんがどうぞよろしくお願いいたしますm(_ _)m
199名無しさんの野望:2010/11/19(金) 12:01:08 ID:nRv+pK8i
>>198
おー、なんかいいかんじに。

SpecialIdleでウィリーさせるならkfでBip02とその他BoneのPriorityの大小関係を
うまく指定すると車体姿勢を変えたままで自由に移動操作が出来ますよ。

で、もし>>51のサンプルを元したここでの一連の話をまとめてサイトに、という事
だと、実はそのサンプルってとりあえずはゲームでは動きますけど正当性自体はまだ
未知なのでその辺にご留意を。

例えばCSでPreviewしようとすると大量のWarningが出たりしますし。
(これはモデル指定にSkinInstanceを含むnifが無い、とかその辺だとは思うのですが
全く未確認です)
また人馬一体kfを一発で作る、という作業上の利便の為に特殊なBone名の付け方を
していたりでSkeletonの構成が一般的では無く、システム的な整合や安全性再現性の
保証は無いです。

MODとして最終的な成果物だけを公開するなら「動けばOK、動かなかったらごめんね」
的なポリシーでこのサンプルを現状のまま流用でOKだと思います。
でも確立した作り方の手順として一般化して公開する場合は手法の根拠や正当性の
検証がもう少し必要な気が。

特に手順マニュアル的な厳密な物ではなく、その辺の不確実さも含めての事例的な
ものであれば別に全然OKだとは思うのですが。その辺が少し気になって。
200名無しさんの野望:2010/11/19(金) 14:38:48 ID:JyhQCahg
>>197
UV展開を一からやり直さなきゃと思ってたのですが
Ctrl+Lって凄い便利ですね!
ありがとうございます!
2013:2010/11/19(金) 14:55:08 ID:5gyveVoI
>>199
>SpecialIdleでウィリー
なるほど、ウィリーしながら移動させるにはPriorityを調整すればできるのですね。
ウィリーでステップに立ったまま移動とか、かっこいいかもしれません!

>>51のサンプルのまとめサイト
なるほど…バイクMODを作れたので思わず作り始めてしまいましたが、
必ずしも正しいやり方という保証はないということですね…。

それも含め、私自身には何ら細かい知識がないですので、
そういったことを注意書きで書いておこうと思います。
「動けばOK、動かなかったらごめんね」くらいのスタンスで。。。

現状、こんな感じになってます(すごい途中)。
http://life4oblivion.web.fc2.com/
まずかったら全然All削除OKです。どうでしょうか…。
202名無しさんの野望:2010/11/19(金) 15:15:06 ID:bYboNyjP
武器MODとか作りたいと思うのですが、モデリングとかはMAYAでも出来ますか?
203名無しさんの野望:2010/11/19(金) 15:45:48 ID:LsleS3hz
濃いなぁw騎乗できるクリーチャーに興味あるのでこういう話題はありがたい
204名無しさんの野望:2010/11/19(金) 15:47:22 ID:LsleS3hz
>>202
objでインポートしてBlenderに読み込みnifでエクスポートでできますよー
TesnにnifスクリプトとかセットになったBlenderあるので便利ですよ
205名無しさんの野望:2010/11/19(金) 15:48:23 ID:LsleS3hz
objでエクスポート、でした
206名無しさんの野望:2010/11/19(金) 16:04:52 ID:bYboNyjP
>>204
なるほど、早速試してみます。
一応調べてみたんですが、MAYAのNIFプラグインをダウンロードすることでNIFファイルにエクスポート可能だという事が分かりました。
実際試したところNifScopeでファイルを読み込んでみたところ、メッシュも問題なく表示されました。
この場合Blenderでなくても製作できるということでしょうか?

207名無しさんの野望:2010/11/19(金) 16:24:02 ID:AIT98QW5
3Dツールのことは詳しくないけど、
無料のBlenderで出来て、100万円するMayaで出来ないことってあるのか…
208名無しさんの野望:2010/11/19(金) 16:37:56 ID:0H71xBtq
>>206
横からですが、Mayaは持ってないのであれですが、Modelingだけなら出来るのではないかと思います。
Collision はNifSkopeで設定すればいいですし。

http://niftools.sourceforge.net/wiki/Projects
209名無しさんの野望:2010/11/19(金) 17:34:41 ID:nRv+pK8i
>>201
うお、立派なチュートリアルですね。どうしよう。

そのサンプルはもうこちらの手を離れてしまったのでどの様な形で利用してもらっても
全くOKなのですが、でも正直そのサンプルって適当に試して「あ、なんか動いたかも、
オッケーオッケー」的なノリでUPしてますよ。

そのサンプルの手法の根拠は、一度馬とヒトのSkeletonをNifSkopeでくっつけて
「Bip01〜」と「Bip02〜」が混在する状態にしてBlenderにImport→kfをExportしてみたら
なんかおかしな事になったので、その状況を追求するのも大変そうだし、じゃあ大元の
一つだけを残して後は「Bip02〜」をやめて全部「Bip01〜」にしてしまえ、という非常に
単純で短絡的な発想に基づいています。

そもそもBip01/02が混在すると本当に問題があるのか、もしあるのなら何か対策は
無いのか、という前段階の検証は実はほとんどしていません。

似た様な件で、異種Skeletonを続けてImportすると片方に問題が起きる、という状況を
以前経験した事があるので、Bip01/02が混在していてもダメなのかな、と勝手に憶測
してそれっぽい解決策を試してみただけです。

それが果たしてツールやシステム的に問題が無いかの結論はもう少し様子を見た方が
良さそうな気もしていたのですが。

と言う事で、今後何か致命的な問題が発覚して、「この件は無かった事に」、という
事態になる可能性もある、という事にさえ留意してもらえればもうどの様に使って
もらってもOKです。
210名無しさんの野望:2010/11/19(金) 18:03:32 ID:gEigglse
なんか乗り物MODが徐々に開発が進んでるみたいなんだが
フリーザ様の浮いてる台座作って欲しいなあ・・・
211名無しさんの野望:2010/11/19(金) 18:33:14 ID:KRkCE9vr
>>201
うほ、メモにしょっぱな自分の投稿した文章も載ってて吹いた(笑)

製作関連を解説したサイトって少ないから、このサイト作成のほうも頑張ってほしい。
かげながら応援してます〜w
2123:2010/11/19(金) 19:24:45 ID:5gyveVoI
>>209
立派に見えますか!? ありがとうございますっ!
自分には知識がないので、あくまで教えていただいた事柄を
丁寧に解説しているだけですが、何かのお役に立てばと。。。

Blenderって、妙な仕様で妙なエラーが起こったりしますよね…。
直感的に何かをしようとしても、それはできないってなったり…。

検証はほとんどしていないとありますが、
文章からはそれなりに調べていらっしゃるように見えます…。
また、ゲーム中でも問題なく動いています。

なので、「この件は無かった事に」なったらそれはそれでいいので、
このまま続けていこうと思います。

>>210
私は設定をいじることくらいしかできませんのでフリーザ様の台座を
作るのはムリですが、きっと誰かが作ってくれる気がします!

>>211
大変貴重なリンクでしたので、メモらせていただきました!
私自身に知識がないので中身の乏しいサイトになりそうですが、
自分にできることはこれくらいですので続けていきたいと思います。
213名無しさんの野望:2010/11/19(金) 19:27:59 ID:LsleS3hz
ウィリー走行で敵を攻撃とかって可能かな?
いや、馬でも乗馬中に馬の攻撃モーションで攻撃できたらいいなぁ〜と思うので
2143:2010/11/20(土) 00:13:15 ID:o05fszY1
>>213
実は(できるかわからないけど)それを狙ってました!
ウィリーや突進などで敵を攻撃、
スピンターンやジャックナイフからの転回で素早く方向転換などなど…。
酔わないようにカメラワークには注意が必要ですが、とても面白そうです。
215名無しさんの野望:2010/11/20(土) 08:54:55 ID:2tpoKOtK
あー、その辺が狙いですか。乗馬中の馬での攻撃って少し厄介かもです。

乗馬時の馬攻撃アニメの再生自体は馬ならhandtohandattackforwardpower.kfを
そのままSpecialIdle化してPickIdleで可能ですし、バイクも同様にウィリーでも
何でも攻撃っぽいアニメを作って再生すればそれで見た目はOKだと思います。

でもSpecialIdleは単にアニメの再生だけで攻撃の当たり判定(TextKeyの「Hit」)は
実行されないのでその辺を自前でなんとかする必要が。

相手にダメージを与える事自体はスクリプトで適当なオブジェを出してダメージ系の
SpellをCastさせたり、Trapオブジェを出してそのままダメを与えたり、TriggerZoneを
出して交差したアクターにModAV2 Healthしたり、みたいに方法は色々あります。

でもそれだけだとダメージ元がPCでは無いので戦闘が始まらず犯罪にもならなかったり
します。
この、他のオブジェ起因のダメージをPCがやった事にしてシステムのCrime関係の辻褄
を合わせる、てのが非常に厄介です。

似た様な例で遠距離武器の話が前スレにあるのでそれを。

あと以前ネタでやった事があるのですが、走行中にTriggerZoneを常時前方にSetPos
して交差したアクターをPushActorAwayすると通行人を跳ね飛ばしたり出来ます。
216名無しさんの野望:2010/11/20(土) 09:28:13 ID:lq60zEG9
>>207
元々モデリング勉強している人ならMAYAやMAXを使っていても全然おかしくないと思うのだけど
オブリのためにMAYAで1から勉強してモデリングしますって訳じゃないでしょ
ついでに言うと今はもう100万もしない、学生用なら更に安価
今で言うならインフェルノくらいじゃないかな
217名無しさんの野望:2010/11/20(土) 09:34:00 ID:T8VUcF+m
>>216
おかしいなんて一言もいってないような?
218名無しさんの野望:2010/11/20(土) 09:42:03 ID:lq60zEG9
>>217
>無料のBlenderで出来て、100万円するMayaで出来ないことってあるのか…
揚げ足を取る意味が分からないのだけども…不自然に思ったからそう書き込んだのでは?
言葉通りに取るなら、MAYAだとnifでExport可能な項目に制約はあるよ
ttp://niftools.sourceforge.net/wiki/Maya
219名無しさんの野望:2010/11/20(土) 09:56:15 ID:D6nooJ4f
nifscriptのこと知らない人が言ったことだし気にしなくておk
というか失礼なこと言う輩は大抵自分で作らない様な人種だから放置しれ
220名無しさんの野望:2010/11/20(土) 09:57:20 ID:T8VUcF+m
高い方ができないことなんてあるの?と言ってるだけなんだから
あるんだよ、ならレスになってるけど
高いから使うのがおかしい、なんて言ってもないことにまで
勝手に反論してるのは
傍目には貴方が一人で勝手に深読みしてるように見えるよ
それが自意識過剰かなんなのか、私にはわからないけれど
2213:2010/11/20(土) 11:51:13 ID:o05fszY1
>>215
handtohandattackforwardpower.kf ってまさに
バイクでの圧殺のためにあるような名前のような気が…。

問題はPCが攻撃したことにならないということなのですね。
そのための上手いやり方が見つかったらいいんですけど、
それまではプレイヤーの倫理に任せるということでいいかな…と(汗)

>あと以前ネタでやった事があるのですが、走行中にTriggerZoneを常時前方にSetPos
>して交差したアクターをPushActorAwayすると通行人を跳ね飛ばしたり出来ます。
これ最高じゃないですかw まさにバイクでの圧殺のためにある(ry
うほ、いけないことを想像してしまった…。

すみません、ホイールの別体nifについて質問なのですが、
ゲーム中に可動可能なホイールとして追加できましたが、位置の調整が難しいです。

ポーズModeでRWheelBの位置を後輪の中央にすれば
そこを中心にして回転することはわかったのですが、
ゲーム中でRWheelBの表示位置自体がズレてしまいます。

ひたすらskeleton.nifのNiNode「Bip01 RWheelB」の
「Translation」を試行錯誤するしかないのでしょうか?
222名無しさんの野望:2010/11/20(土) 14:34:47 ID:t0E76Ou6
>>221
ポーズで位置を調節するからいけないと思う
あらかじめ前輪・後輪・ハンドルとか用のボーンをskeleton.nifに正しい位置で入れておけば、
あとはウェイトつけてボーン操作するだけでいいはず
ボーンを選択してEdit、ボーン以外を削除してSkeletonとしてExportね

文見ると、なんとなくホイールを別nifで追加してるように見えるけど、バイクと一体でいいと思う
223名無しさんの野望:2010/11/20(土) 15:32:59 ID:2tpoKOtK
全身一体成型でのSkinアニメに切り替えた方がいいんですかね。

車輪みたいな機械的な動きはObjectアニメの方が考え方としては単純なのでとりあえず
そっちで始めたのですが。

最終的にはハンドルやらサスペンションみたいな微妙な可動部分を含むボディはSkin
アニメで、単に回るだけの車輪は別nifでObjectアニメ、というのをなんとなく
イメージしてたので、とりあえずは車輪の回転の話から入って追々Skinアニメの
話になればいいのかな、みたいな心積もりではあったのですが。

でもクリーチャーのパーツ単位でのObjectアニメって手順的に以外に面倒だったり
するので、全部Skinアニメの方が分かりやすい、というのであればその方向で。
2243:2010/11/20(土) 20:59:26 ID:o05fszY1
>>222
申し訳ないですが、手順がよくわかりません…。
Armatureを追加して、Armatureを後輪のユニットの親にして後輪が回るようになったら
このボーン(スケルトン?)と作ったArmatureを以外を全て削除して
nifとしてExportすれば、それがSkeleton.nifになるということでしょうか??

あとはそのSkeleton.nifをImportしてヒトとバイクをImportして、
PoseモードでArmatureを動かしてkfファイルを作ればOKということでしょうか…??
後輪のユニットのWeightは作ったArmatureにつけるといった感じですか…??

>>223
自分にはどちらがいいのか全然わからないですが、色々試してみたいと思います。
225名無しさんの野望:2010/11/21(日) 11:57:18 ID:2lcUjQPF
>>224
それって>>51のサンプルを改造する話ですよね。だとするとその具体手順を人様に
聞いても確たる回答は返って来ない気も。

で、ゲームで実際に使うSkeletonをBlenderで作るのってそれはそれで色々細かな話が
ありますし、Skinアニメってモデルによってはその必要が無かったり負荷的に避けた
方が良かったりする場合もあるですよ。
また今後例えばカウルの色違いVerを作る時とかにnifの分割は結局必要になったりも
しますし。

そういう意味でサンプルでは敢えて全部Objectアニメにして、>>77では手始めに車輪を
別nif化してSkeletonをNifSkopeで弄る方法を紹介してます。

あと>>221って>>77の手順の話だと思うのですが、どっちのモデルの車輪の事です?
モデルの作り方によって車軸座標の調べ方や車輪nifの作り方も変わります。
2263:2010/11/21(日) 13:42:01 ID:LNvOqKLw
>>225
NR500での話です。。。
他MODで不確定要素が出てきてしまい申し訳ないのですが…。

nifを分割するやり方ですが、
NifSkope上で対象のオブジェクトのグラフィックをクリックして
該当の「NiTriStrips」だけを「Block→Remove」で消して作りました。

これでゲーム上では動作に問題なかったみたいですが、
nif上には設定が残っているみたいでファイルサイズもほとんど変わらなかったのですが、
こんなやり方でいけますか? 作業量が少なくてやりやすかったです。

それとも、BlenderにImportして余計な物を消してExportして、
NifSkopeで加工したほうがいいですか?
227名無しさんの野望:2010/11/21(日) 14:58:39 ID:2lcUjQPF
>>226
NiTriStirpsだけをBlock→Removeしたのならメッシュの実データはまだnifに残って
ます。消去はNiTriStripsをBlock→RemoveBranchで。

で、まず以前出た方法でy軸正方向が「前」に加工済みでSceneRootのTranslationと
Rotationを全部0にしたモデルを用意して下さい。

操作はNifSkopeでもBlenderでもどっちでも。
車輪部分だけを残して他のNiTriStripsなりオブジェは全部削除を。
Blenderで車輪の全頂点を選択した時のTransformPropertyのMedianが車輪の中心が
どのくらい原点からズレているかの値です。多分。
それをマイナスして車輪を移動すれば車軸位置が原点になると思います。

Skeletonの車軸Boneの位置はそのMedianの値です。

とにかく最終的にNifSkopeで見て車輪の中心が原点でyz平面にタイヤが沿っている
(転がり方向が「前」になっている)状態になればOKだと思います。

でも上の手順はこちらでは実際には試していないので、逆にこれでOKなのか結果を
教えてもらえると有り難かったりします。

あとMarkerBikeの場合は元々車輪は原点を中心に作ってあるのでNiTriStripsの
Translationを0にすればそれで。また車軸Boneの位置はそのTranslationの値です。
2283:2010/11/21(日) 20:10:09 ID:LNvOqKLw
>>277
やってみたのですが、Blender上とゲーム上で座標の単位が違うように思えます。

1)分割したnifをBlenderで読み込ませ、nifの各メッシュを1つにまとめる
2)編集モードで全選択、TransformPropertyの値をメモして、XYZ全て0にしてExport
3)Skeleton(Edit).nifをNifSkopeで開き、該当部位のNiNodeのTranslationに
 先ほどメモった値の+-を逆にして入れる(+-両方試しました)

ゲーム中で確認すると、バイクの後ろ側(Bip01 PelvisBの近く?)に別体nifが固まっているのです。
問題なのは座標の移動量。バイクが宙に浮くのをZ:-50で帳消しにしていますが、
親であるSpineBからのそれぞれの新Boneの移動量が10にも満たないのです。
Blenderだと単位が小さすぎるように見えます(1/10くらい?)。

加えて疑問があるんですが、ゲーム中で例えば<W>+<D>すると右に曲がりながら進みますが、
これは「forward.kf」と「turnright.kf」ファイルをミックスして再現しているのですか??

それで少し考えてみたのですが、
例えば右に曲がる場合、ハンドルがゆっくり切れていき、最大まで切れた後も
曲がっている最中はハンドルは切れっぱなしにしたいのですが、
ということは「CYCLE_LOOP」は使えませんよね?
でも前輪は回り続けるのでこちらは「CYCLE_LOOP」が望ましい…。

解決するには
1)曲がる時は前輪を回すのを諦める
2)曲がる時はハンドルは最初っから最大まで切れている(モーションの変化がない)
3)曲がるモーション自体は1.5秒くらいで、1.5秒から30秒まではモーションは固まったままにする
まさか30秒も曲がり続ける人はいないと思うので、3ならCYCLE_LOOPでも問題なさそうです。
229名無しさんの野望:2010/11/21(日) 21:40:43 ID:2lcUjQPF
>>228
あ、そうです。忘れてました。BlenderとObでは座標の扱いが違うので1:10の補正が
必要です。

前進後退中の左右方向転換はkfアニメの合成で回るのではなくてシステムが直接Zを
回しているのだと思います。
ゲームで今どのkfが再生されているかはコンソールでtdt、sdt1を。

前進後退中に左右に向きを変える時にPickIdleでハンドルを切るアニメを重ねる、
て事なら車輪の回転はPriorityの指定が適切なら問題無いと思います。
でも、ハンドルが切れ始める短いアニメ→ハンドルが切れたまま固定のアニメ→それを
任意に中断して→ハンドルが戻る短いアニメ、みたいにする場合はタイミングによって
はPickIdleが不発になる事もあるかもなので色々要テストです。

それよかNR500だと一人称時に車体が表示されないんですけど、うちだけですか?
これちょっと原因が謎です。なんか緊急課題な気が。
230名無しさんの野望:2010/11/21(日) 22:16:27 ID:2lcUjQPF
あー、NR500って各パーツオブジェの原点が全部同じで0なのでPCの視点位置との
関係でオブジェによってはまだ見えていていいはずなのにクリッピングされる可能性が
あるかもですね。

これって多分どこかの時点で覚悟を決めてモデル自体に手を入れる必要があると
思いますよ。
オブジェの原点の調整や頂点数を減らしたり一つにまとめたり。また着せ替えに備えて
パーツを別nif化したり。
目的に応じた構成にしてゲーム/アニメ向けに色々整備する必要が。多分。
2313:2010/11/21(日) 22:54:22 ID:LNvOqKLw
>>229
10倍も試してみたのですが、どうやらそれでもダメみたいです。
目視のトライアンドエラーで近づけたものと比較してみます。
※X軸は省略。()の中の数字は「Median * -10」したもの。

前輪:Y:94.0(69.7) Z:25.5(-27.7)
後輪:Y:-10.0(-66.0) Z:25.5(-30.3)
Fフォーク:Y:75.0(47.1) Z:57.0(-68.4)

Medianから出した数字よりも、だいぶ前方へズレています。
推測するに、新BoneをBip01 PelvisBの子供にするのでなくて、
Bip02とかにしたらもしかしたら合う…? とかめっちゃ勘ですがそんな気がします。

あとMedianから*-10したらFフォークがむしろ前輪より下になってますが、
X軸とY軸だけマイナスかけて、Z軸は10倍するだけでいいのかな…?
それでも、前輪とFフォークの高低差が目視とで違ってたり…(汗)

あと自分でBlenderでExportしたものには影がつかないのですが、
UVマップか何かが足りないのでしょうか……??

ハンドルを最大に切っている状態から戻すモーションも入れられるのですか??
それは諦めて、左から右に切るならハンドルがいきなりまっすぐに戻るようなつもりでいました。

確かに、妙な位置でパーツが見えなくなったりします。。。
「3人称視点でご利用下さい」で何とかなりま…せんかねー(汗)
2323:2010/11/21(日) 23:13:41 ID:LNvOqKLw
>>229
試しに前輪・後輪・FフォークをBip01 PelvisBでなくBip01 NonAccumBの子供にして
XY軸は(Median*-10)、Z軸は(Median*10)したのが以下です。
http://ime.nu/moto4life.web.fc2.com/material/bl12.jpg

前後であるY軸は、あと少しだけ値を小さくすれば大丈夫そう。
でもZ軸は問題ありありで、3つとも絶対的にもっと高くして、
さらに相対的にもやっぱりズレてる…。
Z軸のTranslationはあと1.5倍〜2.0倍くらいしないとダメそうです…。

なんでぴったり位置が合わないのか不思議です…(汗)
233名無しさんの野望:2010/11/21(日) 23:47:30 ID:6AZ3r5Gw
すみません

http://cs.elderscrolls.com/constwiki/index.php/List_of_Functions
この一覧にありませんし
combatstyleをgetすることはできませんよね?
setはあるのに、、、、
234名無しさんの野望:2010/11/21(日) 23:53:36 ID:MtjeFBSN
特定の武器の攻撃音だけ変更させる方法ってありますか?
PSOのファルクローの武器のMODを使っているのですが音もファルクローにしたいんです
235避難所より転載:2010/11/22(月) 00:06:51 ID:5Xbo7jjI
>>233
GetCombatStyle
http://cs.elderscrolls.com/constwiki/index.php/GetCombatStyle

OBSEについてはCSWikiより
http://obse.silverlock.org/obse_command_doc.html
を検索するようにすべき。
236名無しさんの野望:2010/11/22(月) 00:28:06 ID:X6YJ5jdu
>>231
多分こちらの説明が色々足りなかったんですよね。

その車輪の中心座標って車軸位置の「絶対座標」です。
車軸BoneがBip01PelvisBの「子供」になっている場合、指定するTranslationは「親」の
PelvisBの位置の影響を受けます。
目的の座標が仮に0,50,50で親が0,10,10なら子供のTranslationは0,40,40に。
Skeletonの「親子構造」ってそういう事です。とりあえずその辺の確認を。

NR500については具体的な数値を聞かれても分からんです。

また車軸BoneをBip02やNonAccumBの直接の子供にして絶対座標を入れれば確かに位置
は合うと思いますが、PelvisBと動きが別々になってkfを作るのが非常に面倒に。
PelvisBを動かせば車輪を含めてバイク全体が動く、という構造にしたいから親子構造
にする訳で。

あとちなみにハンドルBoneは動物で言えば前足に相当するのでBip01SpineBの子供に
するのが適切な気が。

影はなんでしょうね。分からんです。

モデルに手を入れる件はご自由に。
でも現状の色々な問題ってモデルの表面的な流用で適当に済まそうといるから起きて
いる訳で。基本部分に手を入れない限り今後も苦労し続けそうな気がするですよ。
なんかデジャヴな気もしますが。
237名無しさんの野望:2010/11/22(月) 05:27:14 ID:rOfSubV7
>>235
ありがとうございます
普通にあったんですね
便利なページもご紹介下さり、これまたありがとうございました
こんなのがあったんですね
238名無しさんの野望:2010/11/22(月) 10:08:09 ID:X6YJ5jdu
>>231
実際に車輪を回した例です。

http://shy.jsphr.net/upload/img/ups20545.zip

一連の話ってもうサンプルを離れて別モデルの改造の話になっているので具体的な数値
や手順、Skeletonやnifの実物は提供しませんが、必要な情報は全部出したのでそれを
単なる手順としてでなく応用してもらえればとにかく可能だ、という事だけ。
239名無しさんの野望:2010/11/22(月) 16:46:15 ID:vO0VQsIS
2403:2010/11/22(月) 20:20:31 ID:GKohylA8
>>238
おおー! 見事に車輪が回ってますね!

>>236
あれから、Bip01 PelvisBの座標分をマイナスしてみたり、
分割する前にScaleを0.8にしていたことを思い出して
座標に0.8を掛けてみたり色々試行錯誤しましたが、結局合わず。

おまけに影が発生しなくなったり、ブレーキディスクの穴が無くなってたり
と色々不都合が多いので、残念ですが可動はなくそうと思います。
車体全体が傾いたり、乗り手が動けばそれで十分です。

これからは各kfファイルの作成、>>181を参考に特殊モーションの再生、
>>215を参考にした乗馬攻撃に取り組んでいこうと思います。
241名無しさんの野望:2010/11/23(火) 00:40:47 ID:bJb+3S7S
え、やめちゃうんですか?車輪を回すのって結構目玉な機能だと思ったんですけど。

クリーチャーの体パーツを可動させる事と影が出ない事とは関係無いです。これ車輪も
回ってます。

http://shy.jsphr.net/upload/img/ups20581.jpg

多分その穴が無くなるのも別な理由でしょう。恐らく。

で、そのNR500ってよく見ると元々Scaleが0.9だったりで少し状況がややこしいので、
一度SceneRootだけでなく全部のNiTriStripsをTransform→Applyしてから加工すれば
迷わなくて済むかもです。
あとBoneのTranslationの値って単に引き算だけで出るので、恐らく単純に何かを
取り違えているだけな気も。

でも別にもういいと言うのならそれはそれで。
2423:2010/11/23(火) 01:27:34 ID:pKhO/p0c
>>241
車輪が回ったりハンドルが切れたりすれば大幅に臨場感UPすると思うのですが、
どう悪あがきしてもダメでしたので、ここは退くべきかなと。
実際、車輪はいいのですが、ハンドルが切れると人間側のポーズの修正が大変ですし…。

影や穴の問題は、nifファイルの座標を(0.0.0)にするためにBlenderでExportする際に
何か問題が起きているんだと思います。
自分の力では全くどうにもならないので妥協すべきと考えました。

現在、鋭意kfファイルを置き換え中です。
243名無しさんの野望:2010/11/23(火) 11:24:48 ID:bJb+3S7S
いやNR500って元々影無いですし、影とExportは関係無いですし、ディスクの穴も
そのままExport出来ますし。
Exportに異常がある、と言うのなら先に進む前にとにかくまず環境の整備を。
2443:2010/11/23(火) 19:55:53 ID:pKhO/p0c
>>243
環境の整備ですか…どうしたらいいか全くわからなくて…。

NifSkopeで必要なパーツ以外を全てRemoveBranchして、
それをBlenderで読み込んで複数のパーツをCtrl+Jで1つのメッシュにまとめて、
Editモードで全選択してプロパティのXYZを0にしてExportしているだけなのですが、
なぜか穴が無くなったり、フロントフェンダーに影がかからなくなって
太陽の方向に関係なく真っ赤だったり…。

また、最初にnr500.nifのScaleを0.8にしてTransform→Applyしたため
その後、0.8の大きさながらScaleは1.0となっていて、
これが座標のズレ(前輪後輪共、前後にはみ出る)の原因かなとか…。
諦めモードに入ってしまいました…orz
245名無しさんの野望:2010/11/24(水) 01:21:37 ID:tLQ3/9iz
>>244
整備ってツール類が正常に動いているか確認して必要なら再インストールとかする事
です。動作の確認はバニラnifのImport/Exportで。指定類はそのnifの種類に合わせて
操作上の間違いが無い事を当然まず充分に確認を。

>>232のSSを見る限りその前輪って明らかに後輪と同じオブジェな気が。
後輪ディスクには元々穴無いですし。

そのモデルのMatrerialって元々単色フラットなので光源やAmbientの加減によっては
明暗が無いノッペリした単色に見える事もあると思います。

Exportを疑うのでしたらオブジェの移動やMaterialの操作はNifSkopeですればいい
気が。

また全てのオブジェのScaleが1.0なら座標にScale要素が関係する事は無いのでScaleの
事は忘れてOKです。
246名無しさんの野望:2010/11/24(水) 20:57:38 ID:JhB9tvGz
ものは相談なのですがバニラのモーションで良いので
全てのモーションをBBBに対応させて頂けないでしょうが
よろしくでごわす
247名無しさんの野望:2010/11/24(水) 21:04:48 ID:q7VW3Aq6
>>246
ここ作成支援スレだけど、
「頑張ってVanillaのモーションをBBBに対応させます」という宣言とみていいのかな
2483:2010/11/24(水) 21:19:47 ID:9Gf6yH+F
>>245
Pythonの再インストールをやってみましたが、状況は変わらず…。
Blender 2.49b、Python 2.6.4、PyFFI 2.1.6、Blender NIF Scripts 2.5.5という環境です。

おっしゃる通り、前輪に後輪のnifが使われていました。
なぜか前輪をBlenderでExportできなかったので、Oblivionボタンを押した
デフォルトの設定から「StripifyGeometries」をオフにしたらできました。

しかし座標は相変わらずズレたままで…
http://ime.nu/moto4life.web.fc2.com/material/bl13.jpg

NifSkopeで試したら不思議なことが起きました。
Blenderのプロパティで出たnifファイルの座標の数値でNifSkopeで座標を
修正してみたところ、中心になりません。ズレています。

そこでNifSkopeで中心にしてみたところ、Blenderとでの数値と関連性がありました。
(Y座標) NifSkope:55.7900 Blender:69.7900 →約80%
私が馬鹿なやり方をしたせいか、Scale=0.8が問題になっていたようです…。
Blenderで出た値を8掛けして試してみますね。。。
2493:2010/11/24(水) 22:16:26 ID:9Gf6yH+F
不用意な連投、ムダなスレ汚しすみません。

やはり8掛けでした。
各nifの中心座標は0になっていたので、skeleton.nifでの取り付け位置を
(Blender上での座標 * 0.8 - Bip01PelvisBの座標)
とすることで気持ちいいくらいぴったり合いました。。。
http://ime.nu/moto4life.web.fc2.com/material/bl14.jpg

また、フロントフェンダーに影が発生しない、ブレーキキャリパーの色が白になる
などの現象は、BlenderのExportで発生するようで、Blenderを使わずに
NifSkopeでNiNodeのTranslationをいじってズラすことで回避できました。

あとは同様にSkeletonEdit.nifにも前輪・後輪・Fフォークを作り、
それをBlenderで読み込んでPoseモードでそれらを動かせばいいのですよね??
車輪の回転量と進む距離ですが、車輪1回転で、直径の3.14倍の地面を進ませればよいのでしょうか??
kfファイルは車輪1回転分だけの動きのデータ(少ないフレーム数)でOKですか?
250名無しさんの野望:2010/11/24(水) 22:47:54 ID:6UCnB2DB
「Oblivion装備MOD製作チュートリアル 第二版」に挑戦してみましたが、最初のほうで躓いてしまいました。
「4-4.メッシュの作りこみ」のコピーメッシュを削除するところなんですが、素体?ごと半分全て消えてしまいます。

ソフトはblender2.49bで、femaleupperbody.nifをインポート。
editモードでshift+D→P→A→S→1.05→Enter
この時点でPを押したときに何もメニュー出ませんでした。チュートリアルにはPキー>separatedとあります。
自分のblenderでPがどのように割り当てられてるのか確認したところ、メッシュ→頂点→別オブジェクトに分離とあります。
ただ、Pを押したときに何も起こらなかったので効果があるのか不明です。
shift+Dを押したときは、マウスを動かすと分身が出ます。

チュートリアルでは動かさずにそのままとあるのでそのままにして作業を進めました。書いてある通りの操作はしています。
出来上がったものを見てみると、一応コピーとサイズ拡大はできているように見えます。
ttp://skm.vip2ch.com/-/hirame/hirame128749.jpg
ttp://skm.vip2ch.com/-/hirame/hirame128750.jpg

しかし、その後「テンキーの「1」で真後ろからの画面になりますので、Bキーで範囲選択するといいと思います。」をやると
選択したつもりの体半分が全て消えてしまいます。内側の素体も選択されてしまっている?
ttp://skm.vip2ch.com/-/hirame/hirame128751.jpg
ttp://skm.vip2ch.com/-/hirame/hirame128752.jpg

そもそもチュートリアルの画像では素体と網目状の二つに別れていて、自分のようにどちらも網目状にはなっていません。
どの段階で間違えたのでしょうか?内側の素体を残して外側の黄色い部分の選択範囲のみの消したかったのですが…

実作業は1→B→マウスの左クリックしながらドラッグで体半分を選択→delete→削除メニューがでるので頂点を選択。
初歩的な質問かと思いますが、どなたか教えて頂けませんか?何度やり直してもダメでした。
251名無しさんの野望:2010/11/24(水) 23:01:07 ID:q7VW3Aq6
何がやりたいのか全然伝わってこないけど、
範囲選択したらコピーも元も両方選択されるに決まってるじゃないか
EditでShift+Dしてコピー、動かさずに右クリックで戻るとコピーの頂点が選択されてるから
Gでわかりやすいように移動させた後に元のmeshを削除すれば簡単でしょ
Objectモードでコピーして別のレイヤーに持ってって作業した方が楽だけど、まぁやりたいようにやればいいさ

もしかしてBlenderのチュートリアルやってないのか?
252名無しさんの野望:2010/11/24(水) 23:11:12 ID:REKCdmIQ
>>250
Shift+DしたあとEnter押してないだけかな?
shift+D→Enter→P→A→S→1.05→Enter
253名無しさんの野望:2010/11/24(水) 23:28:03 ID:6UCnB2DB
>>251,252
ありがとうございます。shift+dのあとにenter押したら求めるような形になりました!
勉強不足なのでもう一度チュートリアル観直してみます
254名無しさんの野望:2010/11/25(木) 01:48:10 ID:BQ1UNydn
>>249
とりあえず動いたようで。

上でも言いましたけど「全部の」NiTriStripsでTransform→Applyしてます?
nifのScaleって大元のNiNode(SceneRootとか)だけでなく各NiTriStripsにもあるので
それらを全部1.0の状態にしてからでないと当然色々な面倒が予想されます。

BlenderのMedianってオブジェの現在のScaleとは関係無く1.0の時の値を示すかも。

「前輪をExportできなかった」てのがどう出来なかったのかは謎ですが、Stripify
Geometriesは関係無いと思います。Exportにかかる時間は変わると思いますが。
前輪ディスクって頂点数が凄いみたいなので。

あとフェンダーとブレーキの色はBlenderとnifでのMaterialのパラメータ種類の違い
とかその辺の話でしょう。多分。Exportの問題では無く構造的なものな気が。
必要なら手修正するなりすればそれで。

で、失礼ですけど、いずれの場合もツールではなくて使い方の問題だった気がします。

前にも言いましたが、BlenderはOb専用ツールでは無いので、単にそれっぽい手順なら
自動的に必ず思った通りになる訳では無いです。
ツールの機能や制限、自分が何の為に何をしているかの把握を。

あと、もうBoneの配置は済んだのなら別にいいのですが、ハンドルBone位置はMedian
ではなく回転軸はフレームのヘッドチューブの中心線です。車輪の場合はMedianが
回転軸の位置に等しい、と言うだけで、全部のオブジェがMedian=Boneの位置という事
では全く無いです。

車輪のkfを作る話はそれでやってみて問題無ければOKな気が。多分。
255名無しさんの野望:2010/11/25(木) 01:55:56 ID:ndfHSNhi
質問なんですが、スクリプト上でクリーチャーの種類を判別する方法ってあるのでしょうか?
GetCreatureTypeでUndeadとかって括りは取得できるみたいですが、
どのクリーチャーなのかを取得する方法がわかりません。
そのクリーチャーがBaliwogなのかElytraなのかなど…
※MOD独自にSkeletonから追加したクリーチャーについては判別出来ないと思いますので、
  既存クリーチャーについてになります

現状見当たらないので独自にクリーチャー種類別のFaction作って
それをクリーチャーのFactionタブに設定して判別できるようにしているのですが、
この方法だともとからあるクリーチャーにも全部登録しないといけません。

もし、クリーチャーがもともと持ってる情報から判別する方法があれば教えてください。
256名無しさんの野望:2010/11/25(木) 02:02:30 ID:a0u9YN5U
>>255
CompareNameあたりで名前に含まれてる文字列で判定するとか…。
257名無しさんの野望:2010/11/25(木) 02:06:51 ID:ndfHSNhi
>>256
やはりそれしかないですかね…
CSで分かれてるのはSkeletonのパスとかから判断してるのかなぁ。
だとしたらSkeletonパス取得する関数でもあれば何とかなりそうですがそれもなさげですね。

名前だと怖いのでとりあえず今のやり方のままでいきます。
ありがとうございました。
258名無しさんの野望:2010/11/25(木) 02:11:48 ID:+CNZPFPl
すみません質問なのですが
武器のリーチ判定を修正しています
武器AとBを地面にドロップした時と装備して構えた時で
nifファイルの設定上などでAとBの大きさが違う事はありえますか?
(CSでのReferenceの縮尺は使わないとして)

現在MOD武器のリーチを直していまして
テストセルにWeaponからドラッグしてFキーで地面に落とし
まとめて並べて目視でリーチを直しています
でも構えた時はどうなのかな?というわけです

どなたかよろしければアドバイスお願いします
259名無しさんの野望:2010/11/25(木) 02:15:41 ID:BQ1UNydn
>>257
OBSE18にCreatureのModelPathを取得する関数って無かったでしたっけ。
使った事無いですけど。
260名無しさんの野望:2010/11/25(木) 02:20:15 ID:ndfHSNhi
>>259
GetCreatureModelPathsの事ですか?
どうも説明を読む限りだとModelListにあるメッシュのリストを取得するものみたいです。
でも、Skeletonと同じ所にあるはずなので上手くやればできるのかも…
Will-o-the-Wispとか何もないのでどうなるか不明ですが。

少し試してみます。有難うございます。
261名無しさんの野望:2010/11/25(木) 02:33:37 ID:s4y8E1/7
>>258
構えてる時は持っている人のScaleに影響されます
落とした時は…試したことないけどScale1に戻されるんじゃないかなぁ
実質リーチの修正はCSからです、これはScaleに影響されません
外見の長さならCS上でTesthallとかで数値合わせて並べた方が楽じゃない
262名無しさんの野望:2010/11/25(木) 02:57:36 ID:+CNZPFPl
>>261
レスありがとうございます

>外見の長さならCS上でTesthallとかで数値合わせて並べた方が楽じゃない
なるほどそうですね!数値でソートして並べてみます

263名無しさんの野望:2010/11/25(木) 08:56:47 ID:BQ1UNydn
>>260
アクターのSkeletonのPathを取得するのならGetModelPathでもいいのかもです。
今Spellのスクリプトで少し試した限りでは動いてるみたいです。Will-o-the-Wispも。
でもGetModelPathは特にアクター用では無いと思うのでその辺要テストかもですが。
2643:2010/11/25(木) 17:44:29 ID:prCNJIKw
>>254
ご指摘の通り、「全部の」NiTriStripsでなくNiNodeでのみApplyしていました。
全てのNiTriStripsでApplyしたところBlenderでも正しい値となりました。
無知すぎて全く申し訳ないです…。

前輪のExportのエラーは「Python Script」のエラーとダイアログが出ます。
「StripifyGeometries」ボタンオフでエラーが起こらなくなりますが、
それで出力されたnifファイルはBlenderでImportできませんでした。

フェンダーとブレーキの色はBlenderにImportした時点でおかしくなり、
これはNifSkopeで「NiMaterialProperty」の色がおかしくなっているのを直すだ
けでOKでした。
Import/Exportの設定で回避できるのかは不明ですが、対症療法で何とかしてい
ます。
2653:2010/11/25(木) 17:45:55 ID:prCNJIKw
前輪・後輪と違い、確かにFフォークは原点がフレームとの取り付け位置になり
ますね。修正しました。

使い方が問題なのは承知しております。
知らない事だらけのところを直感を頼りにした試行錯誤の連続でやってます…。
急いでもしょうがないので、1つ1つ確実にクリアしていくべきですね…。

Boneについての疑問なのですが、SkeletonEdit.nifにImportしたヒトのメッシュは
Boneに連動して動きますが、新しくSkeletonEdit.nifに追加した前輪・後輪・F
フォークは
RWheelBなどのそれぞれ追加されたBoneを動かしても連動しません。

SkeletonEdit.nifにBoneを追加する際は、Bip01PelvisBの
「NiNode」と「NiTransformController」と「NiTransformInterpolator」を
コピペして修正して作っているのですが、
どこでそのBoneに相当するメッシュを指定しているのかわかりません。

ただこれはBlender上でBoneを動かしたときにメッシュも一緒に動けばわかりや
すいというだけで
手動でメッシュを動かすこともできるので、大きな問題ではないのですが…。
266名無しさんの野望:2010/11/25(木) 23:55:15 ID:BQ1UNydn
>>265
初めてなら知識が無いのは当然ですしそれ自体は問題では無いです。
問題は安易に出来ないと結論付けて次を急いでまた出来ない、という状況な気が。

前輪のExportでどんなエラーが出てImportが「どう」出来ないかはこれまた謎なので
なんともなのですが、通常は出来ますし、それをなんとかしない限り次の車輪オブジェ
をBoneに追従させる話には至らない気もします。

というかその手順ってご自分の解説サイトに。

またそのモデルについては各操作等の具体手順の提供はご容赦を。
以前手順を詳しく説明したのは自分がUPしたものについての事だったからで、他所様の
モデルについては原則なんとも。
267名無しさんの野望:2010/11/26(金) 03:52:24 ID:4zSGXfPE
何を対象に「use item it」を指定すると
どんなidleをとるかというのを
一覧で見られるような資料はありますでしょうか?
CS wikiでも簡潔に済まされていたので…
2683:2010/11/26(金) 19:45:42 ID:aC+1yb21
>>266
Pythonを2.6.4から2.6.6にしてみましたが、同様にエラーが起こります。
====================================================================
 File "C:\Python26\lib\site-packages\pyffi\object_models\common.py",
line 180,in set_value
  raise ValueError('value out of range (%i)' % val)
ValueError: value out of range (80114)
====================================================================
Blenderと連動しているウィンドウの最後にはこんなメッセージが出ています。
value out of range…データ量が多すぎるとかでしょうか…??

Pythonの2.6.xは2.6.6が最後で、2.7以降は
Blender NIF Scripts ver.2.5.5側が対応してない様でnifを扱えなくなります。

Blenderで出た座標を10倍した値を使ってNifSkopeで座標修正すれば
Blenderを使わずに前輪のnifを用意できるので、進めることはできるのですが…。
なぜエラーが出るのか…不安な要素です。
269名無しさんの野望:2010/11/26(金) 21:30:18 ID:c2AGU10e
武器作りに挑戦してるんですけど、ひと通り出来たと思って装備させてみたら、インベントリ画面や武器を足元に置いた際には
表示されるんですけど、それ以外では剣の鞘みたいにずっと腰に身に付けたままになっていて、武器を構えると透明なままで
何も表示されません。
waraxe.nifにRemoveBranch、PasteBranchした物を使用し、Scaleは1のまま、Normal Mapは作成済みです(BC3/DXT5)。
270名無しさんの野望:2010/11/27(土) 10:03:34 ID:yxvvOi/K
>>267
ドキュメント化された一覧があるかは知りませんが、各kfとTargetとの関連はCSの
IdleAnimationの「AnimObjectAnims」で指定されてます。
Weapon/Spell類は任意指定ではなく通常操作で使われるkf決め打ちです。

またUseItemAtが各Target毎にどう動くのかが知りたい、という事でしたら、単にkf
だけでなくPackageの各指定も併せての話になると思います。
271名無しさんの野望:2010/11/27(土) 10:04:58 ID:yxvvOi/K
>>268
前輪パーツ群をCtrl+Jしてたりします?

以前そのモデルに手を入れてオブジェを整理、みたいな話をしましたが、それは同時に
頂点数も減らす事に意味があります。
単にCtrl+Jするだけだと一つのオブジェの頂点数が莫大になって逆に別な問題を招く
可能性が。
272名無しさんの野望:2010/11/27(土) 10:07:04 ID:yxvvOi/K
>>269
nifのNiStringExtraDataでの「SideWeapon」等の装備個所の指定と、CSのTypeでの
「BladeOneHand」等の動作の指定の不一致かもです。
希望する片手/両手動作と同じ動作のバニラ武器nifとCSの各指定を見て確認を。
273名無しさんの野望:2010/11/27(土) 12:49:24 ID:3tngk+D3
>>272
出来ました!ありがとうございます!!

waraxe.nifのNiStringExtraDataってどうしてSideWeaponになってるんだろう・・・
2743:2010/11/27(土) 14:07:28 ID:7L4qGgCP
>>271
まさにおっしゃる通り、Ctrl+Jで頂点数が莫大すぎたのが問題だったみたいです。
NifSkopeで前輪の座標を先に変更しておき、
その後BlenderにImportしてすぐにExportで3.64MB→1.34MBになりました。
グラフィックの変化は私が見る限りでは全くわかりません。負荷も軽くなりそうですね。

もしよろしければ、Boneにメッシュを連動させる方法を教えていただけないでしょうか?
よろしくお願い致しますm(_ _)m
275名無しさんの野望:2010/11/27(土) 16:44:41 ID:w3ANR5W5
毎回いうのも面倒でやめたのかしらんが
その前にお礼ぐらいいっといたほうがいいんでね
2763:2010/11/27(土) 17:05:40 ID:7L4qGgCP
>>275
しまった、最近お礼言ってなかったですね…。すみません。

>>271さんがいらっしゃらなければ一切進みませんでした。
本当にありがとうございました!

これだけ教えていただいてお礼を言うだけでは到底足りないですので、
何か自分にできる作業とか面倒事みたいのがあればやりますので、
何かありましたらお気軽にどうぞ。
自分で考えられるのは、ノウハウの紹介まとめ程度しかないですので…。

バイクMOD作成を主軸にしてその周辺知識まで説明出来れば本望なのですが、
自分に知識がないのでできないという笑えない状態です。。。
277名無しさんの野望:2010/11/27(土) 18:07:37 ID:DgG7LFb9
>>274
上で言った「頂点数を減らす」、というのはパーツを作り直したりPolyReducerとかで
積極的に頂点数を数〜十数分の一とかに減らす事です。

前輪ディスクの穴なんかはStencilにすれば多分劇的に。テクスチャは車体の地面の影
を出すのいずれ必要になりますし。
またそのうちステッカーとか張りたくなったり痛単車に目覚めたりする事もあるで
しょうし。

今出来る出来ないは置いといて、MODとしての完成度を上げるのならそのうちいずれ
モデルに色々手を入れる事になるかも、という事を頭の隅に。

あと、Boneにメッシュを連動って>>201のサイトの「4.BlenderにバイクをImport」と
同じ事では。
MarkerBikeと同様車輪をImportして車軸Boneの位置に移動、車軸BoneのWeight付けを。
278名無しさんの野望:2010/11/27(土) 20:36:42 ID:K88lMG8d
>>276
横からだけど。
感謝の気持ちがあるのは、教えてる本人もわかってるだろうから、あんまり>>275 は気にしなくてもいいと思うよ。

あと、教えてる立場としては、「何か作業」とかして欲しいわけじゃなく、きっと「完成させること」が一番の恩返しじゃないかな?
せっかく教えたのに「途中で断念された」とか、やっぱり悲しいと思うし。
焦らずに、ステップ踏んで頑張って欲しい。
2793:2010/11/27(土) 21:18:14 ID:7L4qGgCP
>>277
PolyReducerを設定を変えずにやってみたところ、前輪は1.34MBから1.19MBにさらに減少しました。
ただ場所によってはシンプルになりすぎてしまうので、設定とか使い方を試行錯誤してみます。
ブレーキディスクにはPolyReducerでなく、黒い穴のテクスチャを貼ったりする感じでしょうか。

痛単車…! これは激しく目覚めそうです。
これ入れればリアルに注目度10倍増しくらいになりそうですね…。
とてもやり甲斐を感じます。ありがとうございます!

色々手を加えてMODの完成度を出来る限り上げていきたいとは思いますが、
今はPolyReducerで多少サイズを減らすくらいにして、
乗り物として機能するようになった後に
nifファイルをじっくりと修正したいと考えてます。

あ、確かにBoneにメッシュを連動は確かにWeight付けでしたね…。。。
今見たところ、ヒトのメッシュは最初からWeight付けされてるみたいですね。

>>278
なんという温かいお言葉! 自分にはもったいないです!
いくらか使い方は違いますが、「親しき仲にも礼儀あり」というコトワザもありますし、
実際に言葉にしないと伝わらないこともありますし、
言葉にしたほうが絶対にいいと思うので今後は気をつけたいと思います。

MODは必ずや完成させたいと思います。
完成度は置いておいて、完成までの目処はかなり立ってきているように感じています。
280名無しさんの野望:2010/11/28(日) 00:46:29 ID:AsQPEk0d
>>279
PolyReducerって単にそれだけだと元々あるメッシュの部分的な尖ったエッジが
無くなったりするかもなので、その復元に部分毎にSmooth/SolidしたりModifireで
EdgeSplitしたりが必要になると思います。
エッジの話はBlender操作関連を探せば多分色々見つかる気が。

これっていわゆる「ローポリ化」なんですけど、これはこれで色々大変だと思うので
気長にじっくり行くのが正解だと思います。

あと、Stencilの話はこちらが少し先走りすぎたかもです。
ディスクの穴はテクスチャのAlphaで抜いたり単に穴の絵にしたりで充分な簡略化は
出来ると思います。
それをさらに簡略化してディスクの裏面のFaceも省略してNiStencilPropertyで表側
だけのモデルを裏からも見える様にする手もあるよ、というかなり後の段階の話です。

でもNR500って前輪ディスク裏面のFaceが最初から無いみたいですね。なんでだろ。

ヒトの体nifは元々Skinアニメなのでnifに既にWeightが付いた状態になってます。
車輪はObject単位のアニメなのでWeightの情報はnifには不要なのですが、Blender上で
kfを作る際の操作の為にヒトの体同様なWeightを付ける必要が。
その辺少しややこしくて煩雑かもです。
281名無しさんの野望:2010/11/28(日) 01:39:20 ID:9V8jl+Bs
質問スレか迷ったのですが、
「プレイヤーがワールドスペース(Interiors)内のEditorID(ABC)内にいる場合」
という条件式を教えていただけませんか。

現在はplayer.GetInSameCellですべてのcellを指定して制御していますが、
CELLを増やすと条件文も直さなければなりません。
2823:2010/11/28(日) 03:16:20 ID:K3GYBy1q
>>280
いい意味で、表からだけ見れるハリボテみたいにすればいいのですね。
バイクが原因で重くなったりするのは嫌なので、ちょっとずつ勉強してみたいと思います。
ただ相当に時間がかかりそうなので、じっくりじっくりと…(汗)

なるほど、以前話題になりましたが、Weight付けにはSkinアニメとObjectアニメの2つがあるのですね。
Skinアニメはnifファイルに最初からWeight付けの設定がされており、Blenderでも最初から適用される。
Objectアニメもskeleton.nifと各nif間でWeight付けの設定はされているが、
BlenderにImportしたnifは自分でWeight付けしないと連動しない…と。

毎度ながらとてもわかりやすいご解説、ありがとうございます!
少しずつ知識を吸収させていただいております。

あのー、idle.kfで首だけPriorityを30、あとは全部99にしたのですが、関係なしに上半身が
近くの生物に向かって動いてしまいます。ハンドルから手が離れるので非常にシュールです。
idle.kfのPriority値は下半身にしか適用されないのでしょうか??
SpecialIdleを活用して回避したりすることになりますか…??
もしかしたら、Blenderの「SetBonePriority」でまとめて設定したことが原因…??
283名無しさんの野望:2010/11/28(日) 07:59:37 ID:x6hAAVOw
>>281
おそらく過去スレのこの辺の話題かと

OBLIVION MOD作成支援/相談スレPart5
http://schiphol.2ch.net/test/read.cgi/game/1253575595/638-640,643
284名無しさんの野望:2010/11/28(日) 11:24:56 ID:IiNj1fvV
リバーシブルなマント作りたいんですが、
ひとつの面に片面ずつ別のテクスチャを張ることはできますか?
厚みを持たせるしかない?
285名無しさんの野望:2010/11/28(日) 11:35:53 ID:P+1BDiyw
>>284
自分の知る限り無理かも・・コピーして面を反転、ちょっとずらすくらいしか思いつかないです
286名無しさんの野望:2010/11/28(日) 11:55:07 ID:s24F9Wqv
ずらすって必要あるの?
287名無しさんの野望:2010/11/28(日) 12:13:03 ID:56BrJbKI
>>284
ttp://shy.jsphr.net/upload/img/ups20823.jpg
こういうのあるから普通に出来るんじゃないかな、メッシュ見た感じ裏表あるようには見えないんだけどどうやってんだろこれ
288名無しさんの野望:2010/11/28(日) 12:19:20 ID:ru0Ydzok
>>256
ずらさないと(重なってると)オブジェクトの重なりで
表面でテクスチャが混ざってチカチカしたり見苦しいことになるのでは?
アルファが絡むものだと、オブジェクトが見えなくなって透けてしまったり

便乗質問なのですが
シスター用のケープ装備で外側からみると、ちゃんと黒いのに
内側(裏側)からみると、何もないように透けてしまってるものがあるんですけど
何が原因なんでしょうかね?
装備に厚みはなさそうでした
289名無しさんの野望:2010/11/28(日) 12:27:56 ID:6ZJeZIMf
>>288
meshにNiStenciProperty付け足せば裏も表示されるようになるよ

NifSkopeで適当なNifからコピペすればOK
290名無しさんの野望:2010/11/28(日) 12:49:43 ID:ru0Ydzok
>>289
おお!
仰る通りの内容で、無事、速攻解決しました
ありがとうございました!
291名無しさんの野望:2010/11/28(日) 12:55:32 ID:s24F9Wqv
>>284
>>289も同じような事書いてあるけど、NifのNiStencilProperty→Draw ModeをDRAW_CCW_OR_BOTH(?)にすれば片面表示にできる

装備ならSkinアニメで変形するだろうから、厚みありのテクスチャ両面表示だと曲がった部分に裏の模様がチラつくかも
292名無しさんの野望:2010/11/28(日) 12:57:35 ID:kFXYthrt
>>288
Weigh設定されているメッシュの場合、ずらさないほうが不具合が出ない。
表、裏用のメッシュを逆法線で重ねて、NiStenciPropertyが無い状態にすればOK
実際に試してみると理解し易い。
293名無しさんの野望:2010/11/28(日) 13:28:18 ID:Zzsc81td
メッシュをコピーしてを表と裏で表示を分けているんじゃないでしょうか
テクスチャを分けられる両面ポリゴンは、内部的には頂点を同じくする別ポリゴンだと聞いたことが
294281:2010/11/28(日) 17:25:55 ID:9V8jl+Bs
>>283
できました。ありがとうございました。
2953:2010/11/28(日) 19:04:21 ID:K3GYBy1q
>>181>>229を参考にしてやってみたところ、少しずつできてきました。
http://ime.nu/moto4life.web.fc2.com/material/bl15.jpg
http://ime.nu/moto4life.web.fc2.com/material/bl16.jpg
タイヤが変だったり一人称視点ではカメラ位置がイマイチだったりしていますが…。

現在、重ねたSpecialIdleアニメでの変化分を戻すやり方を考えていますが、もしかして

If (IsKeyPressed3 MyKey) && (Keydown == 0) ; first frame with key pressed
 Set Keydown to 1
 ; 重ねるSpecialIdleを再生させるための処理(AddItem=>PickIdle=>RemoveItem)
ElseIf (IsKeyPressed3 MyKey == 0) && Keydown ; wait til key released then toggle flag
 set Keydown to 0
 ; 〜ここで↑の変化分を戻すkfファイルを再生させればOK…??〜
EndIf

これでもしかしたらできますか??
このスクリプトの構造を把握しきれてなくてアレなんですが…。
296名無しさんの野望:2010/11/28(日) 20:46:42 ID:uHK78R5K
IdleAnimationですが、一度追加したものに対して親を追加する方法って無いのでしょうか?

例えば、
characters\_male\IdleAnimsの下の階層に"testAnims"ってのを追加してあったとして、
testAnimsの親としてtestParentAnimsを追加するなどです。
CSでtestParentAnimsを追加しておいて
TesEditでtestAnimsのRalate#0(parent)にtestParentAnimsを設定したらいけるかなと思いましたが、
CSで見るとツリーがTesEditで修正する前と変わらずツリーが別々に…

CSだとこうなるようにしたいです。
characters\_male\IdleAnims
 |_testAnims



characters\_male\IdleAnims
 |_testParentAnims
        |_testAnims

今はこうなっちゃってます。
characters\_male\IdleAnims
 |_testParentAnims
|_testAnims
297名無しさんの野望:2010/11/28(日) 20:47:40 ID:uHK78R5K
一番下ずれちゃいました…
testParentAnimsとtestAnimsが同階層になってると思ってください。
298名無しさんの野望:2010/11/28(日) 22:23:28 ID:RgHFLd07
>>202の者ですが、大まかなモデリングとUVテクスチャは出来ました。
ttp://shy.jsphr.net/upload/img/ups20844.jpg
ttp://shy.jsphr.net/upload/img/ups20845.jpg
あとはnifskopeの勉強ですが、よく分かりません・・・
詳しく乗ってるサイトがあったら教えてください。
299名無しさんの野望:2010/11/28(日) 22:25:27 ID:HQQm/jog
>>298
SS/MODスレの人かな
同じくMAYA使ってMOD作ってる者だけども、その類のサイトは無いと思っていいかも
使ってるのは2009?
300名無しさんの野望:2010/11/28(日) 22:34:33 ID:RgHFLd07
MAYAのバージョンですか?
301名無しさんの野望:2010/11/28(日) 22:47:08 ID:HQQm/jog
>>300
バージョンだね
2010以降だとnif pluginが対応してないんでnifへのExportが出来ない
飽くまで自分の踏んでる手順だから参考までにどうぞ



           MAYA2009からnifへExport
                  ↓
Blenderで読み込み コリジョン生成 簡単な情報を設定して再度Export
                  ↓
    Nifscopeで各種パラメータ微調整 および関連付け
                  ↓
     CSで設定 nifとdds dds_nに関連付け esp作成
                  ↓
           TES4Editでesp洗い流し
                  ↓
                動作確認(→NifScopeで微調整)
                  ↓
                 .終了


64bit用のMAYA2009だとpluginの読み込みが出来ないんで一応注意
win7の64bit環境でも32bitのMAYA2009を一緒にインストールしておくと便利
慣れない内は既存のnifデータの情報を真似てみるか丸々コピーしてみるといいかも
302名無しさんの野望:2010/11/28(日) 22:51:55 ID:RgHFLd07
maya8.5ですね。
nifプラグインをインストールして、ファイルをエクスポートしてNifscopeで読み込んだら一応メッシュは表示されてます。
303名無しさんの野望:2010/11/28(日) 22:58:20 ID:HQQm/jog
>>302
メッシュだけかな、テクスチャはどうだろう
もし見えないのであればNifscope上でRender→Settings...→Renderingタブ→Auto Detect Game Patchを
それで駄目ならパスが間違ってるのだろうから、最終調整する時に指定し直してやるといいかも
304名無しさんの野望:2010/11/28(日) 23:17:58 ID:RgHFLd07
>>303
テクスチャが正常に表示されました。
ttp://shy.jsphr.net/upload/img/ups20853.jpg
後はパラメーター調整すればOKですか?
3053:2010/11/28(日) 23:26:01 ID:K3GYBy1q
ハンドルの切れ・バンク角・体のモーションを戻す方法が見つかりませんでした…。

通常のturnright.kfは適当なフレーム数でCYCLE_LOOPさせ、
重ねるkfファイルは短い15フレームでCYCLE_CLAMPで一度だけ実行させる。

後者は通常姿勢から最大バンク時までのアニメーションが入っており、Priorityは99で最優先。
前者は最初から最後まで最大バンク時のポーズ。進む距離はなどはこちらで指定。

ゲーム上では、<d>押して右旋回させると姿勢が徐々に変わっていき、
最大バンク時の姿勢のまま曲がり続け、ここまではいいのですが、
それから<d>をどこかで離してもバンクしっぱなしで戻らず、
約9秒以上経っている時に<d>を離すと、ひょっこり通常のidle.kfのポーズに戻ります。

なぜ9秒程度でポーズが戻されるのかわからないのですが、
これのせいで仮に別にポーズを戻すようなアニメを作って実行させたとしても、
2重に戻って変なポーズになってしまうかもしれません…。
もしかしたら、その別に作った戻すためのポーズも9秒で戻ったりして…。

妥協して、turnright.kfだけ使って、徐々に動くというのをなしにして
最大バンクのポーズで固定…としたほうが無難かもしれません…。
306名無しさんの野望:2010/11/28(日) 23:27:02 ID:HQQm/jog
>>304
後は地面に置いた時その位置で不動になっちゃうからコリジョンの設定かな
重量とか質感とか当たり判定をここで決める
これはMaya上で出来ないからBlenderに読み込んでそっちでの作業になるね
不動で構わないよって場合は省いていいけど、BlenderとMAYAのnifpluginとでNodeの構造に微妙に差があるから、面倒でも経由した方がいいとは思う
コリジョンの作り方に関しては某氏のチュートリアルにあるからそっちを参考に

もしうまくいかないようであれば、既存の剣とか何か形状の近いもののコリジョンのスケールを拡大して代替しても大丈夫だと思う
307名無しさんの野望:2010/11/28(日) 23:30:22 ID:+geGqy27
まずメニューを閉じるんだ
308名無しさんの野望:2010/11/28(日) 23:31:40 ID:RgHFLd07
>>306
ありがとうございました。
とりあえずチュートリアルDLして頑張って見ます。
309名無しさんの野望:2010/11/29(月) 19:38:39 ID:Y47tYxQk
>>308の者です。
MAYAでモデリングテクスチャを作成して、Blenderでインポートしてコリジョン生成
エクスポートしたらテクスチャーが表示されなくなりました。
エクスポの設定を弄る必要があるのでしょうか?
310名無しさんの野望:2010/11/29(月) 19:43:51 ID:bDJeDozT
>>309
恐らくパスが間違っているのだと思う
Nifskope上で紫色の花みたいなアイコンがあるから、そこでパスを指定し直してやるといいかも
この時すでにOblivion\Data内で作業するよう心がけておくと楽だね
311名無しさんの野望:2010/11/29(月) 19:47:01 ID:b/jGwwxe
>>305
上体が回る件は少しややこしいのでとにかくまずは視線関係のシステム動作の充分な
把握を。過去スレを「視線」とか「トラッキング」で。話はそれから。

IsKeyPressed3の話はそれをやってみた結果はどうだったんですか?
その結果次第な気が。

あとCYCLE_LOOPのSpecialIdleの中断はWholeBodyなら「PlayGroup Idle 1」、それ以外
は別なkfをPickIdleで。kf間の補間をゆっくりにするならTextKeyの「Blend」を。
Blendは発進停止の加減速にも使えます。

ただ>>229でも言いましたがPickIdleは状況によっては不発になる事もあります。
ですがその9秒問題は多分PickIdleやシステムのせいでは無いと思うので結論を急がず
原因の切り分けを慎重に。

出来る出来ると言うだけではアレなのでとりあえずバンクさせた例です。

http://shy.jsphr.net/upload/img/ups20876.zip

この例はBlendで補間の時間を長くした左右にバンクしたSpecialIdleのkf二つを用意
して左右キー押下で再生、解放で別kfをPickIdleして停止しているだけです。

また>>229の話はそういう事が出来るか聞かれたので一例として挙げただけで、他にも
以前出たアクターの体各部のスケールを動的に切り替えるのと同じ要領でバンク量を
スイッチしたりも多分。方法は一つでは無いと思います。
312名無しさんの野望:2010/11/29(月) 19:55:24 ID:Y47tYxQk
>>310
表示されました、ありがとうございます。
一応インポ・エクポの設定なんですがこれでいいのでしょうか?
http://shy.jsphr.net/upload/img/ups20879.jpg
313名無しさんの野望:2010/11/29(月) 20:05:35 ID:bDJeDozT
>>312
右上のCollision optionsの木目になっている所をMetalにしてやった方がいいかな
後からNifskope上でいくらでも変更は出来るからあまり拘らなくて大丈夫
314名無しさんの野望:2010/11/29(月) 20:15:36 ID:Y47tYxQk
>>313
なるほど、ありがとうございます。
315名無しさんの野望:2010/11/29(月) 22:09:04 ID:u0zEpbQM
初めまして すいません版違いを承知で質問させていただきたいのですが、現在ルーセントハートというゲームのMODを作成しています
そのゲームは過疎でMODやっている人は全然いなさそうで聞ける相手がいない状態でして、OBLIVIONは同じdds+nifということでツールの使い方等こちらで質問させていただこうと思いました

今は巨乳化をしたいのですが、blender nif script でnifインポート→乳だけリサイズしてエクスポートnif(nifのバージョンはちゃんと元nifに合わせてあります)
→ゲームで透明に・・・
比較したところ元nifでNiTriShapeだったものが編集後はNiTriStripになっていました
いろいろググったりしてNiTriStripをNiTriShapeに修正し、NODEの数字も修正してSAVEしたのですが、SAVEすると修正したはずの数字が元に戻ってしまいます
やはりゲームでは透明になりました

blenderで編集後におかしくなった設定をnif skopeで修正したいのですが設定変更がきちんと反映されないのですがどうしたらいいでしょうか?
316名無しさんの野望:2010/11/29(月) 22:38:11 ID:6j5XY/YL
>>315
nif使っててもflagや内部の形式が違う場合が殆どだから、ゲームが違う時点で出力の設定も全然異なる
というかまずオンラインゲームのファイルの改変は公式的に認められてないと思うよ
著作物を違法に流用するということがこのゲームでは特にタブーだから話題ですら持ち込まないで欲しい
違法性のある行為を薦めるためにこのスレッドがある訳じゃない
317名無しさんの野望:2010/11/29(月) 22:51:02 ID:Y47tYxQk
>>314の者です。
おかげさまでここまで出来ました。
ttp://shy.jsphr.net/upload/img/ups20894.jpg
ttp://shy.jsphr.net/upload/img/ups20893.jpg
ttp://shy.jsphr.net/upload/img/ups20892.jpg
質問に答えてくださった方々に感謝します。
ありがとう。
318名無しさんの野望:2010/11/29(月) 22:55:53 ID:Iv3jI3EQ
俺も始めて作ったのが100tハンマーなわけだが、それどうやって収めるの?
おかげで無難な大きさのハンマーになってしまった
319名無しさんの野望:2010/11/29(月) 22:59:09 ID:Y47tYxQk
普通に片手権扱いですね。
地面にめり込みます・・・・
320名無しさんの野望:2010/11/29(月) 23:01:02 ID:7jnxTAeD
>>318
MHFでも納刀状態で地面にめり込んでる装備ごまんとあるし、そこを気にすること無いんじゃない?
どうしても気になるならMHじゃランスは背中に背負うから、2Hや杖の位置に収めるのがいいかな?角度は好きにすればいい
321名無しさんの野望:2010/11/29(月) 23:02:21 ID:dPulvRvH
100tハンマーなら召喚武器が合いそう。
322名無しさんの野望:2010/11/29(月) 23:05:16 ID:Y47tYxQk
刃先・柄と別ポリゴンとして選択できるからスクリプト分かれば帯刀時にMHみたいに短く出来るかも・・・
スクリプトに関しては知識0ですが・・・
323名無しさんの野望:2010/11/29(月) 23:21:38 ID:LgVdsURP
>>321
敵の頭上におっことすのかw
マイダス(だっけ)にありそうな気もするけど。
324名無しさんの野望:2010/11/30(火) 00:05:45 ID:pZeik1VL
>>316
>著作物を違法に流用するということがこのゲームでは特にタブーだから話題ですら持ち込まないで欲しい

このスレに持ち込むなというのはわかる
けど現実とかけ離れた綺麗事も、、、

TESNなんてmusicpackをはじめ違法アップ品のオンパレードで
日本も一見五月蠅いようでいて
ainmhiボイスのように既成事実化してしまえば
当然のように扱われるようになるし

本来は問題である、バニラファイルの改変配布も
わりと前提になってしまっている現実
325名無しさんの野望:2010/11/30(火) 00:09:55 ID:HuNIuo5V
>>323
いや、100tハンマーなんて漫画的な物だしいきなり手の中に現れてもいいんじゃないかって事じゃない?
326名無しさんの野望:2010/11/30(火) 00:16:59 ID:HuNIuo5V
と・・・・技術的なアドバイス以外はちょっと慎んだほうがいいね、自重します。
327名無しさんの野望:2010/11/30(火) 00:32:14 ID:fqRcrgKQ
シティハンターのギャグにあったような。あっちは40トンだったっけか?
3283:2010/11/30(火) 08:12:15 ID:TgkRCx7E
>>311
おおー!!! これは実に見事なバンクです!
それを目指してやっていこうと思います!

キーワードは「視線」「トラッキング」「Blend」ですね。
ありがとうございます。現在それで色々過去ログなどを探っています。

同時実行出来るSpecialIdleは1つであり、PickIdleで切り替えられるということですね!
まずはこれを試してみたいと思います!
3293:2010/11/30(火) 16:33:42 ID:TgkRCx7E
>>311
>上体が回る
「Bip01Head」と「Bip01NonAccum」の角度の不一致 => システムが勝手に回す
1)「Bip01Head」を好きな角度に回転させる
2)「Bip01Pelvis」を1と同じ角度戻す
3)「Bip01NonAccum」を1と同じ角度回す
2と3で体の回転量は帳消し、かつ頭と「NonAccum」の回転量が同じなので
頭の向きが変わっても上半身は回らなくなる。
「Bip01Head」のPriorityは低くてもOK。顔が生物に向くだけ。
こんな感じで解決できるでしょうか??

>IsKeyPressed3
これは教えていただいた方法でバッチリでした! ありがとうございます!
SpecialIdleが右バンクしか試していなかったので、一向に戻らなかったのだと思います。
・任意のキーでSpecialIdleが再生され、切り替えられる。
・新しいSpecialIdleが再生されない場合、Idleに戻ったと判断してIdleと同じポーズのSpecialIdle再生
こんな感じでいけるかなーと推測してます。

>TextKeyの「Blend」
TextkeyのValueに「Blend:n」と入れると、nフレームの間、
同時再生中のkfファイルが混ざって再生される…ですね?
これらを全ての(もしくは一部の)kfファイルに入れれば、kfファイル切り替えが滑らかに…!

発進停止の加減速に使えるというのはとてもいいですね。
レースモードみたいのでは、Shiftキー押している間、バイクのSpeedを+10し続け、
Shiftキーを離すと増えた分のSpeedをデフォまで戻していき、
<s>でブレーキで一気にSpeedを減らすとか、<a>や<d>と同時押下で(SpecialIdleで)低速で急旋回とか、
とか、実現できるか全くわからないけど色々なことを妄想してました。
Blend:nが使えるとちょっと楽になりそうです。
330名無しさんの野望:2010/11/30(火) 18:50:26 ID:bYcss8++
MAYAで作ったモデリングをNifファイルにエクスポートして、blenderでインポートすると
余計なエッジが追加されてしまいます。
これを回避することは不可能ですか?
331名無しさんの野望:2010/11/30(火) 20:14:06 ID:UzCvQM17
>>317
おお、おめでとう
地面に置いたりは出来たのかな、なんにせよあともう少しだね
>>330の人は同じ人かな
四角形ポリゴンが三角形ポリゴンになる現象ならnifに限らず起こるよ 仕様みたいなものだと思う
自動机共通形式のfbxなんかでも同じ
332名無しさんの野望:2010/11/30(火) 20:27:39 ID:Z8nTLnxC
>>329
その方法はポーズ等でヒトの頭向きを変えた時の話です。kfでで頭向きを変えると
上体が自動的に追従して体が思わぬ方向を向く事があるのを抑止する方法です。

ご希望の動作は多分、ポーズではなくて何かを注視して自動的に頭の向きが変わった
時にその頭の動きを追って上体が回らない様にしたい、と言う事では。

この二つは似てますけど微妙に違います。なんともややこしいのですが。

で、その方法ですけど、以前何かで後者の状態になった事は覚えているですが、その
時の状況がネタ帳に記載漏れでどうにも思い出せなくて。話はそれから、とか言った
手前非常に申し訳無いのですが、その件はとりあえず保留で。

あと書き忘れましたが、上の例は5フレ程度のIdleと同じ姿勢のkf(Bip02のPriorityは
低い)を用意してバンクのSpecialIdleの停止用にPickIdleしています。

またPickIdleの不発対策なら、OBSEの「IsAnimGroupPlaying」でSpecialIdleが再生
されているはずの時に再生されていない事の判定は出来ると思います。
判定結果を見て再度PickIdleしたり。でもその辺はかなり後の段階の話な気も。

Blendをシフトやスロットルに応用するには移動速度の違う前進のSpecialIdleを複数
用意して逐次切り替え、常時再生の必要がありそうな予感が。
でもそうすると他のバンクとかのSpecialIdleと共存出来なくなるかもです。
Speed変更のレスポンスはスクリプトで遅延を計算してSpeed自体を操作するのが
適切かも。

レースならオーバースピードでコーナーに入ると転倒するとかどうですかね。
乗員やバイクをPushActorAwayで。またIdleAnimationsのGetUpFaceUp/Down指定で
泣きながらバイクを起こすアニメとか出来たりするかもです。やった事無いですが。
333名無しさんの野望:2010/11/30(火) 20:28:12 ID:bYcss8++
同じです。
となるとそのままにするか、blenderで一辺一辺削除するしかないんですね。
blenderでエッジを削除すると面まで消えるから、そのままにします。
テクスチャも作り直さないといけないし・・・
334名無しさんの野望:2010/11/30(火) 22:23:25 ID:CycfdaCl
>>333
nifは三角ポリゴンしか使用できないから、削除するのは意味無いよ
Export時にまた三角に変わります
MAYAの時点であらかじめ三角ポリゴンに変換しておくと、
勝手に変換されて意図しないことが起きるのを防げるかも
335名無しさんの野望:2010/11/30(火) 22:44:51 ID:bYcss8++
なるほど、nifファイルは三角ポリゴン確定なんですね・・・
336名無しさんの野望:2010/11/30(火) 23:14:47 ID:DZQ+IQwV
scriptとか全く知識がないですが、自作魔法で波動拳とかサマーソルトキックみたいに動作を伴う物を作ってみたりすることは可能なんでしょうか
3373:2010/11/30(火) 23:24:38 ID:TgkRCx7E
>>332
頭の向きの件はそうです、頭だけが向いて、他の体は微動だにしないのが望みです。
バイクの場合、動けるのは顔だけだからですが、
最悪動かないとしても諦められる範疇ではあります(乗り手は運転に精一杯だ)。
思い出したらで全然結構ですので、よろしくお願い致しますm(_ _)m

SpecialIdleの切り替えがなぜかなくても、ポーズが通常のidle.kfなどに戻ります。
ただしNR500のスクリプトのGameModeブロックはこんな感じになっています。

set MyKey to 32              ;Dキー押したら
If IsKeyPressed3 Mykey && Keydown == 0
 set Keydown to 1
 AddItem HondaNR500TurnRight 1      ;SpecialIdleの開始条件ファイルを1つ与える
 PickIdle                 ;ただし開始条件は「1つだけ」持っている時
ElseIf IsKeyPressed3 MyKey == 0 && Keydown ;これはPickIdleの連続実行を防ぐため
 set Keydown to 0
 RemoveItem HondaNR500TurnRight 9999   ;トークンアイテムを0個に戻す
endif
3383:2010/11/30(火) 23:26:23 ID:TgkRCx7E
各SpecialIdleアニメにBlend: 15としたら、かなりいい感じに
切り替えが滑らかになりました! ありがとうございます!!

PickIdleの不発発見は、おっしゃる通り各PickIdleの後に「IsAnimGroupPlaying」で
個別に判定すればできそうですが、よく考えたら、どうやら私の環境では
同じキーを押し続けていてもトークンアイテムの入手が何度も実行されているようなので、
もっと後ろの方にPickIdleを1つだけ書けばいい上、
不発を探す必要がないかもしれません。
もっといいスクリプトの書き方があるのかもしれませんが…。。。

Blendは切り替えの滑らかさに使うくらいにして、Speedをいじるほうが良さそうですね。
>スクリプトで遅延を計算してSpeed自体を操作するのが適切かも。
Shiftキーの押下で加速/惰性をトグルしてスピード調整とか、色々考えられますね!
想像するだけで(作るのが)楽しそうです。操作性悪くてクレームがきたり…(汗)

いいですねー、事故死。高所から落ちるみたいなダメージをプレイヤーに与えるとか。
無駄にノーマルモードとエキスパートを用意して、後者だと事故が起こるようになります。
でもちょっとアドバンテージもあります…とか。。。
「泣きながらバイクを起こす」これ笑いました(笑) 是非とも実現したいです!
3393:2010/12/01(水) 00:00:10 ID:+VotEKUE
>>332
追加で質問すみません。
現在、「TurnLeft/Right.kf」の「Bip02」で座標位置の調整(少し前進しながら回転するため)、
重ねるSpecialIdleの「Bip01NonAccumB」でバンク角の調整を行っています。

ここに回転速度(Z軸)をもっと速くしようと、「Bip02」で回転させたところ
バイクは速く回転しているのですが、人間側の回転速度に変化がなくカメラ位置がずれてしまいます。
また降車した時もキャラが変な方向を向いており、バイクの角度と同期していません。
そこで「ActorParnt」も「Bip02」と同量の角度を回転させたのですが、効果がありませんでした。

乗り手をバイクと同期させる方法、またはカメラ位置を調整する方法はありますでしょうか??
ちなみに、SpecialIdleのPriorityの関係で「Bip01NonAccumB」は使えません。
質問をたたみかけて大変申し訳ありませんが、どうぞよろしくお願い致しますm(_ _)m
340名無しさんの野望:2010/12/01(水) 01:59:34 ID:8SnAVMQ7
全く作れるスキルとかないんだけどやろうと思ったらディアブロみたいなランダムダンジョンってできるのかな?
いや、ディアブロ引き合いに出したけど全然やったことないんだが

とにかくローグな雰囲気のダンジョンあったら楽しそうだなあって思って、それに纏わる街とかクエストとか妄想してて
もしできるなら一から勉強しようと思って
341名無しさんの野望:2010/12/01(水) 02:31:42 ID:ztz41mPk
バニラで一通りちゃんと動いてたのでちょっとだけMod作成をしようと思って色々調べてみたけど
CS(であってる?公認エディターのあれ)の理解度が低いので
ゲーム最初から持ってる魔法を別効果のものに置き換える程度の事しか出来ない・・・

ものすごいド素人的質問で申し訳ないけど
最初から装備を持たせたり魔法を覚えさせるのってどうすれば・・・?
人のMod見てみてもちんぷんかんぷんで頭がスパークしそう
342名無しさんの野望:2010/12/01(水) 02:42:31 ID:T2IgMEuZ
>>340
JP ForumでOretueeさんがランダムダンジョン作ってるので参考にしてみてはいかが
ttp://oblivion.forum.jpmod.net/index.php

>>341
>最初から装備
NPCのインベントリに装備させたいArmorとかをCSで入れる
他の同属性は外しておいた方がスンナリ
>魔法
Spell欄に覚えさせたい魔法を入れる

CS日本語helpと他の人のModを見て覚えるのがいいんでねい
半年ぐらい弄れば大体なんでも弄れるんじゃないかな
343名無しさんの野望:2010/12/01(水) 03:04:44 ID:8SnAVMQ7
>>342
ありがとう!
BUDってランダムダンジョンだったのか
今からCS覗いてスクリプトと戦う作業に入ります・・・
344名無しさんの野望:2010/12/01(水) 03:08:39 ID:ztz41mPk
>>342
まさかこんな時間に丁寧な即レスが・・・
参考にしつつ精進します 大感謝
345名無しさんの野望:2010/12/01(水) 03:22:45 ID:ztz41mPk
>>342
>>344続き...
と思ってCS日本語ヘルプ(の跡地?)に見に行ってきましたがアクセス不可でした 一応ご報告までに
本家?のTES CS WIKI へぐーぐる翻訳先生と一緒に行ってみたらカオスな事になったけど・・・ちょっとMy脳と格闘してきます
346名無しさんの野望:2010/12/01(水) 03:25:24 ID:T2IgMEuZ
んー
URLが古くなってら

■Construction Set 日本語 help
http://shy.jsphr.net/upload/img/ups05912.zip

次スレ立てるときまで誰か覚えてたら、
書き換えといてください
347名無しさんの野望:2010/12/01(水) 03:27:59 ID:GUqJ5Tpg
>>296完全スルーって事は方法がないって事なんでしょうか?
348名無しさんの野望:2010/12/01(水) 12:05:04 ID:ng9LqgUb
うちは問題なく出来るし
どこかやり方をミスってるんじゃないか、prevが残ってるとか
FormIDも親>子で昇順になってないとエラー出るし、できるだけCSで編集した方が良いと思う
349名無しさんの野望:2010/12/01(水) 14:12:45 ID:bG3in36G
>>337
申し訳無い、ちょっと文意が分からないです。

思った通りに動かないけどこのスクリプトで合ってる?、という事なのか、
これで思った通りに動いてるよ、という事なのか。
いずれにしろ目的とする動作をまず具体的に教えてもらわないと。

こちらは質問個別にその都度単発的に答えているだけで、今現在>>337さんが何を
目的に何をしていて何が問題なのかの詳細の把握は出来てはいないですよ。

また通常のIdleに戻る、という事ですが、システムが今再生しているkfとのPriority
でSpeccialIdleが停止した様に見える事もあるのでtdtで再生中のkfの確認を。

PickIdle不発は多分2つのSpecialIdleが切り替わる時に一時的にSpecialIdleを2つ
同時に再生している状態になり、その時にさらにPickIdleすると起きると思うので、
それが問題になる状況以外では関係は無いと思います。
350名無しさんの野望:2010/12/01(水) 14:14:13 ID:bG3in36G
>>339
Bip02は原則回転させない方がいいかもです。回転させると多分アクターの向きと
移動の方向が妙な事に。

Turnの速さを変えるならGameSettingの「iHorseTurnDegreesPerSecond」を。
デフォは45度/秒です。
また馬の足踏み旋回みたいなその場回転的な動きではなく、操舵輪での最小回転半径的
な事をするのでしたらTurnのkfでのBip02の前進量とiHorseTurnDegrees〜との調整で
多分。GameSettingはスクリプトから動的に変える事も出来ます。

で、SpecialIdleでのバンクって最終的に走行中に必要になるだけでTurnの時はそのkf
でバンクすればいい気がするのですが、今Turnの時にSpecialIdleでバンクさせている
理由ってなんですか?
ゆっくりハンドルを切る繋ぎの動作の為ならBlendで良さそうな気も。

またTurnも走行もバンクはSpecialIdleで統一、みたいにすればなんか共通化出来て
良さそうに思えるかもですが、SpecialIdleでのバンクはいわば苦肉の策で今後不発
問題が起きる可能性もあり共通化にはあまり適していない気も。
3513:2010/12/01(水) 15:41:38 ID:DrdnjWvt
>>349
理解に苦しむ文章を書いてしまい本当にすみませんm(_ _)m

turnright/left.kfにはおっしゃる通りSpecialIdleは必要なかったですね…。
以前はBlend:を知らなかったので、ポーズのゆっくりな変化をSpecialIdleを重ねて
実現するしかないと思っていたので、それで無駄にバタバタしてしまいました。

重ねるSpecialIdleには、Forward(歩き)やFastForward(走り)の時の
左右回転にしか必要なかったですね。
その際は同時押しを感知することになりますが、それは
==========================================
set MyKey1 to 17
set MyKey2 to 32
If IsKeyPressed3 Mykey1 && Keydown == 0
  If IsKeyPressed3 Mykey2 && Keydown == 0
==========================================
こんなやり方でできるのでしょうか…??
すみません、HotkeyMODを見てもよくわからなくて…m(_ _)m

いずれバイクの設定とかをプレイヤーが切り替えられるようにするなら、
この辺りの知識は必須になりますね…。
ちょっとずつMODを見たりCS Wikiを読んだりして勉強しておきます。

回転速度は「con_SetGameSetting iHorseTurnDegreesPerSecond 75」のようにして
スクリプト中で変更することができました!! ありがとうございました!!
352名無しさんの野望:2010/12/01(水) 18:30:42 ID:JZH0axH6
>>351
結局>>337ってどういう意味だったんですか?
いや別にもういいならそれはそれで構わないんですけど、でも走行中もそれと全く同じ
事をするのでまた同じ話になりそうな気も。

で、今キー検出の方法に話を広げると混乱しそうな気がするので、とりあえず
スクリプトの先頭にこの三行を。

if IsMovingForward == 0
return
endif

これで前進走行中以外は以降のスクリプトは実行されなくなるので、今までやって来た
事をそのまま走行中だけに適用出来ると思います。
とりあえず走行中にバンクさせてみてSpecialIdleの挙動と操作の充分な把握をまず。
353名無しさんの野望:2010/12/02(木) 00:18:29 ID:01LMb4kK
スクリプトを教えてください
不特定のNPCがある装備(仮にAとする)を装備すると魔法(script effect)が発動する
スクリプトを作ろうとしています。

vanillaにも存在する装備にも適応させたいと思い、装備ごとにスクリプトを設定するObjestタイプ
ではなく、Questタイプで判定させようとしています

(Actor).GetEquippedObject 装備部位 
とか 
(Actor).GetEquipped ID

のActorの部分です。

Questスクリプトでは GetSelf は使えないみたいなので良い方法はないでしょうか?よろしくお願いします
354352:2010/12/02(木) 00:33:19 ID:01LMb4kK
途中の文章が抜け落ちてました('A`)

(Actor).GetEquippedObject 装備部位 
とか 
(Actor).GetEquipped ID

のActorの部分です。



装備しているNPCをActorとすると

(Actor).GetEquippedObject 装備部位 
とか 
(Actor).GetEquipped ID

のActorの部分です。

です。よろしくお願いします('A`)

355353:2010/12/02(木) 00:34:33 ID:01LMb4kK
そして名前を間違えた・・・
354 = 353 です('A`)
356名無しさんの野望:2010/12/02(木) 03:35:33 ID:ZoI6OhMX
>>348
IDの値とかが影響してたのかも知れません。
親用のツリー作った後にTESEditで子にしたいツリーをコピーしてRalate変えたらいけました。
アドバイス有難うございました。
3573:2010/12/02(木) 07:07:22 ID:ca4SFhX+
>>352
>>337は「SpecialIdleの切り替えがなくても、なぜかポーズが通常のidle.kfなどに戻る」
ということで不思議だったので、スクリプトがおかしくないか一応書いてみました。
でも結局turnright/left.kfにはSpecialIdleは必要ないということで取り下げました。
スクリプトも無茶苦茶です(汗)

SpecialIdleの切り替えがよく分かっておらず、試行錯誤してようやくできました。
・SpecialIdleにはCYCLE_LOOPを使う。CYCLE_CLAMPだと切り替え不可
・1つのSpecialIdleにつき、PickIdleは1回だけ行うべし。

>>352様のおかげで、今とても順調に動いています!! 本当にありがとうございます!
後で少し動画を撮ってアップしてみたいと思います!
358名無しさんの野望:2010/12/02(木) 09:08:05 ID:LHor5ami
>>353
ある装備Aが特殊で1つしかない装備で、questscriptっで処理したいなら、

武器にscript貼って
scn wepon

begin onadd
set quest.who to getcontainer
end

questに
scn quest
ref who

という感じでActor部分を入れられます
不特定多数なら、OBSEのsethandler使って、onaddかonequipが使いやすいと思う
3593:2010/12/02(木) 18:53:11 ID:ca4SFhX+
バイクのテスト動画をアップしてみました。
何の面白みもない動画ですが、よかったらどうぞ。
http://www.nicovideo.jp/watch/sm12918236
趣味でヘヴィメタを入れてしまったので、苦手な方はお手数ですがミュートでお願いします。
ヘヴィメタの音以外、他の音声はほとんどないです。
360名無しさんの野望:2010/12/02(木) 19:22:32 ID:ZuYjoEZb
おお〜すごいですねー
自分は部外者でしたけど、形にしたあなたとサポートした方々のやりとりはこのスレの財産ですよ〜みなさんGJです
361名無しさんの野望:2010/12/02(木) 19:52:50 ID:mKuWBf+9
>趣味でヘヴィメタを入れてしまったので、

あんまニコ厨がどうだといいたくないんだが
動画をやる人って、なんでこんなにナチュラルに
音楽を違法使用するのかね
362名無しさんの野望:2010/12/02(木) 20:05:03 ID:qsRDz50o
>>361
議論スレで死ね
3633:2010/12/02(木) 20:22:29 ID:ca4SFhX+
>>360
ありがとうございます! 動画説明文にもある通り、
このMODの9割(以上)はここの住人様のおかげです。
あとNR500をアップしてくれたオリジナルMOD様も。
このスレの財産とは大変身に余る言葉です。すげー嬉しいです!

>>361
申し訳ないですが、荒れる原因になるのでやめてもらえると助かります。

>>362
できれば荒らしたくないです。
364353:2010/12/02(木) 20:24:00 ID:01LMb4kK
>>358
ありがとうございます。
やっぱり装備自身にスクリプトつけたほうがいいかなぁ。
vanillaの装備(その系統全て)にも反映させたいけど、あまり装備自体は
触りたくないなぁと思って、先にCompareMaleIconPathでその系統一群を括
っておいてと思ったのですが・・・一個一個貼っていくのがスゴク大変です('A`)
ライバッシュのタグでスクリプトだけ反映させることって可能でしたっけ。

ところでOBSEのsethandlerは新しいものです?
検索してもひっかからなかったです・・・
365名無しさんの野望:2010/12/02(木) 20:31:01 ID:mKuWBf+9
>>363
>申し訳ないですが、荒れる原因になるのでやめてもらえると助かります。

あんたこそ音楽の違法使用をやめれば?
他人のせいのような口ぶりで、盗人猛々しいな
366名無しさんの野望:2010/12/02(木) 20:33:52 ID:hR3kUQvM
>>359
おー、これはすごい。
Ver1.0のリリースは近そうですね。2で攻撃が出来る様になって謎の敵ライダー登場、
Episode3でサーキット兼闘技場で因縁の対決、みたいな展開が個人的に大好きです。

>>337の件は、そのスクリプトだとCLAMP、LOOPいずれにしろその仰る結果にはならない
はずなので、状況に謎が多く少し引っ掛かってました。解決したのならそれで。

CYCLE_CLAMP再生中もPickIdleが不発になるかもです。
別なkfをPickIdleする以外に現在のSpecialIdleを単純に停止する方法があれば今後
色々楽になりそうな気がするのですが、どうにも無さそうな雰囲気も。
3673:2010/12/02(木) 20:55:40 ID:ca4SFhX+
>>366
ありがとうございます!! 本当に>>366様のおかげです!

とりあえず全ての基本モーションkfができればVer.1.0としては出せますね!
謎の敵ライダー笑いました(笑) 攻撃で妨害も可能なサーキット! いいですねー。

>>337のスクリプトは現在もっとシンプルに改良して、問題なく動いてます。
1)IsKeyPressed3で分岐
2)PickIdleする前に、既にそのSpecialIdleが再生中かどうか、変数調べる
3a)再生していないならPickIdleして、変数に該当番号を入れる
3b)再生しているならスルー
9)SpecialIdleがもはや必要ないなら、Idleと同等のものを一度だけPickIdleさせて戻す
現在はこんな感じです。

CYCLE_LOOPでは必ずPickIdleが不発になるようです。
終了フレームまで再生され、解除されます。
3683:2010/12/02(木) 22:19:57 ID:ca4SFhX+
>>367
すいません、PickIdleが不発になるのはCYCLE_LOOPではなく「CYCLE_CLAMP」でした。

話は飛びますが、Episode4ではサーキットで蹴落したはずの因縁のライバルが
痛単車仕様で大変痛くなって復讐に来るなんていいですね。どうしてこうなった。
369名無しさんの野望:2010/12/02(木) 22:51:24 ID:eu/6D65r
おお、動画拝見させてもらいました。
形になってきてるw
苦労してたタイヤ部分もちゃんと回ってるし、速度もそれらしく見せれるぐらいにみえるので、いい感じですね。

Ver1.0の公開楽しみにしてますw
3703:2010/12/03(金) 00:00:13 ID:YtRboxkt
>>369
自分なんかがこれほど温かいお言葉をいただけるとは思っておりませんでした。
速度は迷ったのですが、このくらいが使い勝手がいいかなーと思って。
レースモードではもっと爆発させたいです!
早くVer1.0完成できるように気合入れて取り組んでいきたいと思います。
371名無しさんの野望:2010/12/03(金) 02:43:29 ID:kiXbmHie
動画みたよ!
これはすごいね、ちょっと感動したよ。
3723:2010/12/03(金) 18:47:48 ID:YtRboxkt
>>371
おお、感動されるほどでしたか! これから完成度を上げていきたいと思ってます。

すみません、SpecialIdle(horsemount.kf)でのサウンドの再生なんですが、
CSでNR500の「LeftFoot」にChance:100でサウンドを設定して、
kfファイルのTextkeyに「Enum: Left」や直接「Sound: HondaNR500Ignition」
と設定してみたのですが、一向に音が鳴りません。
ヴァニラの「bowattack.kf」と同様の「Sound: WPNBowDraw」でも鳴りませんでした…。

以前、馬モーションを流用した際の足音を消す際にもなぜかできなかったですが、
何か問題になってそうな所とかありますでしょうか…?
kfファイルでサウンドのタイミングを調整出来ればとても楽になるのですが…。
3733:2010/12/03(金) 20:15:33 ID:YtRboxkt
>>372
すみません、今試してみたら鳴ってました。
どうやらものすごく音量が小さく再生されていたみたいです。
大変失礼致しました。
374名無しさんの野望:2010/12/04(土) 22:29:31 ID:lUuIk5jH
家的なMODを作成中なのですが、疑問点があります。わかれば教えてください。

何もない空間に島を1つ 

その島から飛び降りた場合、
同じ島の上や、指定した場所に戻ってこさせるにはどうしたらよいのでしょうか。

ミダスのアストラル界等を参考にしたのですが、いまいち仕組みがよくわからなくて・・・
375名無しさんの野望:2010/12/04(土) 22:36:33 ID:onCP0jvP
こちらで良いか迷いましたが質問させてください。

・重くなった為OBLIVIONの再インストール。
 ↓
・tes_construction_set_1.2.404+TES_CS_1.2.404_Jplus_090411をインストール。
 ↓
・WryBashインストール。
 ↓
・各種MODをインストール。

とここまで来てCSを起動し、NPCの編集をしようとEditor IDをダブルクリックしたところ、
キャラデータのウィンドウの右端にプレビューの画像が表示されず、
また、コピーボタンを押すとクラッシュしてしまいます。

再インストール前は平常に動いており、色々とググって見たのですがお手上げです。
どなたか解決方法分かる方いらっしゃいますか??
376名無しさんの野望:2010/12/04(土) 22:38:47 ID:ITJ/5h6e
MOD本体というよりはテクスチャなのですが質問です

既存のテクスチャにグラデーションをかける方法はありますか?
現在GIMPとPain.netを使用しているのですが、イマイチ良くわかってないんです。
改めて塗るのではなく、既に塗られている色そのままに、フィルタのようにグラデーションをかけてみたいんです。
もし分かる方おられましたらよろしくお願いします。

377375:2010/12/04(土) 22:39:18 ID:onCP0jvP
375です。

書き込み忘れましたが、

・Windows Vista x64 Business、
・OBLIVION本体はsteam版です。

CS以外は問題なく動作しています。
378名無しさんの野望:2010/12/04(土) 23:26:43 ID:hXLvZiuR
>>375
もしそのNPCが追加種族の場合、
該当ESPを読み込んでおかないとフェイスデータが表示できずにクラッシュすることが多いけど、
それとは違う?
379名無しさんの野望:2010/12/05(日) 00:00:27 ID:7GRkStq0
>>378
Vanilla種族もMBP追加種族もダメですね。
読み込みまではしてるっぽいのですが、
プレビューの下のFullとFaceのチェックボックスがグレーアウトして
選択できない状態なんですよね。
380名無しさんの野望:2010/12/05(日) 00:05:02 ID:L6k4xOIZ
NPCにTail属性の服を装備させたいのですが
CSでどのように設定すればできますか?
教えていただけたら幸いです。
381353:2010/12/05(日) 00:14:08 ID:X5BhP9Io
>>380
スクリプト組まないとむりだったような
382名無しさんの野望:2010/12/05(日) 04:10:44 ID:8Psg/kWk
初心者の質問ですがすいません
CSでLop-EarsElf等の追加種族のNPCを追加して遊んでいたんですが
X117系のNPCを導入しプレイすると体が伸びた様に表示され
人ではなくオブジェクトの様になってしまいます(動かない)
x117系のものは通常と同じ方法では駄目なのでしょうか?
383名無しさんの野望:2010/12/05(日) 05:37:00 ID:JW30PIdt
正しいことを言っているはずなのに完全スルーで荒らし扱いのID:mKuWBf+9かわいそうです(´;ω;`)
384名無しさんの野望:2010/12/05(日) 06:42:50 ID:0i1+7SF9
今更蒸し返す辺りお前は間違いなく荒らしだけどな
385名無しさんの野望:2010/12/05(日) 08:34:49 ID:6C2SxIrF
これがオブリ系スレの実体だからな
>>324が綺麗事ってのは、そういうこと
386名無しさんの野望:2010/12/05(日) 09:41:44 ID:cmS5cwib
>>374
島の下にトリガーゾーンを配置し、飛び降りた人が引っかかるようにしておく
OnTriggerブロックで拾って、島の上にmovetoするスクリプトを付ける、というのでどうだろう
387名無しさんの野望:2010/12/05(日) 10:02:28 ID:wcbm3h+J
ここってMOD作成支援スレだよな
間違って全力スレでも開いちまったのかと思ったぜ
388名無しさんの野望:2010/12/05(日) 10:41:17 ID://3yz0A+
興味ない話題でバイクも興味なかったのでスルーしていたのですが、
何度もぶり返されるのもつらいので

一応ニコ動はジャスラックを通して海外の楽曲に対しても使用量を払ってます。
ただし、ジャスラックもニコ動も完全に信用できるかといえばそれには疑問符がつきますが・・・。
ニコ動は利用者の利便性を図るためにこのような仕組みをとっていますので、
もし対応漏れの楽曲を使用してると気づいた場合はジャスラックかニコ動に対して異議を言う必要があります(違法性があるとわかればすぐ削除してくれます)。
著作権が誰のためのものかを考え、もしジャスラックとニコ動がその権利をないがしろにしている(著作者に対価を払っていないなど)と感じた場合、
1利用者に文句を言うよりジャスラック、ニコ動に直接話をしたほうが著作者の権利を守ることにもつながります(運営のあり方に異議のある場合もあるでしょう)。

いいですか、誰のための著作権なのかをよく考えて誰を相手にすればいいのか間違えないでください
389名無しさんの野望:2010/12/05(日) 11:33:29 ID:tjHk0fB+
要約すると、どんどん違反してもいいお^^って事ですね
390名無しさんの野望:2010/12/05(日) 11:39:04 ID:RuWXg1/O
>>388
思いっきり誤った知識で訳知り顔で語ってしまってますよw

ニコニコの包括的提携の対象となっているのは
「歌ってみた」「演奏してみた」といった
元のソースを使わない実演系の動画です

元の音楽ソースを使用したものについては、包括使用の対象にありません
個別に別途契約を結んで使用しない限りは
全て、考えるまでもなく、対応していません

前提が完全に間違っているので
利便性・対応内外どうこうのくだりは、完全な貴方の妄想にすぎません

問題は、このスレに持ち込むことを、このスレとして許容するかであって
音楽を使用した動画をアップし、このスレにアドレスを貼って
このスレに持ち込んでくる当人に何もいうなというのも
全くもっておかしな、噴飯ものの言い訳です
391名無しさんの野望:2010/12/05(日) 11:47:08 ID:aj2sror1
OBSE経由でCSを起動しようとしているのですが、「FIle'Better Cities.esp'is not a vaild TES file. と出て
はい いいえ キャンセル どれを選択してもすぐにCSが落ちてしまいます。
どのようにすればよいのでしょうか。。
392名無しさんの野望:2010/12/05(日) 11:51:31 ID:aj2sror1
すいません、391の件については自己解決しました。
現在、海外の文字化けしているMODのクエストダイアログを日本語化しようとしているのですが、
トピックを開くと必ずCSが落ちてしまいます。
翻訳している方とかはどのように開いていますか?
393名無しさんの野望:2010/12/05(日) 12:58:52 ID:p7ih4/Ph
>>392
俺は翻訳はしてないが
wiki jp 避難所の Tool - その他 にesp/esmダイアログ入手ツールへのリンクがあるよ。
394名無しさんの野望:2010/12/05(日) 23:10:42 ID:S+T6i2GV
十分に友好度の高い雑魚敵NPCを、説得して所属していた敵組織と戦わせるMODを考えているのですが

組織メンバー同士は友好度+100があるため、脱退させようと考えました。しかし
Getclassでクラスを一発で取得出来るのに対し、Faction(所属組織)については一つ一つ組織を指定し、
それに入っているか否かを返答させるコードしか見つけられませんでした。

また、Factionの変更はリスポーン後にも適用されるようで、単純にFaction脱退だけをさせるとリスポン後も同士討ちをしてしまいました。

そこで考えた方法が

・友好度チェックの後、追加した重量0、プレイヤーに見えない服(フラグ)をNPCに入れる魔法の追加。

・GetFirstRefを使って近くのNPCを認識し、服(フラグ)を所持していて、尚且つ指定したBanditやVampire等の「一般的な雑魚敵」の組織に属している場合に
それらから脱退させ、新たに追加した代替Factionに所属させる。
また逆に、代替Factionに所属しているのにリスポーンして服(フラグ)を持っていないNPCには、
代替Factionから脱退させ、元のFactionの元のランクに所属し直させるクエストスクリプトを常時走らせる。

というものでした。しかし常時走らせる上にランク・組織ごとに十数個ものif文を重ねる事になりますので、負荷がかからないか心配です。
このままで大丈夫か、それともより賢い方法がないかご助言を頂けないでしょうか?
長文失礼しました
395名無しさんの野望:2010/12/06(月) 06:45:49 ID:CoFkZy0G
>>375
Face、Face Advancedタブを選ぶ前に、右下のPreview □ Full □ Head どちらかのチェックボックスをOnにする
で不正終了しないようになりませんか?
396名無しさんの野望:2010/12/06(月) 11:40:28 ID:SVTWSwi6
>>394
createfullactorcopyするとfactionがクリアされるので、これを使うのはどうでしょうか?
雑魚NPC相手に使うということなので、説得された本体はdisableしておけばrespawnで消えますし
397名無しさんの野望:2010/12/06(月) 19:45:39 ID:NFxXsQRL
>>396
レスありがとうございます!早速コンソールにてCreateFullActorCopyを手近なBanditに試させて頂いたのですが
CSwikiにも「Factionデータは写されない」と書かれている筈が、コピーNPCもBanditのFaction(BaseID:177e3)に所属していました。
これはコンソールから使用した場合の特異な状況なのでしょうか・・・?一応下記CSwikiにも似たような報告が載っていましたが
ttp://cs.elderscrolls.com/constwiki/index.php/Talk:CreateFullActorCopy

もう一つ、ガードや野盗等の名前のないNPC(Generic NPC?)は、リスポーンする度に次々と新たなBaseIDを持って生成されるため
たとえDisableで消し続けても、そのうちID数分を使いきり野盗が出なくなってしまう… という事は起こらないと考えて宜しいでしょうか?
もし違うならばDisable後にまたクエストスクリプト等でEnableしなければならないとは思いますが・・・宜しければご助言お願いします。
398名無しさんの野望:2010/12/06(月) 20:27:26 ID:uYjPmMuS
>>397
ちょっと横からレスをして申し訳ないけど、そのURLには全く逆のことが書いてある

CreateFullActorCopyはFactionをクリアしない
だからプレイヤーのクローンを作ったとき、ファクションの情報をクローンから取り除いておかないと、
クローンを攻撃したときや盗みを働いたときにギルドから追放されるかも
399名無しさんの野望:2010/12/07(火) 01:16:15 ID:GDx3J0F0
>>398
中間辺りで、暫くしてからチェックをかけると派閥を脱退している、とあるからエリア切り替わるまで、とかの制限つきとか?

short fnum
ref nfac

set fnum to getnumfactions
while (fnum)
set nfac to getnthfaction fnum
setfactionrank nfac -1
set fnum to fnum + 1
loop

このscriptは試してないですけど、copyactorのfactionをクリアしてしまえば確実ではないかと
脱退させるから、3行目はset nfac to getnthfaction 0になるかも

>>397
leveledcreatureなら、このobjectが敵を出してるだけなので平気だと思いますけど
ガードみたいに直接配置されてると消えっぱなしになるから、disableのあとkillかけるのはどうかな
400名無しさんの野望:2010/12/07(火) 01:22:23 ID:GDx3J0F0
loop止まらない気がした。何度もすいません。

short fnum
short num
ref nfac

set fnum to getnumfactions
while (num < fnum)
set nfac to getnthfaction num
setfactionrank nfac -1
set num to num + 1
loop
401名無しさんの野望:2010/12/07(火) 01:36:35 ID:8jOEXq4P
すみません、質問させてください。
オブジェクトから物理干渉を取り除くにはどのようにすれば良いのでしょうか?

本来動かせる小物等をその場に静的なオブジェクトとして固定したくて、
イメージとしては、バグ状態の絵筆が分かりやすいかと思います。

nifskopeだけでできるのでしょうか?それともblender等が必要になるのでしょうか?
402名無しさんの野望:2010/12/07(火) 10:26:52 ID:+MzRPCz6
>>397
横からですけど。

Factionの変更はRespawn以外にも同じBaseIDのアクターが複数同時に存在する場合も
多分問題があったりで話がどんどんやこしくなりそうな気が。

なのでFactionではなくその改宗アクターの他の同Factionの各アクターに対する
Dispositionを直接変更した方が早いかもです。
GetFirst/NextRefや範囲魔法で周囲の同Factionのアクターを検出して-100するとか。

またその他のアクターのDispositionも適切に変更すれば、その改宗アクターを一気に
袋叩き状態にしたり実際に攻撃が起きてからの助太刀動作にしたりも。多分。

あと、もしそのその改宗アクターを他の場所にも連れ出す、という事だとまた話は少し
変って来るのでその際はまた。
403名無しさんの野望:2010/12/07(火) 10:28:21 ID:+MzRPCz6
>>401
NifSkopeで出来ます。

とりあえずそのnifのbhkRighdBody→MotionSystem以下4つのパラメータを適当な
Staticなオブジェのnifと同じにすれば「絵筆バグ」と同じ状態にはなると思います。
きちんとStatic化するならLayer、LayerCopyも「OL_STATIC」に。
404名無しさんの野望:2010/12/07(火) 11:06:16 ID:zk5m2WUf
blenderに関する質問です
blenderの2.49bを使用しているのですが6角柱メッシュを生成したときカメラをテンキーで水平、垂直位置にして生成しても微妙に斜めになるのですがこれは仕様でしょうか?8角柱や4角の場合はカメラに対して水平垂直に生成されます
実用上は8角柱か四角形を作って変形させればいいので問題ないのですが少し気になったので
405名無しさんの野望:2010/12/07(火) 11:34:38 ID:8jOEXq4P
>>403
ありがとうございます
今までdetailの存在を知らなかったので、目から鱗でした
406名無しさんの野望:2010/12/07(火) 23:42:53 ID:gkCnlvQX
1人称視点の目線の高さを変更したいのですが
Data\Meshes\Characters\_1stPerson\skeleton.nifのどこで設定されているのか場所がわかりません
ご存知の方教えていただけませんか?
407名無しさんの野望:2010/12/08(水) 08:52:26 ID:D+NlnIue
>>406
確かカメラnodeがあるんじゃなかったっけ?頭の辺り
408名無しさんの野望:2010/12/08(水) 10:26:06 ID:VP7G6qXC
目線の高さは確かにそのSkeletonの「Camera01」の位置で決定されますけど、でもその
座標を直接変更してもゲームには反映されないですよ。

>>406
とりあえず手っ取り早く変更するならそのskeleton.nifのSceneRoot→Scaleを。

直接変更が反映されない理由は特にCamera01だけに限らない別な話なので必要でしたら
また。
あと0.2とか極端にScaleを下げると腕が見えなくなったりの問題が起きるかもです。

目線を極端に上下させたり動的に切り替えたりする場合は別な方法もあるかもなので
その際はまた。
4093:2010/12/08(水) 21:02:10 ID:TLmz10Yv
バイクMODを作っていたものです。ついにver1.0が完成しました!
このスレがなければ100%作成不可能でした。本当に感謝に尽きません。
TESNexusにアップしました。
http://www.tesnexus.com/downloads/file.php?id=35978
バグとか動かないとかあるかもしれないので、文句・苦情お待ちしております。

現在の課題はスクリーンをクリアにすることです…。
410名無しさんの野望:2010/12/09(木) 00:54:23 ID:iaXmG/Jj
>>409
おー、ついにVer1.0が。バンクがいいかんじです。

スクリーンの半透明化はNiAlphaPropertyの追加で行けると思います。

あと走行音はSoundオブジェをMoveToでも行けるかもです。
適当なタイミングで音オブジェをDisable→PCかバイクにMoveTo→2フレぐらい待って→
Enableで。音ON/OFFはEnable/Disableで。

一人称時に車体パーツが消えたりするのはそのパーツの原点位置の関係です。多分。
対策は各パーツオブジェの大体中心に近い位置が原点になる様にその全頂点を移動、
オブジェ単位で元の位置へ移動で。車輪でやった事と似てます。

また一人称時のPCの腕は一人称肩越し視線MODみたいに「con_Show1stPerson」で
一人称時にも三人称モデルを表示、みたいな方法も。
その場合多分カメラ位置が問題になると思うのですが、一人称Skeletonの変更がOKなら
カメラ位置を動的に変える事は可能です。
411名無しさんの野望:2010/12/09(木) 01:31:23 ID:h13AaRKQ
著作権違反の動画も消してもよカス
412名無しさんの野望:2010/12/09(木) 02:12:00 ID:QOv8rDAC
>>411
何も出来ないカス以下の存在が雑音がなりたてるんじゃねえよ
さっさと消えちまえよ臭せぇから
オメエみたいな存在は朝鮮人の肛門にこびりつくクソ以下の価値しかねえよ
俺にレスするのもやめてくれよ
魂が汚れちまうからよ
413名無しさんの野望:2010/12/09(木) 04:29:21 ID:AZDxBkPV
>>409
完成オメです!
オブリの可能性を感じさせる素晴らしいMODだと思いますよ
414名無しさんの野望:2010/12/09(木) 11:32:24 ID:46LKQ8NB
>>409
いいですねーー
これ、Youtubeに動画もアップしてTESNにも貼った方がいいと
思いますよ。動画観ればMODの完成度もより伝わりますし。
4153:2010/12/09(木) 14:56:09 ID:jzSC70vC
>>410
毎度ながら、適切なご助言ありがとうございます! 試してみます。
nifファイルの修正はかなり骨が折れそうですが、ハンドル周りだけでもやっておきたいです。

>>413
ありがとうございます!
確かにバイクまで登場できるのですから、Oblivionの可能性は凄まじいですね。

>>413
もう少し改良したらYouTubeに動画を投稿してみたいと思います。スクリーンとか…。
4163:2010/12/09(木) 20:22:24 ID:jzSC70vC
>>410
スクリーンの透明化は、「NiTriStripsを右クリック>Block>Insert>NiAlphaProperty」して
NiTriStripsのPropertiesでそれを指定してからNiMaterialPropertyのAlphaで変更できました!
本当に勉強になります! ありがとうございます!

Soundオブジェですが、これはWorldObjectsのActivatorなどで透明な適当なものを作って、
それのスクリプトで音を再生するようにして、NR500のスクリプトでそのオブジェを
適宜MoveToしたり、Enable/Disableすればよいのでしょうか??
Soundという分類のオブジェを探しましたが、なかったのでこういうことかな…と(汗)

「con_Show1stPerson」で確かに一人称でも頭部後ろからの視点になりました。
ただ、これを有効に使うには
1)一人称視点の時のみ有効にする。三人称視点時にはOFFにする必要がある
2)カメラ位置を変更するためにSkeletonファイルの変更が必要
の2点が問題になるわけですね…。
2については、ファイルが置き換わるというだけで通常時にカメラがズレるなどの
デメリットがないなら全く問題ないと思ってます。
でも1が問題っぽくて、今、一人称なのか三人称なのかを判断する
「IsThirdPerson 」がOBSE v0019みたいなんです…。

私はOBSE 0018b4なのですが、OBSE v0019ってまだ普及していないように思えます。
必要なOBSEバージョンが高いと利用出来る人が減ってしまいそうです…。
あ、しまった、OBSE v0015以上必要ってReadmeに書き忘れた!! やってしまったorz
417名無しさんの野望:2010/12/10(金) 09:35:17 ID:6c+alkDq
>>416
「Soundオブジェ」ってMiscellaneous→Soundの「HondaNR500Running」等の事です。

走行音はどうしましょうね。
Loopで2D指定のSoundオブジェをPCにMoveToすればそのSoundオブジェのあるセルが
ロードされている限りプレイヤーの耳元で音が鳴り続けるので簡単だと思ったの
ですが、良く考えたらこれだと敵ライダーの場合うまくない気が。

Loopではなく数秒程度の短い単発音にしてスクリプトで時間を計ってPlaySound3Dを
必要な間だけ繰り返した方がいいのかもです。
Loopだとなんか止める方法が無いみたいですし。

でも単に一つのSoundをPlaySoundで連発しても多分システムの音連発予防措置で再生
されなかったり音の繋ぎが目立ったりするかもです。
なので例えば0.5秒でフェードイン/アウトする5秒の走行音wavを作り、その同じwavを
指定したSoundを2つ作って4.5秒毎に交互にPlaySound3Dするとか。


「IsThirdPerson」はOBSE初期からある関数です。確か。コンソールで打って確認を。

で、少し話が逸れますが、OBSE関数で戻り値がコンソールに表示されない場合は
適当なGlobal変数かクエ変数を用意して例えば「set aaa to isthirdperson」とか
すれば値が即表示されます。

でもこれって他に正統な手段がありそうな気も。
その辺詳しい方がいらっしゃいましたら。
418名無しさんの野望:2010/12/10(金) 09:37:03 ID:6c+alkDq
続き)
カメラ位置の変更は前スレに関連した話が色々あります。

でもこれも良く考えたら乗馬時のカメラ位置ってヒトBip01の親になるActorParentに
従うので、各kfのActorParentとヒトBip01NonAccumの位置関係を調整してActorParent
が乗車姿勢時のヒト頭位置の「前」に来る様にすれば三人称モデルの頭が一人称カメラに
かぶらず、一人称Skeletonを変更する必要も無いかもです。

この辺少しややこしいですし、前傾姿勢でかなり前方にある頭位置にカメラを合わせた
場合の一人称時のバイク前部の見え方や三人称時の注視点(カメラ回転中心)が今より
前方になる事での操作感等々少し謎なので色々テストが必要だとは思いますが。

という事で細部の作り込みって実は場合によっては大枠を作るより色々大変だったり
します。でもその辺は気合で。
4193:2010/12/10(金) 12:36:49 ID:betFfhW7
走行音の繰り返しはこんな感じでできました。

set ForwardTimer to ForwardTimer + GetSecondsPassed
If ForwardTimer > 4
  If ForwardSound == 0
    PlaySound3D HondaNR500Forward01
    set ForwardSound to 1
  Else
    PlaySound3D HondaNR500Forward02
    set ForwardSound to 0
  EndIf
  set ForwardTimer to 0
EndIf

すごく…力技です…。こういう具合に総当りで他にも設定していくと冗長な感じにみえますが、
これは仕方ないですよね。この程度なら負荷にならないことを祈ります。

あとは他のkfに移ったときに、Timerを適切にリセットしたりすれば上手くいきそうです!
kfを短時間で切り替えまくると音が重複しまくると思いますが、これは仕様として諦める…か、
前回再生した時間を判定して再生するか否かを…こんがらがりそうです…orz
4203:2010/12/10(金) 12:38:41 ID:betFfhW7
「IsThirdPerson」、普通に使えました(汗) すみません。
OBSE v0019のドキュメントに書かれていたのを見たので、それで追加されたのかと早とちりしました…。

>OBSE関数で戻り値がコンソールに表示されない場合は適当なGlobal変数かクエ変数を用意して
>例えば「set aaa to isthirdperson」とかすれば値が即表示されます。
おおー!! これは凄いです! 溢れるハウツーが流石としか言いようがないです
打っても(エラーは出ないが)何も表示されずスルーされて判断できないので、これは非常に使えますね!!!

>乗馬時のカメラ位置ってヒトBip01の親になるActorParentに従う
なるほど…ということは、
1)カメラを前方に移動するために、ActorParentを前方へ移動
2)ズレたキャラ位置を直すために、Bip01NonAccumを後方へ移動
こうやってkfファイルを作りなおせばできるということですね!!
最初からCamera01で変更出来れば楽なのは確かですが、このやり方でクリアできそうです!!

曲がる時とかバックする時とかは、顔の向きの変化と同量のZ軸の回転を加えるというのも
面白いかも知れません。でもあんまりやると不自然感と3D酔いを起こしそうですね…。
でも夢・妄想が広がりまくりです! 本当にありがとうございます!
421名無しさんの野望:2010/12/14(火) 01:04:51 ID:k5boVDVA
多分ここで、以前にスケルトンで体型を変更する方法が載っていたと思うのですが
首だけ少し細くとかスケルトンで変更可能なのでしょうか?

HGECとか入れているとモデルの出来が良い分、余計に首が太いのが気になってしまって
もしかしたら体型変更と同じで首だけとかいじれるんでしょうか?
422名無しさんの野望:2010/12/14(火) 15:32:37 ID:TG8Xa/kl
blenderのウェイト設定で質問させてください。
あるボーンに設定してあるウェイトを、各頂点のウェイトバランスを崩さず
一括して変更する方法は無いでしょうか。
具体的に言うと、金属鎧で覆われた鎧内部の胸を揺らしたいのです。
胸部を覆う鎧は金属である為BBBで揺らしたく無い。
金属部分に当たらない範囲で胸を揺らしたいのですが、従来のBBBでは
揺れが激しく金属鎧を突き破ってしまう。
これを解決するには

1)従来のBBBによる稼動範囲でも接触しない様、鎧の形状を変更する。
2)激しく揺れない様、胸部ボーンを低いウェイト値で塗りなおす。

だと思います。出来れば鎧の形状は変更したくないので、2)で行きたいのですが
胸部ボーンのウェイトを塗りなおすにあたり、プリセットの綺麗なグラデーションを
維持したまま値を下げる事が出来ず四苦八苦しております。
そこでボーンのウェイトを全体的にコントロールする方法は無いかと思った次第です。
「ここを1/2にすると、ボーンに設定されている全てのウェイト値が1/2になる」
様な機能は無いでしょうか。

読みにくい文章で申し訳ありません
423名無しさんの野望:2010/12/14(火) 22:33:45 ID:vsmwbgRh
>>421
Skeletonでの体型の変更は各ボーンに体メッシュがどうWeight付けされているかに
よってどこがどんなかんじに変更出来るかが決まります。

Blenderでヒトポーズを作る時と同じ要領で首周辺のBoneのScale/Translationを
変えてみて、それで目的とする形状になるのならSkeletonでの変更で行けますし、
うまく行かないのなら無理かも、て事です。
その場合はメッシュの形を直接変えたりの別な方法で。
424名無しさんの野望:2010/12/14(火) 22:36:04 ID:vsmwbgRh
>>422
BlenderのWeight値って一旦nifにExportすると合計が1.0になる様に正規化されるので
その応用で行けないですかね。

例えばA:Bが0.7:0.3なら1.0のCを追加してA:B:Cを0.7:0.3:1.0とBlender上で指定
するとnifでは0.35:0.15:0.5に。そんなかんじで。
425名無しさんの野望:2010/12/14(火) 22:38:27 ID:vsmwbgRh
バイクの二人乗りやサイドカーに牛を乗せるのはどうしましょう。

同乗者アクターの位置操作はGet/SetPosで出来無い事はないのですが、でもバニラ
状態での毎フレームGet/SetPosには値の変化の連続性に少し問題があって高速移動時
にそれが顕著になるので、動きを滑らかに見せるには単にGet/SetPosだけでは
うまくないかもです。

このGet/SetPosの挙動はOSR(Oblivion Stutter Remover)を入れると改善したり
します。理由はフレーム更新のタイミングとかその辺です。多分。

とりあえずOSRを入れ、同乗者にしたいNPCに適当なアイテムでも持たせて
そのスクリプトでGet/SetPosすれば同乗者が誰で現在どんな状態であれバイクの後ろに
くっついて一緒に動いて見えるとは思いますが。スクリプトはこんなかんじで。

set x to バイク.GetPos X ;----x,y,rzはFloat変数
set y to バイク.GetPos Y
set rz to バイク.GetAngle Z
set x to x - ( sin rz ) * 130 ;----「130」は仮。バイクコリジョンの大きさに応じて
set y to y - ( cos rz ) * 130
同乗者.SetPos X x
同乗者.SetPos Y y
同乗者.SetAngle Z z

わざわざ三角関数でバイク中心から「130」離れた後ろの位置にするのはコリジョンが
重なるのを防ぐ為です。同乗者の見た目位置の移動はSpecialIdleで。

またz位置もきちんと同期させるにはzもSetPosする必要があるのですが、その場合
同乗者の自由落下動作を抑止する必要があったりで少し細かな話に。

いずれにしろ最終的にどの程度滑らかに動いて見えるかは描画環境にもよるので、
どういう手法で行くかも含めその辺の把握にまずテストが色々必要だと思います。
後で試験的に二人乗りさせた動画をUPします。
426名無しさんの野望:2010/12/14(火) 22:52:39 ID:JMUnDHrS
AttackRight/Left等の攻撃モーションについて質問があります。

プレイヤー用のオリジナルの攻撃モーションを作成しゲーム上で繰り返しモーション検証(剣をぶんぶん振りまわし)を繰り返していたところ
自キャラの向きが徐々に右向きにずれていくことに気付きました
(通常Wキー押下で自キャラは画面奥に向かって移動するが、右向きにずれているときは
 画面右奥側に向けて移動してしまう)。

質問:
このようなキャラの向きが徐々に捻じれる原因は何が考えられるでしょうか?

個人的にはPelvisのRotYに角度が付いているのが原因かと推測しているのですが
だとすると攻撃モーション中Pelvisを回転させるような体幹をねじるようなモーションは問題があったりするのでしょうか?
このあたり、モーション作成における「べからず」ルールがあるなら教えて頂けると幸いです。

※例えばモーション開始時のPelvis RotYは0である必要がある、
 TextKeyのa:Lやa:R再生フレーム以降、PelvisのRotYは0でなければならない、など。
 現状、Bip01とBip01 NonaccumはY軸の角度はつけておらず常にRotY=0をキープさせています。
 一方でPelvisについてはRotYを左右に動かしてしまっています
427名無しさんの野望:2010/12/15(水) 01:36:35 ID:1Qt9VlIy
Loading画面について質問です
いくつか自作し、自作Cellへの移動時のみ表示で設定したところ、
何度読み込んでもload_in_game_default.ddsが表示されてしまいます。
サイズがでかいのが原因かと思い、DX1で同サイズにしても同じ結果でした。
Loading画面自作したことのある方いらっしゃいましたら、何をチェックすればいいのか教えてください。
428名無しさんの野望:2010/12/15(水) 09:36:17 ID:H0PPr6ZA
>>426
Bip01の「RotZ」が怪しい気が。
もしそこが「-90」以外になっていると移動方向が妙な事になるかもです。

Pelvisはどう動かしてもOKです。多分。

ただ、歩く/走りながら同時に再生する可能性があるkfの場合、バニラに倣った
Priority指定ならPelvisは下半身のそれで上書きされる、というルールはあります。

なので静止時にだけいいかんじに見える様にPelvisを大きく回すと歩く/走る時に
上半身の向き(移動方向ではない)が静止時と違って見える事があり、それが問題になる
場合はあまり動かさない方がいいかも、みたいな事は結果として言えるかもですが。

でもそれも「べからずルール」みたいに特にやってはいけない訳でも無いです。
自由に弄って結果オーライなら別にそれで。
それにどのボーンをどう動かすのが適切かは場合によって全く変わるので、各ケース
毎に「べからず」を列挙するのは逆に超大変だったりしますし。

とりあえずはまずバニラ各kfを良く見て色々な場合の各ボーンの動かし方の把握を。
その方が多分話も早く後に繋がる気が。
429名無しさんの野望:2010/12/15(水) 09:37:53 ID:H0PPr6ZA
>>427
DDSのPath指定は「Menus\Loading\xxxx.dds」みたいに大文字小文字がなってます?

これが例えば「Loading」が「loading」だったりするとtxtは出るのに絵が出なかったり
します。ここの「Important Information about Loading Screens」を。

http://cs.elderscrolls.com/constwiki/index.php/Loading_Screens
430名無しさんの野望:2010/12/15(水) 10:07:36 ID:1Qt9VlIy
>>429
ビンゴでした
パスがMenus\Loading\でした…まさか大文字小文字でアウトとは気づきませんでした
ありがとうございました〜
4313:2010/12/15(水) 14:33:02 ID:w/siPFEs
>>425
おおおー!!! 最高のタイミングで!! ありがとうございます!
私はOSRを導入しています。また、この機能を入れた際には、
「二人乗りする場合は、OSRを入れてないと挙動がおかしくなる可能性があります」
と注意書きすれば大丈夫だと思います。OSR自体も素晴らしいMOD(?)ですし。

アイテムのスクリプトに「Begin OnAdd 」として添付して試してみたのですが、
「同乗者.SetPos X x」の「同乗者」はどうやって指定すればいいでしょうか…??
「そのアイテムを取得した人」にすればいいとは思うのですが、CS Wikiを見てもわかりませんでした…。

または、CTAddPoseのTouch魔法を見て「GetSelf」が使われていたので、
これの値をグローバル変数に入れて「グローバル変数.SetPos」とやろうとしても、
「ObjectReference か ReferenceVariables のみが指定できます」となってしまいます…。
エラーメッセージ通りなのでしょうが、Referenceとして同指定すればいいかわかりませんでした…。
432名無しさんの野望:2010/12/15(水) 16:30:22 ID:f+UlQX8z
>>425ではないですが
>>431
アイテムを持っている人のRefは GetContainer で取得できます
アイテムの入っているContainerのRefを返す関数ですが、
ActorやCreatureなどの場合はContainer==Actorになります
owner == Player && owner.IsActor == 1 などでチェックしないと
ContainerやCreatureの死体に入れたときにも動作するので注意

あと、CSHelpのAddItemの項目に書いてありますが、OnAddはAddItemでは呼ばれないです
この場合はGameModeで動いているでしょうからその辺で処理すればいいかと
4333:2010/12/15(水) 17:45:38 ID:w/siPFEs
>>432
大変的確なご回答ありがとうございます!
アイテム添付スクリプトとして下のような感じにして、MPCに渡してみたのですが、
どうも何も起こりません…なんでだろう…orz

ref owner
Begin GameMode
  set owner to GetContainer  :owner=アイテムの所有者
  If owner != Player && owner.IsActor == 1 ;プレイヤー以外のActorなら
    set StartTandemRiding to 1  ;現状ではダミー
  else
    Return
  EndIf
set x to HondaNR500.GetPos X ; x,y,rzはFloat変数
set y to HondaNR500.GetPos Y
set rz to HondaNR500.GetAngle Z
set x to x - ( sin rz ) * 130 ; 「130」は仮。バイクコリジョンの大きさに応じて
set y to y - ( cos rz ) * 130
owner.SetPos X x
owner.SetPos Y y
owner.SetAngle Z z
End

ダミーメッセージを入れて確認してみたところ、プレイヤーが所持している間は
常にReturnを返していて、MPCに渡したところ一度だけSetPosが実行され、
それ以降は何も起こっていないようです。またそのMPCは全く移動しません。。。
434名無しさんの野望:2010/12/15(水) 18:33:24 ID:f+UlQX8z
あぁゴメン、条件が違ってた。正しくは owner == Player || owner.IsActor == 1
「プレイヤーかつNPC」じゃなくて「プレイヤー又はNPC」だよね
435426:2010/12/15(水) 20:19:49 ID:E1PsUgeP
>>428
>Bip01の「RotZ」が怪しい気が。
>もしそこが「-90」以外になっていると移動方向が妙な事になるかもです。

その辺りは注意していたのでまさかそんな初歩的ミスは…と思いながら見直してたら
一部の攻撃モーションでBip01のQuatZやYにところどころ変なキーが打ってありIPOカーブが変なことになってました。
ああああああ。どこで間違えたのやら。お恥ずかしい。
Bip01はせいぜい平行移動程度で弄ってないはずという先入観があって見落としてたみたいです。
バッファにコピーしたりミラーでペーストしたあとなんかに変なキーを入れてしまったのかも。
おかげで気持ち悪いねじれもなくなりそうです。
結局Pelvisは気にしなくてよかったのか。

>なので静止時にだけいいかんじに見える様にPelvisを大きく回すと歩く/走る時に
>上半身の向き(移動方向ではない)が静止時と違って見える事があり、それが問題になる
>場合はあまり動かさない方がいいかも、みたいな事は結果として言えるかもですが。

その辺のPriorityはバニラのモーションを若干上書きする感じで調整して弄ってあります。
バニラの正面向いた蟹走りが好きじゃないので体は横向きっぽくしつつ攻撃自体は画面正面に向かって振って違和感のない感じに。
今作っているMODはかなり広範囲のモーションに手を入れているのですがようやく形になってきたので
完成したらこちらでお披露目させて頂こうかと思います。
有難うございました。
436名無しさんの野望:2010/12/15(水) 21:42:50 ID:HhtbUoDr
OnAddって原則AddItemでトリガーされますよ。

日本語CSHelpのAddItemの解説は古いかもです。現在の本家CSWikiを。
またロード状況によってはAddItemは例外的な動作をするのでそれ自体少しややこし
かったりします。

で、今回の場合アイテムの渡し方自体はまだ未定で、現状仮に多分PC→コンパニオン
のインベントリ操作経由で渡しているみたいなのでAddItemとはまた別な話な気も。

いずれにしろ主眼はGet/SetPosの検証だと思うのでその辺の細かな話はまた追々、
と言う事で。

>>433
アイテム所有者Refの取得は多分それで行けると思います。
また所有者Refの取得方法はそのアイテムを相手にどうやって渡すかによって最適な
方法は変わる場合もある、という事を頭の隅にでも。

で、申し訳無い、>>425のコード例って最後の行の変数名が間違ってました。

誤) 同乗者.SetAngle Z z
正) 同乗者.SetAngle Z rz

あと「HondaNR500」っていわゆる「BaseID」だと思うのですが、GetPosに必要なのは
「ReferenceID」です。
配置したバイクをWクリ、Reference→ReferenceEditorIDに例えば「HondaNR500Ref」
みたいに適当な名前を。GetPosではその名前の方を使います。
4373:2010/12/15(水) 22:52:35 ID:w/siPFEs
>>436
やったー!! mpcが背後霊よろしくバイクの後ろにくっついてきますよっ!!
http://ime.nu/moto4life.web.fc2.com/material/test_moto23.jpg
http://ime.nu/moto4life.web.fc2.com/material/test_moto21.jpg
http://ime.nu/moto4life.web.fc2.com/material/test_moto22.jpg
ただ高さの調整の精度が少し悪いみたいです。
もう少し距離を近づけたりして確かめてみます。

z→rzへの調整と、Refを直したら大丈夫でした! Referenceってその固有のオブジェを
呼び出すための整理番号って感じなんですね! ようやく理解できました!

あとはPickIdleでオールPriority:99にしたポーズをとらせればいけそうです。
多分それで、敵が現れたりしても抜刀とかできないと思います。
あと、このバイク特有のバンクの際には、同乗者にもバンクのSpecialIdleを
PickIdleさせればいけそうですね。

本当に>>436様にはお世話になりっぱなしです!!
いくら頭を地面にこすりつけても足りません…。
438名無しさんの野望:2010/12/15(水) 23:01:53 ID:J0QGgiDd
TESNにも謝辞ぐらい書けば?
439名無しさんの野望:2010/12/15(水) 23:15:35 ID:d4HyldF0
>>423
レスありがとうございます
NifSkopeでいじれるのかなっと思って聞いてしまいました…
考えが浅かったようですすみませんでした(汗)
440名無しさんの野望:2010/12/16(木) 00:02:36 ID:cRGXRaVq
段々と個人の作業所と化してきたな
441名無しさんの野望:2010/12/16(木) 00:26:09 ID:hONGBbZc
質問する必要のあるMOD作ってる人が少ないだけじゃね
今まで無いタイプのMODだし、ログは後々の参考になるから
黙って作って公開するより、このスレ的にはありがたいと思う
442名無しさんの野望:2010/12/16(木) 02:27:43 ID:54ZZI1Dq
前にも書いたけど、騎乗できるクリーチャーには興味があるので非常に助かるよ、この流れは。
このスレは過去ログも情報の宝庫でとてもありがたい。
それに情報が分散するより集中している方が見やすいしね。
443名無しさんの野望:2010/12/16(木) 02:30:46 ID:xyS6NjBf
ぶっちゃけこのスレでこんなレベルの低い質問しちゃっていいのかなって尻ごみしたりはする
444名無しさんの野望:2010/12/16(木) 11:08:29 ID:Pj8IL/7M
>>437
動いた様で。同乗者の高さ(z位置)は上の例ではまだ考慮していないので、現状だと
同乗者は足元の地面高さに影響され、結果地面の上をズルズル引きずられる様な動き
になると思います。

同乗者のzをバイクと同期させるにはSetPosZをすればいいのですが、
アクターって不用意にzを変えると自動的に自由落下が始まってダメージを受けたりの
挙動があって思わぬ結果になったりします。

なのでSetPosZは色々テストが必要かもです。可能そうな方法は多分こんなかんじ。

a) とりあえず単にバイクのzをそのままSetPosZしてみる
b) 椅子に座らせる(PC/NPCは座ると自由落下しなくなる)
c) CollisionBoxを常時足元に移動させる
d) con_TCLしてみる

b)でやってみた例です。高低差が無い場所なのでzの同期はよく分かりませんが。
SetPos方式だと全体の雰囲気的に大体こんなかんじ、という事で。

http://shy.jsphr.net/upload/img/ups21272.zip
445422:2010/12/16(木) 13:53:49 ID:baRo+Eit
>>424
なるほど、一度Exportですか。さっそく試してみます。
レスありがとうございました。
4463:2010/12/16(木) 19:58:57 ID:0vaHkSJi
>>444
おー!! これは見事な二人乗りです! 意外にも椅子のポーズが合ってますね。
自分でも少し試してみたのですが、
a) 上手く追従します。ただし、やはりたまに落下ダメージを受けることがあります
b) 現在この方法をテスト中です。過去ログに任意に椅子に座らせる方法があったので
c) これはまだ試していません。
d) 「con_TCL」「owner.con_TCL」「owner.con_TCL 1」とか色々やっても上手くいかず…。

椅子方式で上手くいけばいいのですが、もしも「con_TGM」みたいのがあれば
それでも十分な気がします。披ダメージボイスは出ないに越したことないですが…。

a方式でだけ試したものを録画したのがコレです。SpecialIdle切り替えに成功しています。
http://www.nicovideo.jp/watch/sm13038557
447名無しさんの野望:2010/12/17(金) 12:52:49 ID:HY7UW7Sv
>>446
シュールすぎです。好きですが。それは置いといて。

アクターの落下ダメージ自体は「ResetFallDamageTimer」で抑止出来ます。
なのでとりあえずの二人乗り実現にはa)が一番お手軽かもです。

でも今後例えば同乗者がバイクまで実際に歩いて行って乗り降りする動きを付けたり
するのならb)が逆に最終的に単純になるかもです。

例えば透明な椅子オブジェをMoveToしてその椅子をLocationにしたTravelの
AIパッケをAddScriptPackageすれば同乗者をバイクまで歩かせて座らせる事は
出来ます。
IdleAnimationsでそのアイテムを持っている事を条件に椅子に座る/立つ/座りIdle
を追加指定すれば好きな乗り/降り/乗車姿勢アニメは多分簡単に。
座った状態を維持するのは「SetRestrained 1」で可能です。

これはこれで充分ややこしいとは思いますが。
手法的には色々可能だと思うのでその辺はまた必要に応じて、と言う事で。

あとc)は単にアクターが自由落下しなくなる、というだけなので今回の場合は
労多くしてあまり報われないかもです。手法的には面白いんですけど。

またd)は「owner.con_TCL」で多分OKだと思うのですが、PC以外のアクターに対する
TCLの挙動は少し謎なので関数単体で充分確認する必要がまずあるかもです。
448名無しさんの野望:2010/12/17(金) 15:58:45 ID:iX+FmgZE
手間暇さえかければ戦車戦とか出来そうだな
449名無しさんの野望:2010/12/17(金) 18:16:45 ID:Oih1z4i3
チハのキグルミ被せて弓撃つとか
450名無しさんの野望:2010/12/17(金) 20:37:11 ID:AEEyhZ3i
世界設定的にFOのほうがそういうの簡単そうな気がするんだが、そうでもない?
4513:2010/12/18(土) 00:11:30 ID:MqeALDNi
>>448 >>449
AK-47で魔法弾打つやつがあったので、あんな感じで主砲も撃てるかもしれません。

>>450
FOってFallout3ですよね? Fallout3には確か乗り物がなかった気がします。
このバイクMODは馬のシステムをいじって使っているので、Fallout3は厳しそうです。

>>447
詳しくありがとうございます。色々な手法があるのがよくわかりました。
b)でやってみて、それっぽいのがようやく出来てきました。
http://ime.nu/moto4life.web.fc2.com/material/test_moto24.jpg
ただ、問題もいくつか…。

1)バイクで座標を合わせているのに、椅子に座ったあとしばらくは左右にずれる
 左右フルバンクしたりしてSpecialIdleを何度か切り替えると合い、以降はずれない
2)バイクの速度が上昇に比例して同乗者が後ろに離れていく(仕様だからしょうがない)

画像は位置を調整した後のものです。15回ぐらいSpecialIdleを切り替えて、ようやく合いました。
なぜ横にずれてしまうのかは全く謎ですが、見栄え以外には影響ないので我慢してもらうしかないかもしれません。
速度による離れについても、二人乗り時は速度制限(安全運転)を加えれば限度を設定できそうです。

ところで>>447様のクレジットですが、TESNやReadmeに英語・日本語で
>OBLIVION MOD作成支援/相談スレの住人様方
>http://www.2ch.net/
>尊き住人様方がいらっしゃらなければこのMODはできませんでした。厚く御礼申し上げます。
と書いてはありますが、これでは弱すぎるように思えるので、HNで載せさせていただけないでしょうか?
"God of Blender"とか"Great Nanashi"とか"Oblivion Father"とか何か偉大な名前でお願いしますm(_ _)m

452名無しさんの野望:2010/12/18(土) 09:39:38 ID:zFxb/Vd+
>>451
1)は状況にもよるのですが、例えば座り動作中に椅子とアクターの位置関係を変えると
座り動作が途中で止まってそのままになる事があり、その時にBip01がアニメ途中の
半端な位置だとそうなる事もあるかもです。
その状態のGetSittingの値の確認を。

2)はGetPosした位置って1フレーム前のバイク位置なのでそれをそのままSetPosしたら
今のフレームでは少し後ろになって見えるのは仕方無い気も。
真面目に移動ベクトルで補正すればある程度は改善するかもですが。

あと椅子をMoveToするのにDisable/Enableすると思うのですが、AddScriptPackageと
TargetのDisable/Enableの状態変化のタイミングが重なったりするとクラッシュする
事もあるかもなのでその辺も要注意です。

あと私に関してはクレジットは特に不要です。HNとか面倒ですし。適当で。
453名無しさんの野望:2010/12/18(土) 09:48:42 ID:0bIQ6DYU
動画重すぎ
454名無しさんの野望:2010/12/18(土) 09:52:45 ID:HmRT7o3f
>HNとか面倒ですし
とのことなので>>452に素敵なHNを考えてあげるべきじゃないかと思うんだ
455名無しさんの野望:2010/12/18(土) 09:57:05 ID:sed0Ohaz
>>454
その人はHNあるが名乗ってないだけだよ。
456名無しさんの野望:2010/12/18(土) 10:20:30 ID:iOuOuTzj
自分もこのスレの何人かの人に結構お世話になってるんだけど
ハンドルなんてなくていいんじゃない?ここは2chだしあんまり恩恵もないだろうし、負担が大きくなるだけかと
457名無しさんの野望:2010/12/18(土) 13:48:27 ID:S2qL4C1/
名乗ったら名乗ったでおまいらここぞとばかりに叩いて追い込むからな
458名無しさんの野望:2010/12/18(土) 22:47:54 ID:y5EIdnsY
アンチな奴も居るから名前なんてない方が良いと思うよ
459名無しさんの野望:2010/12/19(日) 12:36:11 ID:mpjui72V
まあ叩きと妬むのが生きがいの奴が粘着する機会を常に狙ってるわけだし
真面目に作成とかやりたい奴は2ch以外でやった方がいいってのは結論出てるしな
460名無しさんの野望:2010/12/19(日) 21:46:30 ID:STQXETwY
全力スレで質問しようかと迷ったのですがこちらで質問させて下さい
MOD Brew Houses of Cyrodiilで何個か看板メッシュのテクスチャパスがc:\program filesから指定されていたので修正したのですが
修正するとぶら下がっている看板が地面に落ちてきます。
地面に落ちないようにテクスチャを反映させるにはどうすればいいのか教えてください。

変更したメッシュのテクスチャパス
フォルダMeshes Clintmich retexture clutter signs内の00skoomasign.nif
c:\program files\bethesda softworks\oblivion\data\textures\clintmich\retexture\clutter\signs\00skoomahousesign.dds
↓に変更
textures\clintmich\retexture\clutter\signs\00skoomahousesign.dds
ttp://loda.jp/tamanegiii/?id=244
461名無しさんの野望:2010/12/20(月) 00:55:41 ID:oySZdTRl
質問です
OBSE18にて作成されたModを改造する際に
OBSE19b環境で改造した場合は、触っていないScriptも全てコンパイルしないと
正常な動作はしなかったりするんでしょうか
462名無しさんの野望:2010/12/20(月) 01:02:24 ID:O9Fbrpk7
すみません、質問です
ニュートラルアイドルの時にランダムで出るモーションの頻度を変えたいのですが
どこで変更できるかご存知の方はいますか?
多分、iniファイルでどこかの項目で変更できそうな気がするのですが
見つけられませんでした
463名無しさんの野望:2010/12/20(月) 10:40:56 ID:sWsT1FE+
>>462
待機モーションのことですよね?

CSでespファイル開いてgameplay>idle Animations
LoiterIdles>Male(Female) IdleのGetRandamPercentのValue値で変更できます

個別のモーションもその下のツリーで
464名無しさんの野望:2010/12/20(月) 12:19:19 ID:m84zuJ8n
>>460
う〜む、絶対パスになってますねー、普通ならネクサスにもそういうコメントついてそうなんですけどねなにか理由があるのだろうか?
とりあえず対症療法ですが自分とこのドライブからのパスに変えるとか
他の正常なメッシュのテクスチャーパス変更して、リネームしてみるとか
そのくらいしかとりあえず思いつきません、すみません

あと、テクスチャーが圧縮されてないんですがそれが原因なんてことあるのかな?小さいテクスチャーなので良いのかもしれませんが
465名無しさんの野望:2010/12/20(月) 12:26:50 ID:O0ldkjF9
モーションについて質問させて下さい。

現在、歩きモーションを制作しております。
ゲーム上でアニメーション自体はうまく再生できたのですが、
足音がなりません。

ググってみて、足音の設定があるということは分かったのですが、
どこをどういじっていいのか分かりません。

詳しい方がいらっしゃいましたら、お教えいただけると幸いです。
466名無しさんの野望:2010/12/20(月) 18:29:10 ID:Cz9rDyHp
>>465
nifskopeで実際に音がなるkf開いて、NiControllerSequenceの一番下にNiTextKeyExtraDataがあるのでクリック
BlockdetailsにTextKeysがある
いくつかのstringでEnum: Rightと記述されてるとおもうけど、これが音を鳴らすコマンド
左足はLeft、右足はRightという感じでそれぞれの音がなります
4673:2010/12/20(月) 19:13:55 ID:FtRggopJ
>>452
1)はまさにおっしゃる通りで、座り終わるまでReturnしたら大丈夫でした!!
2)は、なるほど、GetPosって1フレーム前の位置をとってくるんですね!
NR500のSpeedが変化するようにしてあるので、そのSpeedで位置を修正するようにしました!
おかげさまで無事にv1.2を作れました! 本当にありがとうございます!

椅子のEnable/Disable、同乗者のAIの追加/削除は苦労したのですが、何とか安定しました。
クラッシュすることはありませんでしたが、二人乗りAIが働かなくなることがありました。

クレジットは確かに無用な負担のもとにかもしれないですので、残念ですけどなしということにします…。

PCは以前からでしたが、ついに携帯電話まで書き込み規制されました。
これは書き込み代行サービスの方に書きこんでいただいています。
今後しばらく書き込めないかもしれませんが、本当にありがとうございました!
468名無しさんの野望:2010/12/20(月) 19:17:25 ID:O0ldkjF9
>>466
ありがとうございます。無事に足音が鳴りました。
469名無しさんの野望:2010/12/20(月) 23:38:41 ID:CRvWmdRR
>>464
skingradの看板メッシュがテクスチャパスがc:\program filesではなかったので同じ形のメッシュでc:\program filesから指定されていたLeyawiinの看板メッシュと差し替えてみました。
結果テクスチャパスがskingradのままだとぶらさがっていますが、Leyawiinのテクスチャにパス変更すると地面に落ちます。
テクスチャの圧縮についてなんですがskingradとLeyawiinのテクスチャサイズ、容量ともに同じでした。
あきらめてこのMODのテクスチャフォルダをCドライブに入れて対応しました。
470名無しさんの野望:2010/12/20(月) 23:41:36 ID:O9Fbrpk7
>>463
レスありがとうございます。
今帰宅したので早速やってみます
ありがとうございました。
471名無しさんの野望:2010/12/22(水) 09:48:35 ID:xPk4tZkF
質問です。鉢金をtail属性で作っているんですが、helmetのようにegmファイルも作ったほうがいいのでしょうか?
472名無しさんの野望:2010/12/22(水) 10:00:13 ID:QNoqhqbM
>>471
無いと頭にめり込んだり隙間ができたりするのであったほうがいいと思います
でも、少し大きめにつくって隙間ができても構わないなら無くてもいいですよ、正面以外は髪の毛で隠れると思いますし
473471:2010/12/22(水) 13:37:10 ID:xPk4tZkF
>>472
上手くいきました!ありがとうございました!
474名無しさんの野望:2010/12/23(木) 13:57:41 ID:v+OuWqNt
質問スレから参りました。
どなたかお助け下さい

Blenderで髪型を作成したのですが、CSやゲーム内でその髪型が表示されません。CSで見るといわゆるハゲ状態です。
(以前同じように髪型を作りExport→登録した際には問題なく表示されたので、今回何か初歩的な勘違いをしている可能性も大きいですが;)
CSでの髪型登録から種族への適応の手順を誤ったかと思い何度も確認しましたがやはり表示されず・・・。

また、調べてみたところ「Blender上で複数のオブジェクトがあるとゲーム上で表示されない」とありそうした可能性も考えたの
ですが、作成した髪型のオブジェクトは一つにまとめてありました。

Blenderを使い始めて日が浅い為、下らない質問で申し訳ないのですが、考えてもネットを見ても良く解りません。
一体何が原因で表示されないのか、教えて頂けると嬉しいです。
475474:2010/12/23(木) 15:35:58 ID:v+OuWqNt
状況の書き方が詳しくない上、安易に書き込むのはこちらのスレの方々に迷惑だろうとお叱りを受けました。
確かにそう思います;;
どうか上の質問はスルーして下さい、スレ汚し申し訳ございませんでした
476名無しさんの野望:2010/12/23(木) 15:53:01 ID:CN5WS1gQ
>>474
ノーマルマップが無いとかStripにしてるとか?
装備として追加するのと大差ないからまずは頭装備として出力してみたら?
TES4の髪型では躓かなかったから的確なアドバイスできなくてすまないが
477486:2010/12/23(木) 17:57:34 ID:v+OuWqNt
>>476
解り辛い書き方であったにも関わらず、アドバイスどうも有難うございます。
それで試してみます
4783:2010/12/23(木) 20:14:21 ID:OAu8gyQ9
VPN接続に書き込み規制回避の使い道があったなんて…。。。
すみません、バイクMODを作っていたものです。大変お世話になっておりますm(_ _)m
NPCを専用のバイク(馬と同等の存在)に乗せることについて疑問があります。

二人乗りに使っていた椅子に座らせるAIと同様のやり方で、
LocationをNPC用バイクにしてAddScriptPackageしてみたのですが、
バイクに近寄るだけでActivateしてくれません…。通常のNPCに対しても同様でした。

フラグとして「馬を使う」や「条件を満たすまで」をON/OFFしても変わらず、
同時にプレイヤーをFollowするAIをAddScriptPackageしたら異常終了しました…。
馬に乗せるというのは、普通とは違った扱いが必要になるのでしょうか…??

本来、コンパニオンMOD側で調整すべきことなのは(AIの干渉もあると思うし)わかるのですが、
とりあえず乗せてみるだけしようとしたところ上手くいかなかったので質問させていただきました。

「mpc」(コンパニオンMOD)の場合はコンパニオンの馬のSkeletonの指定をバイクにするだけで動いたのですが、
海外産のコンパニオンMODの場合は上手くいかないみたいで、
それでスペルでバイクを召喚してコンパニオンにAIを追加すればいけるかと思ったのですが…。

もちろんコンパニオンMODのAIと衝突する可能性は濃厚ですが、まずは試してみたいと思いました。
スペルで上手くいけば、コンパニオンMODごとにパッチを作る必要がなくなるという利点もありそうです。
479名無しさんの野望:2010/12/24(金) 11:22:07 ID:jBrTD68M
>>478
NPCが馬に乗る動作が起きるのは、現在のAIパッケにTravel動作が含まれ、UseHorse
にチェックが入っていて、かつTravel動作がパッケ内部で実際に起動した時です。

なので例えばUseHorse指定のFollowパッケを単にAddしても現在位置が既にPCに充分
近かったりすると移動の動作が起きずに馬に乗る動作もすぐには起きなかったり
します。

例えばコンパニオンの馬の乗り降りをPCのそれと同期させたい場合は色々工夫が
必要に。CSWikiにもその辺の話が。少しややこしいですが。

http://cs.elderscrolls.com/constwiki/index.php/NPCs%2C_Horses%2C_and_you

また特定NPCにスクリプトを仕込むのでは無く、不特定のNPCを一時的に馬に乗せるの
なら、そのNPCをOwnerにした馬を側に置き、例えばTravelでUseHorse、Locationが
PC、Radiusが「1」(これがミソ)のAIパッケをAddすればPCとそのNPCの位置関係が
どうあれ移動の動作がすぐに起きて即馬に乗ってくれると思います。

その後Follow等させるならGetSittingを見て別の適当なAIパッケを再度Addで。
解放はRemoveScriptPackage、evpすれば勝手に馬を降りて元の動作に。

またNPCが複数の馬のOwnerになった場合、どれに乗るかは恐らく現在その馬がロード
されているかとかIDの若い順とかその辺が関係して来る気が。
なので例えば既に馬に乗ってついてくるMartinをその場で別な馬に乗り換えさせたり
するのは地味に高難度かもです。
480名無しさんの野望:2010/12/24(金) 11:23:25 ID:jBrTD68M
あとPushActorAwayのテスト動画です。

http://shy.jsphr.net/upload/img/ups21395.zip

これってCourierの馬に付けると多分PCも道ではねられたりしてクエ道中が地味に
スリリングになるかもです。
4813:2010/12/24(金) 13:18:29 ID:X2jBN93N
>>480
見ろ!タマネギがゴミのようだ!!はっはっはっはうわなにをするやめろ
轢かれる直前のタマネギのアップに爆笑しましたw 役ハマリすぎですw

TriggerZoneの移動についてですが、「TriggerZone.SetPos」とか指定したらReferenceエラーになり、
どう指定したらいいかわかりませんでした。
TriggerZoneを移動しない場合は、「Begin OnTriggerブロック」は実行されませんでした。

>>479
なるほど! これは大変わかりやすい貴重な情報をありがとうございます!
その通りのAIを追加してみたのですが、なぜか「SetOwnership」が上手く機能せず進めません…。

Begin ScriptEffectStart ;(バイク召喚やAI追加などをするTotchスペル)
 set Companion to GetSelf
 Companion.AddItem NR500CompanionNowRiding 1 ;これは機能する
 SummonedNR500.SetOwnership Companion   ;これはなぜか機能しない

SetOwnershipの対象を空白にするとちゃんとPlayerの所属になるのですが、
なぜかCompanionだと機能しません。ゲーム中に確認しました。さらにゲーム中にコンソールで直接
SetOwnershipで8ケタのIDでCompanionを指定してもReferenceエラーに…。

このSetOwnershipの対象は、あらかじめCSで指定したReferenceIDしか使えないのでしょうか…??

あとはNR500CompanionというFactionを作って、バイクとCompanionに入会させましたが
これでは乗ってくれませんでした。
482名無しさんの野望:2010/12/24(金) 15:13:07 ID:PAWeAy7U
>>481
この手の体を張った仕事はなんか世界共通で彼の役目らしいです。

TriggerZoneも普通のオブジェクトです。Activatorの仲間です。
なので例えば椅子なんかと同様に初期配置→Ref名を付けて「Ref名.SetPos」で。
上の例は適当な「TrigZone〜」オブジェをコピーしてスクリプトを付け替え、適当な
場所に初期配置してScaleを0.1位にしています。

またSetPosとMoveToの組み合わせってやはり少しややこしいので、とりあえずは
MoveToだけでやってみてまず動作を確認、OnTriggerやPushActorAwayの挙動の
把握をするのがいいかもです。

あとSetOwnershipの引数はNPCのRefIDではなくてBaseIDです。ここも。

http://cs.elderscrolls.com/constwiki/index.php/SetOwnership

RefIDからBaseIDの取得はOBSEで。
4833:2010/12/24(金) 21:07:54 ID:X2jBN93N
>>482
TriggerZoneは普通のオブジェクトだったんですね!
各Creatureが個別に持っている何かの属性かと思ってました。

苦戦しながらもOnTriggerやPushActorAwayは何とか形になりました。
現在、直接Healthにダメージにしています。犯罪にはなりませんが、これは後回しで(汗)
常に攻撃ありだとマズイので、<CapsLock>で切り替えられるようにしたいと思います。

SetOwnershipの引数については普通にWikiに書いてありましたね(汗)
日本語訳版v1.1だけ見てて油断してました。すみません。

コンパニオンの乗車とPushActorAwayは絶望していたのですが、ご助言のおかげで
アップデートができそうです!! 毎度ながら本当にありがとうございます!!
484名無しさんの野望:2010/12/24(金) 23:51:42 ID:pZRJmMp1
すごい基本的な感じですけど、CSのオブジェクトウィンドウで左に表示される
Armorなどのカテゴリの下に独自のカテゴリを作るにはどうしたらいいんでしょう?
485名無しさんの野望:2010/12/25(土) 11:13:59 ID:9E7hYdWy
>>484
Armorならmeshes\armorに独自の新フォルダを作ってそこにnifを入れ、CSでArmor
オブジェを作ってWorldModelにそのnifを指定すれば新フォルダの名前が左ツリーの
Armorの下に追加されます。

要するにバニラのIronとかSteelみたいな各装備のディレクトリ構成とおなじかんじに
すればOK、て事です。
4863:2010/12/25(土) 20:46:52 ID:AF3kk71i
>>410,>>418で教えていただいた一人称視点時のプレイヤーキャラの表示ですが、
カメラの位置が「ActorParent」で決まることと、「Bip01NonAccum」で「ActorParent」で
ズラした分の位置を修正できるということで無事に適用することができました。

通常のSkeletonには「ActorParent」ってないですよね。これほどまでに汎用性を持たせて
あのバイクサンプルMODを作ったのかと思うと、まさに畏敬の念を覚える次第です。。。
結果として、当然ながらご助言あってですがここまで色々なことができました! ありがとうございます!

いくつかわかったことを還元というほどでも全然ないのですが、書いておきたいと思います。

【kfファイルのSpeedとBlend: n】
アクターのSpeedはkfファイルの再生速度に影響しますが、SpecialIdleはその影響を受けません。
バイクMODの場合、SpecialIdleによる移動速度をSpeedを増減することで変えることはできませんでした。
SpecialIdleは常に一定速度(多分 作成時に指定した1秒あたりのフレーム数)で再生されます。

同様に「Blend: n」によるkfファイル移行の滑らかさもSpeedの影響を受けません。
この「Forward.kf」などと「SpecialIdle」の違いを利用すると、より複雑なものが作れるかも知れません。

【con_Show1stPerson実行時の挙動】(IsThirdPersonと組み合わせて)
三人称視点時…PCの表示/非表示を繰り返すのみ
一人称視点&PC表示時…三人称視点に変更され、PCは表示されたままで、実体(通常時のPC)が消える
一人称視点&PC非表示時…三人称視点に変更され、PCは表示されたままで実体と同居

「con_Show1stPerson」はあくまでトグルできるだけであり、現在どちらなのかを判定する関数はなし。
自分で管理する必要がある。また一人称視点時に使うとマズイことになるので、扱いが少々面倒。
<R>キー時に実行とか単純では達成不能。わざとタイムラグを発生させたり、また<R長押し>にも対応させる必要あり。

他にいくつかしょぼいサイトに書いてありますが、もうこのサイトどうしようか迷ってますorz
http://life4oblivion.web.fc2.com/  の  http://life4oblivion.web.fc2.com/vehicle/02.html
487名無しさんの野望:2010/12/26(日) 00:27:07 ID:Joag9EXg
説明へただけど教えてください。
OBMMで日本語化やっとできたので次にMODのmoonshadowをダウンロードして
ダブルクリック→青印でチェックできたと思うんですが反映されません。
また画面左右二分割で左側にmoonshadowって表示でてません。

Launch Oblivionから起動してみました。

けど最初のキャラ作成画面ではそれらしいのはありませんでした。





488名無しさんの野望:2010/12/26(日) 00:48:19 ID:2BueWHDw
>>487
MODというのはデータ構造が正しくないと反映されません。
ほとんどの場合は、そのまんまOMODを作ると上手くいきません。作り直してください。
OBMMの下のボタンから「Create」をクリック、情報を適当に入力したら、
「Add folder」を選択し、MODで使うファイルを含む適切なフォルダを指定します。

慣れるとどのフォルダを指定すればいいかすぐわかるようになりますが、
「meshs」や「textures」といった名前のフォルダがある階層の「1つ上のフォルダ」を
指定してください。「Data」というフォルダがあれば間違い無くそれ、あとはMOD名のフォルダだったり。
正しく指定した場合、下に表示されるファイルは「meshes\....」や「textures\...」といった感じになります。

で、適切にOMODを作ったら後はそれをダブルクリックしてファイルを実際に配置させればOKです。
espファイルを含むならそれをONに。OBMMは確かデフォルトでONにしますが。
文面から、espファイルが必要になりそうなMODのようですが、
espファイルは「meshes」や「textures」フォルダと同じ階層に位置するようにします。

わからなければ、自分のOblivionのインストールフォルダを見てみれば一発でわかると思います。
「Data」フォルダ以下がどうなってるか。OBMMは、この「Data」フォルダの中にファイルを作成します。
489名無しさんの野望:2010/12/27(月) 11:10:36 ID:8HLGVvN/
スクリプトで装備の種類(服、軽装、重装)を得るにはどうすれば良いでしょうか?
ご教授、宜しくお願いします
490名無しさんの野望:2010/12/27(月) 11:30:59 ID:YPEQ8bB/
>>489
服と鎧は、IsClothing、IsArmorで判別
重装と軽装は、GetArmorTypeで判別できるね

全部OBSEの関数です
491名無しさんの野望:2010/12/27(月) 11:55:08 ID:8HLGVvN/
>>490
ありがとうございます!
492名無しさんの野望:2010/12/27(月) 18:57:16 ID:mhC3Gk3r
>>486
遅レスですが。
「ActorParent」って別に私が考えたのではなくてシステム予約のノードですよ。

乗馬状態になると乗員のSkeletonはシステムによって馬のActorParentの位置に
Attachされて馬Skeletonと一体化します。
馬のkfに乗員のキーが含まれているのはその辺が理由です。

あと一/三人称の切り替わりってRキーだけでなくマウスホイールや麻痺を食らった時
等々色々な契機で起きるので、その条件全部を検出するよりはIsThirdPersonで現在の
状態を常時監視して変化があったら三人称モデルのON/OFF、みたいにするのが
簡単かもです。

一人称になった後で三人称モデルを出すには以下みたいに続けて書けばOKみたいです。

ToggleFirstPerson 0
con_Show1stPerson
ToggleFirstPerson 1

またRキー長押し(VanityMode)で問題になるのは一人称の時で、状態は一人称なのに
見た目だけが三人称になる、という場合だと思います。

なのでそのタイミングだけは検出して、Rキーが押しっぱで0.5秒(デフォ)経ち、かつ
一人称なら一時的にToggleFirstPersonで三人称に切り替えて三人称モデルを消し、
Rキーが解放されたら一人称に戻して三人称モデルをまた表示、みたいにすれば
行けると思います。
その辺は要領良く書けばそれほど複雑にはならない気が。

むしろややこしいのは無入力放置で自動的にVanityModeなった状態の方かもです。
これも工夫すれば方法はあるとは思いますが、とりあえずはGMSTの
「fVanityModeAutoDelay」をうんと大きくして自動でVanityModeになるのを
なるべく回避するのが手っ取り早いかもです。
493名無しさんの野望:2010/12/27(月) 22:47:26 ID:cwypRYj6
MBP++ のmodを導入したのですが、髪型が設定できない種族がいます。
対処方法はないでしょうか?
494名無しさんの野望:2010/12/27(月) 23:23:52 ID:wa2KMc5Z
>>493
それはこのスレで聞くことじゃないと思うが一応答えておくと、
CSでその種族に対して髪型を登録してください。
495名無しさんの野望:2010/12/27(月) 23:42:19 ID:cwypRYj6
>>494

ごめんなさい

説明ありがとうございます。
496名無しさんの野望:2010/12/27(月) 23:57:18 ID:vxB8BUuW
OBSEv0020betaが出ましたね
4973:2010/12/28(火) 01:06:10 ID:rsB/m4Nv
>>492
「ActorParent」に関する詳しい説明ありがとうございます!

ただ私が畏敬の念を覚えたのはそれだけではなく、Nifの分割、ボーンの階層などなど、
終わってから見れば、さも当たり前にピースがはまるかのように整っていた環境。
漠然とした「バイクMOD作りたい」なんて私の質問からここまで先のことを見通して
サンプルMODを作ったのかと思うと、名無しの人さんは底なしに凄いなと感服いたしました。

「con_Show1stPerson」に関する具体的な解説ありがとうございます!
「ToggleFirstPerson」というのもあったんですね。スクリプト側で視点を切り替えられるのは知りませんでした。
自分なりにスクリプトを作ったのですが、一人称視点時にR長押しでPCがダブってしまうという問題がありました。
そこで教えていただいたやり方でつくり直してみたら見事にそれが解決して、しかも切り替えがより目立たなくなりました。
「fVanityModeAutoDelay」もバイクに乗るときに「3600」にセットしてみました。これで完璧に動きました!

できればクレジットに「名無しの人」さんとして入れさせていただけないでしょうか??
これでは誰かわからなすぎでもありますが、当たり障りもないかと…。いかがでしょうか?

>>496
ちょっとしか見てませんが「GetCursorPos」なんてありましたね。シューティングゲームも作れたり。
有名MODが要最新OBSEになって普及するといいですね。
498名無しさんの野望:2010/12/28(火) 19:27:52 ID:csVvkBvb
質問があります
任意のアイテムについてEditorIDの文字列(ヘキサ表現のIDじゃない方)を取得する方法御存じないでしょうか?

CSで例えばJailPantsにカーソルを合わせると「'JailPants' (00000015)」なんて表示が出るかと思うのですが
この'JailPants'などの文字列です
以下の関数や処理は試してみたんですが、ヘキサのIDか名前は取れるもののEditorID文字列は取れませんでした

GetName / GetEditorID / GetFormIDString / GetFormIDString2

ん〜、これは取れないのかな…
499名無しさんの野望:2010/12/28(火) 20:39:14 ID:csVvkBvb
ごめんなさい、前の質問が片付かないうちにさらに全く別の質問で申し訳ないのですが教えて下さい
IK_skeleton2.blend/IK_skeleton3.blendについてのピンポイント質問になります

「IK_skeleton2の公開ファイルには既存kfファイルからのインポート用にskeleton2.nifを付けて頂いてますが
 これを使ってインポートした場合、足部分(*3.blendならPelvis含め)に既存kfの動きを反映する方法はあるでしょうか?」

シチュエーションとしては、今まで古いBlendファイルで作りためていたモーションがある中で上記の素晴らしいBlendファイルがあるのを知り
そちらの環境に移行したいのだが、既存のkfをインポートすると下半身などが(当然ですが)制約により動かず
既存の資産をこのBlendファイル上でうまく弄ることが出来ないでいる、というものです

選択としては以下1か2になるでしょうか?或いは3の選択もありえたりしますか?
「1.新しいBlendファイルへの移行をあきらめる」
「2.過去の資産をスパッと捨てて新しいBlendファイルで作りなおす」
「3.実は過去の資産をうまいこと新しいBlendファイル環境で弄る素晴らしい手がある」

私はBlenderにあまり詳しくないため、2と3の安易な折衷案で過去の資産はインポートしたあと
IK制約だけ消して(AutoIKの恩恵だけ貰って)使うというやり方をとっていたのですが
さきほど海外のMODDERの方から
「素晴らしいファイルがShyにあったので3がやりたいんだけどやり方を知らないか?」
という質問があり、改めて、もし3のやり方があれば教えて頂ければというところです
どうぞよろしくお願い致します
500名無しさんの野望:2010/12/28(火) 22:01:08 ID:Ot/RIK+w
>>498
取れなかったと思う
EditorIDは一部の例外を除いてメモリ内に存在しないとかそんな話だったはず
501名無しさんの野望:2010/12/28(火) 22:51:47 ID:csVvkBvb
>>500
CSでのコンパイル時以外は参照出来ないとかそんな感じですかね。
使い道からしてもゲーム起動後はIDとしては一意性を維持出来ないし名前は別に存在するし
参照出来る必要性がないですもんね。
了解です。回答ありがとうございました!
502名無しさんの野望:2010/12/28(火) 23:27:18 ID:p+A6Ck/C
いやいや、ゲーム中もEditorIDは参照はしまくってるだろ??
503名無しさんの野望:2010/12/28(火) 23:34:56 ID:csVvkBvb
>>502
ああいや、EditorIDの文字列表現の方の話です。ヘキサ4Byteの方じゃなくて。
504名無しさんの野望:2010/12/28(火) 23:42:53 ID:sC70d+/5
EditorIDの名前どおり?scriptを組むときに使うくらいだもんなー
ゲーム始まると全部FormIDで管理してるし
cocやstartquestとかでコンソールからでも使えるcellとquestだけ特別だったのか…初めて知った
505名無しさんの野望:2010/12/29(水) 00:01:17 ID:csVvkBvb
>>504
そう、名前というか表示上のID通りの方です
cellとquestは特別なのでGetEditorIDでもサポートされてました
この件は自分の中ではNifのモデルパスで解決することにします
506名無しさんの野望:2010/12/29(水) 00:30:11 ID:nYigi4+w
>>497
クレジットはそれで充分です。
こちらこそ開発過程を楽しませてもらっているのでその辺特に気にされる事は
無いですよ。乗り物MODは個人的に大好きですし。

で、車に関しては馬方式以外にも全然違う考え方として車輪付きHavokオブジェを
動かしたりする方法(実用性は置いといて)も無い事は無いのでその辺またご興味が
ありましたら。
DodgeChallengerと聞くと油断しているとついバニシング・ポイントのラストが頭に
浮んでしまうのですがどうしたらいいんでしょうね。

あとまたネタですが、もしヘッドライトとか点灯させるならこのスレPart5 204の
サンプルが多分参考に。リンク再掲です。

http://shy.jsphr.net/upload/img/ups07287.zip
http://shy.jsphr.net/upload/img/ups21606.jpg

SSはヘッドライト的にそれっぽく見える様に光源位置をデフォより前方に移動させて
います。
507名無しさんの野望:2010/12/29(水) 00:31:43 ID:nYigi4+w
>>498
OBSEのGetEditorIDのリファに「殆んどのフォームのEditorID(BaseIDの名称の文字列)
はゲーム実行時にはロードされないよ、今はこの関数はCellとQuestのEditorIDを
返すだけだよ」、とあるので現状ではやっぱ無理そうな気が。


>>499
IKってボーンの連鎖の終端ボーンだけに位置回転を与える事で中間のボーン群の
位置回転は自動的に計算で出す、というのが身上です。
なので既に位置回転が細かく決定済みの中間ボーン群のキーをIKのボーン群にImport
するのは構造的に無理な気が。

今あるkfをIK用に変更するのなら、例えば上半身のキーは残して脚のキーは一旦消し、
IKで再計算させて以前と同様な動きをまず再現してから以降はIKで操作、みたいな
かんじになると思います。多分。

具体的には、IK_Skeletonの場合は左右各Footは「IK Foot.L/R」で操作されるので、
ImportしたSkeletonの方のFootの動きの要所でIK Footを動かして今のFootがImport
したFootと同じ位置方向になる様にしてキーを新規に打ち、Thigh、Calf、Footの
元のキーは全部消してIKの結果を打ち直せばなんとかそれっぽくはなりそうな気も。

でもそれを手動で操作すると多分非常に煩雑になりそうですし、何らかの方法で
省力化出来るのかもちょっと実際に色々やってみないとなんともなのですが。
508名無しさんの野望:2010/12/29(水) 00:58:23 ID:r8j+H+Q+
>>507
回答2件、ありがとうございます
前者後者了解しました

後者は書きこんだあと自分なりに考えてみたのですが、足に打ってある制約を裏返してIK Foot側にかけて
既に計算された下半身側からIK関連ボーンのあるべき位置を復元するような
インポート下準備専用のArmatureを用意するなどがいるかもって感じでしょうか
少し試行錯誤してみようと思います

ちなみに、skeleton2.nifのファイルは何をExportしたものになるんでしょうか?
というのは、skeleton2はIK_FootやKneeがついてなかったので
IK_skeleton2.blendのArmatureをそのままExportしたものとも違うのか、気になりまして
もしよろしければ教えて下さい
509名無しさんの野望:2010/12/29(水) 09:28:54 ID:BppsSROP
>>508
IK Footが逆にFootに追従する様にしてその結果のIK Footの位置回転を絶対値として
キーに残す事が出来れば手動でのFoot位置合わせ操作無しで行けるかもですね。

また一連のIK_Skeletonは実験的にIKとか頭向き等を試した例なので、他にも
Constraintの付け方はあると思います。
既存kfImport時の使い勝手が良い様にIKの付け方自体を根本的に変えるのも
アリな気が。

skeleton2.nifは手で作ったと思います。確か。曖昧で申し訳無いのですが。
実際の作業手順自体はあまりよく覚えてなくて。
「〜Dummy」という名前のボーンはImportした時の各ArmatureのTail位置を決める為に
末端ボーンの対向方向や、Tail位置を誘導したい方向に追加してあります。

なんでそんなダミーのボーンが必要かは、nifボーンとBlenderのArmatureの違い、
Import時のArmatureのTail座標の決定方法、AutoIKを使う場合のTailとHeadの
連結条件、またImport時に一度決定されたTail位置の移動はkf出力時にボーンの
回転とみなされるのでImport後にBlender上での適当なTail位置変更はNG、みたいな
色々な要素や縛りがあってもう非常にややこしい話に。

要するに最終的にPelvisからHeadまでを一貫してAutoIK指定をしたかったので
PelvisとSpine2のTail位置を特定の子供方向に向ける必要があったのと、
UpperArmTwistやSideWeapon等の末端ボーンのArmatureのTail位置の見た目を
いいかんじにする為に、ダミーのボーンを付けたImport専用Skeletonを使う事で
Import後のArmatureのTail位置を操作してる、て事です。

これもなんか別にもっと単純簡単な方法があるかもです。
5103:2010/12/29(水) 22:02:54 ID:W/6sWkuQ
>>506
クレジットは次のバージョンから入れさせていただきます!

まだまだもっと色々な機能を追加・整備したいのですが、何とももどかしいです。
左右バンクモーションの改善、各モーションに加速か否かの2パターンの用意(スロットル回すポーズを追加)、
現速度によるモーション変化(低速ならハンドル切って浅いバンクで曲がる、高いならハングオフとか)
モーションはスクリプトで再生していることから、コンフィグによる使用モーションの切り替えなどなど。
あとCTAddPoseの機能も簡単に実装できそうです。

Havokオブジェというと、最初のダンジョンで丸太が転がってゴブリンが死ぬようなヤツですよね。
Horseとして、バイクMODの一部を変更(大部分を流用)したものなら作り易いと思ったのですが、
Havokというものにも興味があります!! ご説明いただいてもよろしいでしょうか?

バニシング・ポイント…すみません、見たことないです(汗)
トルクなら見たことあるのですが…アプリリアRSVがカッコイイ。ラストはちょっとアレでしたが…。

サンプル見させていただきました! 是非ともNR500にヘッドライトをつけたいと思います!!!
指輪を装備している間、2つのLightオブジェを装備者にSetPosし続けるといった感じですね!

>Lightの高さ/距離/角度は調整出来る様にクエ変数(クエ名「A1KQ」)にしてあります。
こっこれは…!!? Lo/Hiビームが実現できます!! Hiビームを人に当てると友好度が下がったり…。
馬肉の好きなお姉さん(?)に金を払ってHIDを入れてもらったり…!? 何でもできますね!!
それと、スクリプトの数学の公式的な部分は全くわかりませんでした…。凄いですねあれ…。

あの…素朴な疑問なのですが、TestingHallって複数のMODに変更されないのでしょうか??
同じセルを複数のMODが変更ってできましたっけ?? 自分の勘違いだと思うのですが…。
511名無しさんの野望:2010/12/29(水) 23:21:47 ID:r8j+H+Q+
>>509
回答ありがとうございます
Skeleton2はそんな感じなんですね

今日試しにIK_skeleton2.blendのArmatureをエクスポートしたNifで過去に作成したkfのインポートを試してみました
このBlendファイルから作ったものはkf内にIK関連キーも残っているので
IK関連ボーンを含んだSkeletonファイルの方が環境的にインポートに向いているかも、という感じでした
(ただZ軸の座標系はずれがあったので多少微修正要りそうですが)
バニラのモーション取り込み環境は別途検討するとして過去素材の修正がやりやすくなりそうな予感です

これまであのファイルで作ったkfファイルは不可逆というか、エクスポート出来てもインポート出来ないイメージだったのですが
私の理解不足だったようで、Blendファイルを失ってしまったkfファイルも弄り直しが出来そうな気がしてきました
今やAutoIK/IKなしでのモーション作成は考えられないのであのBlendファイルはとてもありがたいです
今後より一層あのファイルを活用させてもらいます
どうもです
512名無しさんの野望:2010/12/30(木) 10:35:20 ID:F1xhlJq7
>>510
車輪付きHavokオブジェがどんなものかはまず実物を見てもらった方が早い気が。
制作途中の四輪乗り物オブジェの単品nifです。制作途中と言ってももうずっと
完全放置状態ですが。

http://shy.jsphr.net/upload/img/ups21658.zip

あと車輪の応用例として過去スレPart5 353のHavokな荷馬車のサンプルです。

http://shy.jsphr.net/upload/img/ups08118.jpg
http://shy.jsphr.net/upload/img/ups08117.zip

物理演算とkfアニメの関係はPart6 561のサンプル等も。

http://shy.jsphr.net/upload/img/ups15150.zip

これらの応用で動力を内蔵した自律的に動く車輪付き物理演算オブジェを作る事は
可能だと思います。
二人乗りと同じ要領でそのオブジェの位置をPCにSetPosすれば乗り物に。

でもこの方法が乗り物としてどの程度実用になるかはまだ未知ですし、試作やテスト
に非常に時間がかかりそうな気も。

とりあえず上のサンプル等を色々見てもらって物理演算で何が出来る/出来ない/
出来そうか、通常の馬方式と何が違いそうかの雰囲気をまず把握してもらうのが
早いかもです。
513名無しさんの野望:2010/12/30(木) 10:36:48 ID:F1xhlJq7
あとCellに単にオブジェを追加配置するだけならMOD間で特に実質的な競合は起きない
です。位置が偶然重なったりして見た目に変になる事はあるかもですが。

問題になるのは同じオブジェに対して変更を加えたり、地表の形状を変更したりする
場合です。

でもそのサンプルがTestingHallにオブジェを初期配置しているのは単にやっつけな
だけなので、もし自MODに組み込むのでしたら適当な専用のInteriorCellを作って
そこに初期配置の必要なオブジェをまとめて置いておく、みたいにした方が後々
何かと便利かもです。
5143:2010/12/30(木) 17:03:19 ID:OYrJhMQt
>>512
Havokオブジェについてのご説明ありがとうございます!
時間がかかりそうですが少しずつ調べていきたいと思います。

ただ、今思いつく心配事としては、SetPosで位置を調整する場合は
位置の調整にカクつきが出てしまいそうというのと、Speed変化で前フレームとの
位置のズレが生じてしまうと思われる点です。バイクMODの二人乗りもそうでした。

それでも、車のオブジェがあるので自由に人や荷物を置けそうなのは面白そうに感じます。
まだ試していないので全然わからないのですが…。

すみません、ヘッドライトについてなのですが、サンプルにあったように
ライトの照射方向を前方(水平より少し下方向)へするにはどうすれば良いのでしょうか??
「rot」は「ライトの位置の方向(Z軸)を装備者からどれだけズラすか」に使うもののようでした。

それと、スワップとして2つのライトを交互にEnable/Disableするのにはどんな意味が
込められているのでしょうか?? 1つのライトを使い続けるのには何か弊害があるのでしょうか??
5153:2010/12/30(木) 17:07:22 ID:OYrJhMQt
間違えて途中で書きこんでしまいました

>>513
なるほど、オブジェの追加配置なら競合しないのですね! 知りませんでした!
装備品MODなどで「有名場所をどのMODが指定するのか」みたいな水面下の争いがあるのかと
考えていましたが、これなら大丈夫ですね。
ありがとうございました。
5163:2010/12/30(木) 18:17:35 ID:OYrJhMQt
無駄すぎる連投すみません。

ライトをSetAngleしてみたりしましたが、どうやら照射方向という概念は無くて
360度を照らしてしまうみたいです。これは実に残念…。
照射半径を小さくしたものなどを用意して、ヘッドライト近くは小さく…とかやれば
擬似的に再現できそうですが、光源が多いともちろん処理が重くなると思うので
Hi/Loの2個程度で諦めておこうと思います。

でも目の前の壁が照らされないのは本当に残念orz
517名無しさんの野望:2010/12/30(木) 19:58:29 ID:3CKAGJut
>>514
Havokオブジェの乗り物化は技術要素的にはある程度揃ってはいますが、まだ実際の
応用例があまり無いので道程はやっぱ少し長いかもです。

で、ObのLightってスポット状には出来ないです。Lightは全部全方位等拡散の単純な
点光源だけです。

SSの場合、高さはタマネギの顔辺り(100とかその辺)、距離は300前後、角度は0(正面)
にしてバイク前方少し離れた位置にLightを置いています。
なのでSSの状況ならいいかんじに見えますが、実際は位置関係によっては本来明るい
はずの近場が逆に暗かったりする不具合が構造的にあるとは思います。

Lightオブジェを2つ使う理由はそのサンプルが出た経緯を見てもらうと多分。

で、実用重視であれば、単に松明をPCに装備すればそれでOKだったりします。
光源の位置はAttachLightのノード位置で多分調整出来ますし。

ただ、松明だと現状メラメラ音を消す方法が無いのと、ライトを点灯したまま
バイクを離れる事もあるかも、という理由でとりあえずスクリプトでLightを制御
する例を紹介しました。

確かにスクリプト制御は複雑で色々面倒ではあるので、どの方法で行くかは
状況に応じて、と言う事で。

あとバイクが集中的に攻撃されたり敵を勝手に追いかけたりの挙動の抑止は
「SetGhost 1」で行けるかもです。
5183:2010/12/31(金) 00:00:24 ID:ONwD8zg7
>>517
詳細な説明ありがとうございます!
スポット状は無理でしたか…円状のほうが処理が簡単とか何かしら理由があるのでしょうね…。

結局Lightはスクリプト制御で2つ利用することにしました。
距離400と600の位置に高さ200のLightを2つ配置して、SetPosを続けています。
NR500をGetAngle Xして、車体の傾きでLightの高さを調整するようにしました。

しかし、ここで初めて不可解なバグに遭遇しました。
(1)NR500をGetAngleしているのに、なぜかマウスの操作による上下角をとってくる
(2)Lightオブジェを0.2秒毎にMoveToしたところ、その度にバイクのサウンドが消されてしまう

(1)は、プレイヤーを対象にすればプレイヤーの上下の視点の角度を取ってくるのは
わかるのですが、なぜかNR500でもそうなります…。馬だからでしょうか???
透明なダミーオブジェを一緒にSetPosして、そちらからGetAngleするしかないかもしれません。

(2)はOblivionの仕様を初めて強く実感したもので、2つのLightをMoveToする度にサウンドが消えてしまい
どうしようか頭を悩ませていたのですが、Idleは0.85秒毎、Forwardは0.51秒毎に再生しているので、
その間をとって0.93秒毎にLightをMoveToさせたら気にならなくなりました。
最初は原因究明に大変手間取りましたorz
MoveToは便利ですが、ほどほどにしないとマズイということを痛感しました。

「SetGhost 1」で無敵のバイクになりました。
これでバイクが無人運転で独りでに逃走したり敵を追いかけ回すことはなくなりそうです。

立て続けでまことに申し訳ないのですが、オブジェに接触したらバイクが吹っ飛ぶのを実装しようと思い、
TriggerZoneの接触物の判定でIsActorで1なら相手を飛ばし、0なら自分が吹っ飛ぶとしたのですが、
自分が飛ばされることは一度もありませんでした。
だとすると、IsMovingForwardとかSpeedとかで前進中と判断した時に、GetPosで前フレームと位置を比較して
位置が動いていなかったら自分をPushActorするというような処理でいくのが良さそうでしょうか…??
519名無しさんの野望:2010/12/31(金) 11:38:37 ID:lu+MKEJX
>>518
(1)は、「GetAngle X」ってPC以外のアクターの場合例え坂でコリジョンが傾いていても
常に0を返します。でも乗馬中はPC同様マウスの視線上下角を返すみたいです。

地形によるアクターの傾き角を検出するのって実は非常に困難で、こうすれば必ず
OK的な簡単な方法はちょっと思い当たらないです。

(2)は、MoveToって本来静的なオブジェを動かす為の関数では無く、実は動作する
方がむしろ偶然なので場合によっては思わぬ事が起きるかもです。

その辺の挙動はオブジェの種類によっても違いますし、不明な部分もあったりする
ので可能ならMoveToの頻度はなるべく減らす方向で行くのが安全かもです。
520名無しさんの野望:2010/12/31(金) 11:40:23 ID:lu+MKEJX
あとTriggerZoneって原則StaticなオブジェにはOnTriggerしないです。
なので地形や建物、木や岩との衝突を検出するなら自前で別な何かをする必要が。

簡易的には現在の状態と移動ベクトルの急な変化の監視でそれなりに行けるかも
です。

真面目に前方の地形を判定するならGetLOSと視線判定用のアクターオブジェを使う
方法(前スレ503)もあるのですが、非常にややこしいですし高速移動の場合は少し
無理があるかも。

それか考え方を全く変えて、衝突しそうな場所にTriggerZoneをあらかじめ配置、
そのスクリプトのOnTriggerでバイクが高速走行中ならPushActorAway、みたいに
する手も。

これって全ての状況に対応しようとすると手間や規模が実際的では無いので一見
無謀な方法に思えますが、でも仕組み的には超単純ですし、例えば自前のサーキット
みたいな場所限定なら充分アリだと思います。

それともその辺の物理的な挙動のリアルさを追求するならHavok乗り物の線がまた
浮上して来たりして。
でもHavokで二輪ってどうやればいいんでしょうね。立ちゴケさせない事自体が
超難しそうな気も。ネタ的には面白そうなのですが。

一般的にシステムで提供されている以外の事をしようとすると急に難しくなったり
実際に試さないと予想が付かなかったりするので色々大変だと思いますが。
でもその辺は気合で。

なんか話が散漫になってしまいましたが。そんなかんじで。よいお年を。
5213:2010/12/31(金) 18:43:13 ID:ONwD8zg7
>>519
こちらこそ、よいお年を。今年はMOD作りで大変楽しい時間を過ごすことができました。
バイクMODが自分に作れるなんて全く思っていなかったので、今は至福です。

「GetAngle X」ってちゃんと機能しないんですね…残念です。Lightの可変高度は諦めます。
「MoveTo」は確かに、RPGツクールでいう「場所移動」ですもんね。「位置調整」に用いる
というのは誤った使い方ですね。でも便利だから使っちゃう。

TriggerZoneについては「現在の状態と移動ベクトルの急な変化の監視」をまず試してみたいと
考えています。それに加え、もしもサーキットのようなものを作るなら、そこに衝突判定用の
TriggerZoneを配置してみようと思います。今わざと名無しの人さんのサンプルMODの荷車に
体当たりしまくって吹っ飛びまくってるんですが、これとても笑えますw

Havokでバイクは試みとしてはきっと面白いと思いますが、ちょっと難産そうなので
やめておこうと思います。でも車MODを作るとしたらその時は是非検討させていただきます。

バイク自体は馬のシステムの存在の上なのでまだ作りやすいですが、色々手を出していくと
簡単にはいかなくなってきますね。精神論的なものは得意なので気合でクリアしたいと思います。
5223:2010/12/31(金) 18:46:00 ID:ONwD8zg7
ベクトルの計算でやってみたのですが、どうもGetPosの値が不安定なようでダメでした。

;前フレームのGetPosとベクトルをバックアップ
set x2 to x
set y2 to y
set vector2 to vector1

;ここから平方根の計算
set x to NR500PlayerREF.GetPos X
set y to NR500PlayerREF.GetPos Y
set rz to NR500PlayerREF.GetAngle Z
set x to x + ( sin rz )
set y to y + ( cos rz )
set posgapx to (x - x2) * 2  ;x2(前フレームのGetPos Xの位置)から進んだ距離を測定
set posgapy to (y - y2) * 2  ;y2(前フレームのGetPos Yの位置)から進んだ距離を測定
set posgapx to abs posgapx
set posgapy to abs posgapy
set vector1 to posgapx + posgapy
set vector1 to SquareRoot vector1
;ここまで平方根の計算

If (vector1 - vector2 < -5)  ;前フレームのベクトルより5小さければ
MessageBoxEX "Crash!!!
EndIf
5233:2010/12/31(金) 18:49:42 ID:ONwD8zg7
ですが、実際はなんにもない直線でいきなりCrash!!!になったりします。
その時のベクトルを確かめてみると、「vector1: 100 vector2: 150」とかになってたりして
GetPosからの値が安定していないようです。

ベクトルの急激な変化の監視に加え、前フレームと現フレームの位置を比較して、
現在のSpeedからどうなのかも調べて、二重でいったりする必要があるかもしれません。
でも結局それもGetPosを使ってるので、どうかわかりませんが…。

あと、なぜかfloat同士の割り算をしたらスクリプトが動かなくなってしまいます。
If (vector1 / vector2 < 0.1)  ;現フレームのベクトルが前フレームの1/10だったら
これは全く理由がわかりませんでした。

自分をPushActorAwayさせるのはなかなか困難みたいです…。
多分自分が吹っ飛びまくるとプレイヤーもストレスが溜まるだろうし、
サーキットにZoneTriggerを置くだけでいいかもしれません。
524名無しさんの野望:2010/12/31(金) 19:14:39 ID:L1vlNH1V
CSで回復のポーションの値段を変えたいのですが
何処をいじればいいでしょうか?

あと、チェイデンハルに花を植樹したいんですけど
どうすればいいでしょうか?
525名無しさんの野望:2010/12/31(金) 19:20:31 ID:TMxfISP7
>>524
その質問はまずCSのヘルプを読むべき。>>1をダウンロードしなさい。
526名無しさんの野望:2010/12/31(金) 22:44:30 ID:pcS0tX/N
簡単に作れると言った手前質問しづらいのですが…Tona先生の魔方陣を指輪だけで表示できるようにしようと色々いじって単品だけは表示されるようになったのですがスクリプトが動いてくれません。どこが悪いかわかる方いらっしゃいますでしょうか。
ref actor
short MGC
Begin gamemode
set actor to GetContainer
if(actor) 
if (MGC == 0) ;■状態フラグが0なら
if ((actor.GetEquipped aaTonaMGring2) && (actor.IsWeaponOut)) ;指輪装備、抜刀状態
set MGC to 1 ;■状態フラグを1にする
actor.AddItem aaTonaMGCRing,1 ;魔方陣装備追加
actor.EquipItem aaTonaMGCRing ;魔方陣装備
else ;■条件未成立なら
set MGC to 0 ;■状態フラグを更新
if (actor.GetItemCount aaTonaMGCRing > 0) ;■魔方陣装備を持っているなら
actor.RemoveItem aaTonaMGCRing,1 ;■魔方陣装備を削除
endifendif
else
if ((actor.GetEquipped aaTonaMGring2 == 1) && (actor.getequipped aaTonaMGCRing == 1) && (actor.IsWeaponOut == 1)) ;魔方陣装備、抜刀状態
;■条件成立中なら
set MGC to 1 ;■状態フラグを更新
else ;■
set MGC to 0 ;■状態フラグを0にする
if (actor.getitemcount aaTonaMGring2 > 1)
actor.equipitem aaTonaMGring2
endifendifendifendifend
527名無しさんの野望:2011/01/01(土) 18:24:01 ID:2OFjNIY9
>>526
もうちょっと要件が整理されてれば答えられるかもしれません
「相手も分かるだろう」という判断での要件説明の割愛は混乱のもとなのと
それが他人のMODの改造の話となると尚更回答出来るひとを絞ってしまうので
一回何をしようとしているのかとどこまでは出来ててどこで詰まってるのかを汎化して簡潔に書いてみては如何ですか?
528526:2011/01/01(土) 19:37:57 ID:j2G34cPJ
すいません正直自分でもよく解らなくなっているのですが
現状では単品(Anchorite_outfitの魔方陣のみ)をアミュレットとして登録して装備した場合正常に表示されますが
指輪(同じくAmchorite_outfitのモノをそのまま流用しただけの指輪)に上記のスクリプトをつけて装備を切り替えようとしているのですが
スクリプトの最初の方の
if ((actor.GetEquipped aaTonaMGring2) && (actor.IsWeaponOut)) ;指輪装備、抜刀状態
set MGC to 1 ;■状態フラグを1にする
actor.AddItem aaTonaMGCRing,1 ;魔方陣装備追加
actor.EquipItem aaTonaMGCRing ;魔方陣装備
まですら動いていない?状態です
動作としてはTona先生の魔方陣装備、もしくはGradriel_Armorとセットの剣のような動作が目的となります
5293:2011/01/01(土) 19:53:31 ID:MLJfC9ja
>>519
たたみかけるような連投すみません。
例のサーキットの件、ジムカーナですがちょっと試してみました。
http://www.nicovideo.jp/watch/sm13192027

パイロンが熱狂的(ryで、走行ラインは黒い影をつけて書いてあります。
あとはTriggerZoneをパイロンの近くに置いて実際に通ったかどうかを判定しようと
考えています。

例えばTriggerZoneを30個置いたとして、それぞれに固有のReferenceIDをつけます。
添付するスクリプトの中身として、1つTriggerZoneを通過するごとに変数を+1していって
ゴールに着いたときに変数が正しい数値ならゴール。GetSecondsPassedを使ってタイムを
記録するといった感じにしようと思っています。

ミスコースへの対応としては、スクリプトで自分のReferenceIDを確認して、例えば
8個目の「TriggerZone08REF」だとしたら、変数の値が07になっていないと+1の処理をしない
といった感じにしようと考えてます。
あとは、そのZoneTriggerを如何にして表示するかですが、ZoneTriggerはゲーム中には表示されない
みたいなので、適当な当たり判定のないオブジェのグラフィックを使うか、地面に色を付けて
「ここは絶対通るように」と明示すればいいかなと思ってます。

実際にサーキット(動画はジムカーナですが)が作れるとは思ってもいませんでした。
「名無しの人」さんは本当に神です! ありがとうございました!
530名無しさんの野望:2011/01/01(土) 20:43:43 ID:2OFjNIY9
>>528
ちょっと整理するとこんな感じでいいですか?
 装備A:aaTonaMGCRing スロット「Amulet」見た目「魔法陣」
 装備B:aaTonaMGring2 スロット「Ring」 見た目「指輪」

 で、装備Bを付けていてかつ抜刀したら装備Aを追加して装備させ、
 納刀したら装備Aを外して削除すればOK?

追加で教えて頂きたいことが2つあるんですが、
1.スクリプトが付与してあるのはどのアイテム?装備B?
2.魔法陣がよくわかってないのですが装備Aはスロットは「Amulet」でいいんですよね?「Ring」ではなく
  そして装備Aは何も弄らずに単に装備している場合は表示に成功している状態でよいですよね?

それでよければ見た目は魔法陣じゃなくてバニラの適当なNIFになると思いますが
サンプルを作ってみます。
531526:2011/01/01(土) 21:09:37 ID:j2G34cPJ
>>530
スクリプト付与は装備Bですね
2はそのとおりです。名前がRingなのは最初リングで作ってみたら魔方陣が表示されなかったので…

すいませんよろしくお願いします
532名無しさんの野望:2011/01/01(土) 21:56:14 ID:2OFjNIY9
>>531
作ってみました。
一応簡単に動作確認して動いているので仕組みは問題ないと思います。
動きを分かりやすくするために作りを変えて変数は極力とっぱらいました。

また、エラー処理が入ってないので例えば
「アミュレットを装備しようとしたら既にアミュレットが装備されてたのでつけられない」
「アミュレット装備中にインベントリ開いて外されたらどうするか」
など諸々は入ってないです
環境が許すならOBSEのGetEquipmentSlotでアミュレット装備可能かチェックするなどした方が
あとあと困らない気がします
(というか、一番堅いのは指輪として装備するのではなくアミュレットとして装備して
 アミュレットのNIFを魔法陣じゃないものから魔法陣に差し替える、という気がしなくもないです)。

サンプルはこちらのURLになります。
http://shy.jsphr.net/upload/img/ups21727.7z
533名無しさんの野望:2011/01/01(土) 22:03:43 ID:2OFjNIY9
>>531
すみません、途中で送信してしまいました。
スクリプトはURL内に含まれています(改行数関係でここには書ききれないので)。

READMEに記載しましたが、動作確認の際はplaceatmeなどで指輪を取得して下さい。
また、Amuletである関係上UpperBodyの装備によっては隠れてしまい分かりにくいので
上着を脱いで動作確認して下さい。
抜刀とともに皮手袋が手に装備されるはずです。
534名無しさんの野望:2011/01/01(土) 22:54:00 ID:2OFjNIY9
>>531
何回も何やってんだ俺は。
すみません、一番重要(と自分では思っているところ)を書き損じました。
装備の着脱に関しては付与したアイテムをすぐに装備したり或いはその逆は同一フレーム内では動かない場合がほとんどで
少し間を空ける必要があります。詳しくはこちらにその記事があります
http://cs.elderscrolls.com/constwiki/index.php/EquipItem

なので、作り替えたスクリプトでは装備を与える処理と装備させる処理とが同じフレームじゃなく
順番に動くようにしてあります。最初にこれをお伝えしようと思ったのにすっかり忘れてました。
535526:2011/01/01(土) 23:39:19 ID:j2G34cPJ
うーん、やっぱり指輪からアミュレットよりアミュレットからアミュレットの方が手堅いですか…
色々有難うございます。今から動作確認とかスクリプト眺めたりとかしてきます
536名無しさんの野望:2011/01/02(日) 12:17:47 ID:bzndsytL
謹賀新年。

>>523
移動量での判定ってfpsとの兼ね合いもあるのでやっぱ少し面倒かもですね。
単にフレーム毎のxy変化量だとfpsが確実に一定で無い限り比較してもあまり意味が
無いので、まず移動量を単位時間当たりに正規化する必要があるかもです。

また、もし二点間の距離を真面目に出すなら平方根が必要になるのですが、単なる
大小比較なら特に平方根は不要だったりします。
例えば(x0,y0)と(x1,y1)という二点間の距離の場合、

dx = x1-x0
dy = y1-y0
距離の二乗 = dx*dx+dy*dy

なので大小比較はこの段階の値同士ですればOKですし、別の値(例えばspdなんて名前
の速度の比較基準値があるとしたら)と比較するなら「spd*spd」としてから比較すれば
OKです。多分。

あと割り算については、もしその「vector2」が0になる状況があるとゼロ除算になって
以降そのスクリプトは停止するのでその辺注意が必要かも。

パイロンはなんかそれっぽい形状のHavokオブジェを作って置いとくと衝突の反応も
それなりになっていいかんじに見えるかもです。

ミスコース判定はその方法で行けると思います。それかTriggerZone通過で特定の
トークン用アイテムをAddして、そのアイテムを持っているかどうかでチェック
ポイント通過を判定するとか。

徹底的にやるならTriggerZoneでコースをみっしり取り囲んでコース外走行を確実に
判定するとか。その辺方法は色々ありそうな気も。
537名無しさんの野望:2011/01/03(月) 14:25:48 ID:i1RXaHUH
スクリプト作成未経験者の質問なんですが
Drop Lit Torchesにあるような盾を持って武器を構えた際に明かりを地面に落とす機能を
FranやOOOにあるイルミネートスタッフや各種MODにあるランタンなど、松明以外の手持ち光源に対して
汎用的に拡張するのは単純にできるものなんでしょうか

決め打ちする泥臭い方法ならなんとなく実装できる感じはするのですが
538名無しさんの野望:2011/01/05(水) 17:11:55 ID:UkwBJwY8
CSである場所に家(ヴァニラのコピー)をたてて、エクステリアにItemsを置きました
家の位置が気に入らなかったため家とItemsを少し移動したところ
ゲーム内では家だけ位置が変わり、Itemsは元の位置のままでした
回避方法を教えてもらえないでしょうか
OBMMのArchive InvalidationでFile Typeを
全てチェックして実施しましたが改善しませんでした
よろしくお願いします
539名無しさんの野望:2011/01/05(水) 18:13:39 ID:z0wY7dSq
アイテムや、条件は判らんけど一部のワールドオブジェはセーブデータに位置情報が残る
つまり、その作成中の家MODを外すか
外せない理由のあるMODならオブジェを削除してゲームをセーブする必要がある

その後は、配置をいじってる途中でセーブせずに、常にそのMODに対してクリーンなセーブでテストすれば同じ事は起きない
5403:2011/01/05(水) 18:14:38 ID:Mvw0DW9O
>>536
おっしゃる通り、3フレームで判定したら誤検知はなくなりました! ありがとうございます。
岩などにぶつかってからクラッシュまでわずかにラグがありますが、安全マージンという
ことで全然許容できる範囲です。判定にはSpeedも用いました。

0除算ですが、自分もそれかなと思って最初に1などを代入して試してみたのですが、
なぜか効果なし…。よくわからないです。今はこの処理は必要なくなりました。。。

パイロンは熱狂的(ryよりパイロンのほうが処理も軽くなってよさそうですが、
ここはあえて熱狂的(ryを使い続けたいと思います。

>ミスコース判定はその方法で行けると思います。それかTriggerZone通過で特定の
>トークン用アイテムをAddして、そのアイテムを持っているかどうかでチェック
>ポイント通過を判定すると

うーん、自分的には変数のほうがいいかなと思ったのですが、トークン用アイテムの方に
何か利点はあったりしますでしょうか?? クエスト変数にすれば他からも参照できますし…。

今のところは、コースアウトしても失格とかにはならなくて、ただ本来の場所に戻る必要が
あるだけにしようと考えています。草地や砂地とかに行ってもスピードは落ちないしスリップも
しないわけではありますが、TriggerZoneを路面にだけ置けばいずれにせよそこを通るしかないので。。。

複数のTriggerZoneを配置してタイムを記録できるようにはなりました。これから、レースを取り仕切ったり
ルールを説明したりするNPC(オフィサー??)を作ったり、一緒に走るライバルNPCを作ろうとしています。
パスグリッドで上手くコースを走ってくれればいいのですがどうなることやら…。
541名無しさんの野望:2011/01/05(水) 18:37:11 ID:UkwBJwY8
>>539
なるほど・・そういう仕様なんですか
ありがとうございました
542名無しさんの野望:2011/01/05(水) 22:32:58 ID:RQwXLe+W
>>540
じゃ次はパイロン作r(ry と思ったら要らない流れですねw

自分はCSでの作業とかscriptとかド素人なのでアレな意見かもですが、
所持するだけで移動速度をスポイルする不可視アイテムみたいのを作れれば、
・コースアウト検知の際にそれを強制的に懐に突っ込む
・コース復帰検知時に没収する
という手法で自然なコースアウトとそのペナルティーを演出できないでしょうか?

いやその方法とか実際できるか否か等、全く解ってないんデスケドねb
543名無しさんの野望:2011/01/06(木) 00:58:15 ID:GXAtad10
流れぶった切って素人質問してすいません
プレイヤーの重量オーバーを検出する、またはプレイヤーが持っているアイテムの総重量を検出する方法ってありますか?
Construction Set Wikiを探したのですが、GetActorValue Encumbranceで所持可能重量を取得できるところまではわかったんですが、
現在の総重量、または重量オーバーかどうかを検出する関数がどうしても見つからない…
所持している全アイテムについて重量を合算するしかないんでしょうか

Double-Tap Dodgeでdodge中に重量オーバーで動けなくなるのをなんとかキャンセルしたいんです
feather薬飲んだり、コンソールからIdle状態にすれば復帰できるんですけど…できればちゃんと復帰して
feather系魔法で復帰したいところです
5443:2011/01/06(木) 01:46:52 ID:4hPsoVmO
>>542
正直自分には熱狂的(ryと普通のパイロン、どちらがプレイヤーに望まれてるのか
わかりません。自分は単に前者が好きなのでそちらにしただけです。

なるほどー、減速させるというのはアリですね! ありがとうございます。

実装は難しくないと思います。TriggerZoneを路面の両側にうまく敷き詰めて、
それのOnTriggerで減速用アイテムを1つAddItemする。

バイク側のスクリプトでは常に減速用アイテムを1つRemoveItemし続けて、
それがある場合はSpeedを直接低下させる。あまりにも高速でオフロードに
侵入したらPushActorAwayで転倒というのも面白いかもしれません。
オンロード車でオフロードを走るのはマジ恐怖です。

色々調整は必要だと思いますけど面白そうです!


うーん、AIPackageって難しいですね…。TriggerZoneをLocationにしたAIPackageを
Add/RemoveScriptPackageしているのですが、上手く動いてくれません。
ライバルとの競争は後回しにして、まずはタイムアタックだけでも十分かもしれませんね…。
545名無しさんの野望:2011/01/06(木) 03:11:07 ID:73NNI5iF
>>543
GetActorValue Encumbrance → 現在の総重量
GetBaseActorValue Encumbrance → 所持可能重量

じゃなかったっけ
546名無しさんの野望:2011/01/06(木) 11:30:54 ID:lRcVp9Ha
>>537
遅レスですが。汎用にする事は出来るとは思います。
でも必ずしも「汎用=単純(簡単)=泥臭くない」、ではない予感も。多分。

まずは実際に何かを作ってみてからの方が色々話が早い気が。
547名無しさんの野望:2011/01/06(木) 11:33:44 ID:lRcVp9Ha
>>540
トークンアイテムの利点って逆に外部変数を使わなくて済む事だったりします。
FactionのRankを変数代わりにするのも同様です。

特にどの方法が優れている、と言う事ではなく、外部変数の要不要は多分レース全体
の構造次第だと思うのでその辺は必要に応じて、と言う事で。

AIはどうしましょうね。
ジムカーナ的な同時一台走行なら、StartとGoalにマーカーを置いてコース上に一本
PathaGridを敷き、Start位置でGoalマーカーにTravelするパッケを開始すれば後は
成り行きでコース上のPathを通ってGoalまで走って行きそうな気もするのですが。

複数台の場合はスターティンググリッド毎にマーカーを置いて専用の独立した
PathGridを複数敷けば渋滞せずに並んで走って行くかも。

でもPathGridだと予定調和の出来レース的になりそうな気もするので、TriggerZone
やマーカー類、PlayGroup FastForward、GetHeadingAngle、SetAngle Z等々を
駆使して特定経路の自律走行を自前でスクリプトで作るのもアリかもです。

で、新年いきなりOb用PCが壊れてしまい、その辺実際にどうなるかは今ちょっと
試せないので上の話はとりあえずの予想、と言う事で。
復旧したらまた試してみます。
5483:2011/01/06(木) 18:09:46 ID:4hPsoVmO
>>547
変数って内容がセーブデータに保存されたりして、
使わずに済むならそうすべきなのかもしれませんね。
アイテムだったら、1つも持っていなければデータには影響しなさそうですし。

AIですが、色々試してみたのですが上手くいきませんでした…。
LocationをTriggerZoneにしたAIPackageを与えているのですが、
なぜか最初のTriggerZoneに留まり続けてしまってダメでした。
PathGridもしっかり繋がっているのですが…。

「予定調和の出来レース」笑いました。確かに何らかの状況を
変化させる要素を入れないとただ順番に走っているだけになりますね。
スクリプトで逐一NPCの動きを変化させるのはなかなか骨が折れそうですが、
TriggerZoneとの距離に応じてSpeedを増減させる程度だったらできるかもしれません。

このレースシステムは実装出来ればかなり面白いものになりそうですが、
どうも自分ではだいぶ力不足みたいなのでこれは今後の課題にしておいて、
まずはタイムアタック機能だけにしておこうと思います。

ああ、PCが…お気の毒さまでした…。OSの入れ直しとか、パーツ交換などの
簡単な処置で直ることを祈ってます。
549名無しさんの野望:2011/01/06(木) 22:38:04 ID:UeegT2M1
>>545
ありがとうございました
modified valueって説明があったから、魔法とかで補正された値だと思ってた…
よく見たらGetBaseActorValueの解説のNotesのところに、そうした効果で補正された値を取れるわけではないって書いてありますねorz

GetBaseActorValue Encumbranceは常にStrength*5の値になってて、
GetActorValueは実際のアイテムの総重量からFeather魔法の効果分引いた値が表示されてるようでした

…が、よく見るとGetBaseActorValue Encumbranceで取得できる値はStrength*5よりなぜか+4多い…なんだろうこれ
試しにFortify StrengthのポーションでStrength増やしてみても、やっぱり+4多い値でした
これについてご存知でしたらご教示いただけないでしょうか
550名無しさんの野望:2011/01/06(木) 22:39:51 ID:UeegT2M1
訂正
modified valueって説明があったから、魔法とかで補正された値だと思ってた…
なので、てっきりGetBaseActorValueは補正前の値だと思ってました
551名無しさんの野望:2011/01/08(土) 16:43:50 ID:3eZXCy67
プレイヤーの所持(インベントリ)アイテムを全て奪う(消す)にはどうすれば良いでしょうか?
552名無しさんの野望:2011/01/08(土) 16:54:03 ID:We1flbtP
>>551
メインクエのどこかにnpcにアイテムを全て持っていかれるイベントがあったかと。
それを参考にしてみては。
553名無しさんの野望:2011/01/08(土) 17:02:56 ID:3ogs2uOj
>>548
ご心配おかけしました。PC復旧しました。電源です。
安っすい電源を急遽手配してなんとか。

AIとTriggerZoneの組み合わせって結構面倒かもですね。
OnTriggerって何回も起きるのでその辺の手当てとか、パッケの繋がりでカクっと
したりPathを再探索して変な方向を向いたり。

AIをあまり細かく操作しようとすると色々問題が出るかもなので、Pathを敷いたら
後はもう全部AI任せ、ぐらいの感覚で行った方がいいのかもです。

で、アクターをAIとPathGridではなく自前で走らせる方法のやっつけサンプルです。
AIとどちらがいい、という訳ではないのですがなんか面白そうだったので。
ご参考用にでも。

http://shy.jsphr.net/upload/img/ups21929.zip
http://shy.jsphr.net/upload/img/ups21930.jpg
554名無しさんの野望:2011/01/08(土) 17:30:41 ID:3eZXCy67
>>552
ありがとうございます!
探してみます
5553:2011/01/08(土) 20:22:13 ID:VDTH/TZq
>>553
復旧しましたか! 良かったです。
原因は電源でしたか…目立たないパーツですが、PC全体の安定度を大きく
司っているという…でも自分は電源には金を惜しむ派です。

サンプル拝見致しました。これは素晴らしいですね! 非常にシンプルな作りなのに
かなりいい仕事します! 「AIPackage+PathGrid」や専用スクリプトより全然いいです。
これでNPCをサーキットで走らせてみたいと思います。

set rz to CntRef.GetAngle Z + ( CntRef.GetHeadingAngle LocRef / GetFPS * 2 )
CntRef.SetAngle Z rz ;----目的地に向けて少しずつ曲がる仕組み 適当

この辺りが特に素晴らしいですね! 目標物への方角を返す「GetHeadingAngle」なんて
便利な関数があるとは…。「/ GetFPS * 2」というのも流石の配慮です。

最後のTriggerZoneの親としてスタート地点である「A1ZTriggerZone00Ref」が
設定されていないのは何か理由があるのでしょうか??

私もこの前体験したのですが、アクターが乗馬中だとOnTriggerに引っかかるのは
馬側のようですね。騎手を返すには「GetRider」を使えば良かったのを今知りました。
Locationを次のTriggerZoneにしてある「AddScriptPackage」で困ったのがこれでした。
馬にAIPackage付けても動いてくれないので…。

それと別の質問になるのですが、
DisableControl 10;(Run)
DisableControl 11;(Always Run)
これをやればプレイヤーは歩きしかできないと思っていたのですが、実際は
Shiftキーによる歩き/走り切り替えと、Always Runの切り替えが不可能になるだけでした。
プレイヤーのAlways Runを検出したり切り替えたりする関数ってないですよね??
バイク乗車中に、歩きor走りだけを使わせたいのですが、Always Runが問題になっています。
「PlayGroup (Fast)Forward 1」とかだと、SpecialIdleの切り替えで一瞬硬直が起こったりします…。
556名無しさんの野望:2011/01/09(日) 06:02:34 ID:haG3pqxF
物と物を糸のような物でつなげることって可能ですか?たとえばアイテムやNPCの死体を天井からぶら下げたり・・。(洞窟内のサンドバックのようにつるされてる罠を見て思いました。)CSとかmodでできますかね?
557名無しさんの野望:2011/01/09(日) 09:19:26 ID:z+3pfQ/Q
>>556
やりたいことによると思う
動くようにしたいのならBlenderでボーン入れ込む必要があるし
動かなくていいならCSでそれっぽいオブジェクトを組み合わせればいい
MODとはなにか、ツールは何があるのか調べたほうがいいよ
言葉の意味がわかっていないと聞いても結論が得られないことが多い
558名無しさんの野望:2011/01/09(日) 09:38:44 ID:dllboV85
ありがとうございます。ちゃんと勉強しようと思います。できたらおもしろいなと思って聞いてみた次第であります。
5593:2011/01/09(日) 11:05:47 ID:shwiF+CE
あの〜、バイクMODを作っている者なのですが、自分のサイト
http://life4oblivion.web.fc2.com/
に使っている手法とかを掲載したりすることもできるかなーと思ったのですが、
それって需要ありますでしょうか??

今簡単に思いつくのは、
・アニメーション雑記(車輪の回転とか)
・PickIdleで任意のSpecialIdleを再生させる方法
・ヘッドライト
とかくらいで、大した物でもなく狭い範囲のことになりそうなのですが…。

そういった情報が実際にどこにあるのか、この支援スレの過去ログにあったり
他の方のサイト・ブログにあったりするとは思うのですが、それをよく把握していないので
無駄に重複してしまったりすることも考えられるのですが…。
560名無しさんの野望:2011/01/09(日) 11:15:50 ID:y3Rnb9VS
>>559
ステキ。ぜひぜひ。重複は気にしなくていいと思う
561名無しさんの野望:2011/01/09(日) 12:04:19 ID:uPGNEAf4
どんどん書いてOKだと思いますよ。
色んな手法を実際の制作で使った観点からの解説って貴重ですし。

>>555
上のPlayGroupの方法だとPickIdleとうまく共存出来ないかもなので、もし実際に
応用する場合はその辺が問題になるかもです。

少しずつ曲がる仕組みはあくまで仮です。
実際には割り算の安全措置が多分必要ですし、弧と接線みたいなもう少し数学的物理的
な曲がり方をするとカッコいいかも。

Parent指定で親子をループさせる事は多分出来ない気が。
A1ZTriggerZone00Refは一番最後の子供です。
また子→親の順に辿っているのは単にバニラのGetParentRefを使っているからで、
GetNthChildRefを使えば親→子の順でも行けるかもです。分岐とかも出来るかも。

人馬一体の時に馬とヒトどちらのRefに何がどう有効かは分かり難いですよね。
どちらかやってみて動いた方が正解、と言う事なのでしょう。多分。

PCのAlwaysRunのトグル状態の検出は「IsRunning」で、切り替えは「TapControl 11」
で行けると思います。
5623:2011/01/09(日) 17:38:10 ID:shwiF+CE
サイトには少しずつ書いていこうと思います。

>>561
「IsRunning」と「TapControl 11」で見事に解決しました! 流石です!
ありがとうございました!

>実際には割り算の安全措置が多分必要ですし、弧と接線みたいなもう少し数学的物理的
な曲がり方をするとカッコいいかも。
ちょっとそういうのは全然わからないので、とりあえずこのままでいこうと思います。

実際に試してみたら困ったことが起こりました。
( CntRef.GetDistance LocRefO > 400 ) ;----今のTZとの距離が充分離れたら
TriggerZoneとの距離が離れたらフラグを0に戻してトークンを消すという処理ですが、
ウチのサーキットの場合、TriggerZoneが大きかったり重なってたり超近かったりしていて
うまく切り替えが行われておらず、あちこちに暴走します。

「今触れているTriggerZoneに触れない距離になったら、フラグを戻す」ようにするか
「触れているTriggerZoneが同じな限り、何の処理もしない」としたいのですが、
少し考えた結果、これが非常に困難に思えました。

以下のような「不可能」なことができれば、上手くいくのですが…
・TriggerZoneのOnTriggerで、GetSelfで得た自分のTriggerZoneのREFを
 走者側の変数に格納して、走者側は前回と違ったREFの場合のみ処理をする。
・走者側から現在触れているTriggerZoneのREFを検知する。

前者の場合、クエスト変数を使えばできますが、台数分だけ用意して
条件分岐するしかないし…。それでも十分といえば十分なのですが…。

やっぱりTriggerZone同士の距離を置いて、距離が離れたらフラグOFFが一番そうです。
2種類のTriggerZoneを交互に…というのも思いつきましたが、これも少し複雑になりそう。。。
5633:2011/01/09(日) 18:27:37 ID:shwiF+CE
と思ったらすみません、上手くいきました!

AIPackageをWonderからTravelにして、(Wonderだとなぜか暴走)
CntRef.GetDistance LocRefO > 1100
と400から1100に変更して、TriggerZoneを少し配置しなおしたところ、
途中で謎の定常円旋回することもなく無事にコースを周回し続けてくれるようになりました!

TriggerZoneの位置の関係で姑息なショートカットを使ってくれたりしてくれますが、
これならレースにも使えそうです!! これは楽しみです!

あとは、「GetAngle Z」で変化していたら減速、変化なければ加速とか、
ランダムなパラメータを少し与えてみたりして、面白みが出るように試してみます。
ライバルのTriggerZoneによるPushActorAwayも上手く機能すれば面白いのですがどうかな。
564名無しさんの野望:2011/01/10(月) 02:47:10 ID:mio4Ri4w
質問です。
NPCが特定の挨拶をしてきた時に("やぁ"とか"こんにちは"とか)プレイヤーキャラにも挨拶を返させることは可能でしょうか?
5653:2011/01/10(月) 12:44:20 ID:fY7v00+p
すみません、↑の方とは別ですが、
逆に近くに誰かいても関知せずに挨拶しないというのはできますか??

該当NPCのDialogueボタンからGREETINGトピックの全てをDeleteしてみましたが、
これはあくまでプレイヤーがActivateした際のNPCの返答で、挨拶はしてきます。
しかもこれは全NPC共通の設定で、Deleteしてしまうと他のNPCにも影響が出ました。
566名無しさんの野望:2011/01/10(月) 19:02:18 ID:jCqy3lhv
>>562
上の例って作った本人は面白かったんですけど、やっぱOnTriggerをアイテム側の
スクリプトに通知する辺りが少しややこしいのでそのまま使うとその辺後々禍根を
残すかもですね。

別な考え方として、TriggerZoneの代わりに同様に親子指定したXMarkerか何かを
配置し、OnTriggerの代わりにアイテム側で現在目的のRefとの距離を判定して
処理をアイテムのスクリプトだけで完結させる方法も。

これって単にOnTrigger→トークンAdd→トークンがあるか判定、の処理が距離判定に
置き換わるだけなので、アイテムスクリプト側の構造はあまり変わらないのですが。
でもTZ自体やトークンは不要になるので部品点数は減らせるかもです。
567名無しさんの野望:2011/01/10(月) 19:04:22 ID:jCqy3lhv
>>564
不可能では無いと思います。
PCと一定距離以内のNPCを「IsTalking」と「GetCurrentAIPackage」で監視すればPCに
挨拶したかどうかは多分。また「Say」、「SayTo」はPCにも有効です。
568名無しさんの野望:2011/01/10(月) 19:05:56 ID:jCqy3lhv
>>565
NPCのPCへの挨拶ってConversation→HELLOです。
挨拶が起きるのは基本的に下の条件が全部満たされた時です。

a) そのNPCがPCに気付いている
b) 今のAIパッケの「SkipFalloutBehavior」がOFF
c) PCとの距離がGMSTの「fAIMinGreetingDistance」より近い

このうちのどれかをなんとかすれば多分。

あと全く未確認な方法ですが、既存の任意NPC一人だけをAI等はそのままで挨拶だけ
を抑止、みたいな場合は、「fGreetingTimer」の値を一時的に極端に大きくして
一回「SayTo Player HELLO」させ、またfGreetingTimeを元に戻すとそのNPCだけ次の
挨拶が起きるまでの時間が極端に長くなる可能性が。
569564:2011/01/10(月) 19:30:41 ID:mio4Ri4w
>>567
ありがとうございます。なんとか出来そうな気がしますが、いつもscriptで
分けがわからなくなっちって結局ボツにしちゃうのがNPCの検出なんですよね、
自分の場合('A`)

簡単でもいいので↑のNPC検出の例を教えてもらえませんか?
570名無しさんの野望:2011/01/10(月) 22:17:37 ID:nOnX5cHa
>>565
あ、勘違いしてました。PCに限らず誰とも挨拶→会話しない、て事ですか。

その場合はb)で。そのNPCが既存なのか自前なのかとかその辺の条件次第で
何が出来るかは変わって来る気はしますが。
Dialogue側に細工する事も可能かもですが、既存部分はなるべく弄りたくない気も。
571名無しさんの野望:2011/01/10(月) 22:19:16 ID:nOnX5cHa
>>569
付近のNPCの検出は「範囲魔法」や「GetFirst/NextRef」等の方法があるのですが
とりあえず後者で。ここを。

http://cs.elderscrolls.com/constwiki/index.php/GetFirstRef

処理的には多分、「IsTalking == 1」で「GetCurrentAIPackage != 6(DIALOGUE)」の
NPCがいたらそのNPCが話し終わるのを待ってPCに「SayTo そのNPC 適当なTopic」、
とかそんなかんじです。多分。必要ならTopicの作成も。

また、この場合NPCの検出や判定は毎フレームする必要は無いので1秒に一回とか
そのぐらいで。恐らく。

とりあえず好きな様に作ってみてどこが訳分からないかを具体的に提示すると
多分話も具体的になるかもです。
572564:2011/01/10(月) 22:56:26 ID:mio4Ri4w
>>571
とりあえず形にしてみます。丁寧にありがとうです。
5733:2011/01/10(月) 23:21:14 ID:fY7v00+p
>>568 >>570
ええと、とりあえずPCへの挨拶を止めようとしていました。
「SkipFalloutBehavior」って初めて知ったのですが、これをチェックした
AIPackageを使ったら無事に挨拶してくれなくなりました。ありがとうございます!!
「fGreetingTimer」を使った方法はちょっと難しそうなので試してません、すみません。

レースですが、とてつもなく苦戦しながらもようやくベータレベルになってきました。

[問題1]…NPCのライン取りが上手すぎる
普通に置いてあるTriggerZoneの中心に向かって進むだけの簡単なお仕事のはずなのですが、
なぜかショートカットしたり、ラインを狙いすぎて海にドボンしたり、
TriggerZoneを踏み損なったのか謎の定常円旋回を延々としてくれたりします。

次のTriggerZoneへの方向があまりに違う場合、強制的にSetAngleすることで妥協…。
でも…この人達の動きほんとありえないよ…orz

[問題2]…無人のNR500が走り回る
1回目はいいのですが、2回目以降、再びNPCのバイクをスタートラインにMoveTo+SetPos
すると、なぜか人が乗ってなかったりします。で、無人のバイクが超高速で走りまわります。
どうも遠くでバイクに乗っている人をMoveToとSetPosで持ってくると、
乗っている人がどっか行ってバイクだけカムバックしてくることがあるようです。
正常に人車一体で来ることもあり、もうほんと謎です。

WorldSpace、またはCellをRespawnできれば状況を戻せると思ったのですが
やり方が分からなかったので、リセット用として、サーキットに着くたびに
バイクとNPCの位置を「PositionWorld」でリセットするようにしました。
しかしなぜかバイクの位置は変わらず何がなにやら…orz
それでも一応、色々小細工してNPCがバイクに乗り直せるようにしました。。。

レースシステム実装への道のりは遠い…_| ̄|○
574名無しさんの野望:2011/01/11(火) 12:16:10 ID:UlHLzUMw
>>573
距離判定に変更しました?OnTriggerよりその方が多分確実ですよ。

上のサンプルって、「こういうのって普通はマーカーとの距離判定でやるんだけど、
TriggerZoneのOnTrigger『でも』出来るよ」、という意味合いもあったりします。
手法的にはマーカー+距離判定の方が一般的です。多分。

またもしWorldSpaceで何セルにも跨る様な巨大コースだったりすると、ロードされて
いないセルのスクリプトは原則動かないのでこの方式自体に無理があったり。
その辺ってOKなんでしょうか。

細かな問題個別の対策に入る前に、レース全体の動作の流れとかも含めて全体の
構造に問題が無いか一度確認した方がいいかもです。
575名無しさんの野望:2011/01/11(火) 20:03:07 ID:pCIoqqLP
すみません、Blenderで装備を作ろうと落としてみました。
しかし普通に必要なツール等を集めても。
上手くnifファイルが読み込めなかったので。
そこで、TES NEXUSで公開してくださっている。
必要ツールをまとめた2.49bバージョンをダウンロードしてみました。
こちらのおかげで、nifは読み込めるようになったのですが。
今度はこのBlenderを日本語化しようとしたところ。
何度かしたように上のツールバーを引き下げて設定を出しLanguageをjapaneseに変えようとしました。
しかし、Englishしかなく、どうしても日本語化出来ません。
どうすればJapaneseが表示されるようになるのでしょうか。
どうかお力をお貸し下さい。
5763:2011/01/11(火) 20:36:02 ID:aTgJJhKV
>>574
全体の流れは恐らく問題ないと思います。ライン取りとMoveToが問題になっています。

諸事情からOnTrigger方式のままでしたが、Markerからの距離方式に変えて
みようと思います。路面の両側の草地・砂地にTriggerZoneを敷き詰めて、
それで減速という風にするのがおそらく一番ですね。

Markerに使うオブジェは何でも使えるのでしょうか? 過去ログにNPCやネズミを
Disableしたのが安全みたいなのがあった気がしますが、どうでしょう…??

PCがいないエリアにいるNPCはやっぱり動いてなかったりするみたいです。
一回抜かして距離を開けるとそこに留まり、周回遅れとして再会みたいな感じに…。
でもAIパッケージでも使わない限りそれは仕方ない気がします。
違うエリアでもスクリプトを動かさせる優先権みたいのを設定できれば最高なのですが…。

現在目指しているのは、競争というよりは共走です。
NPCの挙動がもう少し改善できれば、競争としても成り立ちそうですが。。。

TESNで二人乗りが機能してないと報告を受けて、実際に試してみたら
エリアロードで乗客が置いてけぼりになってて(´・ω・`)

乗客は椅子に座っていて、椅子の位置はそのまま乗客のみをSetPosしているのですが、
エリアロードに引っかかるみたいです。しかし乗客をMoveToしちゃうと座りが解除
されてしまうし、椅子をSetPosやMoveToしても全く効果なし…。

椅子方式をやめて、本人だけをSetPosやMoveToするしかないかもしれません。
少し前に試したところ上手くいかなかったのですが、また試してみます。
577名無しさんの野望:2011/01/11(火) 21:38:15 ID:LSQ8pS2i
>>575
うちはこんな感じでできたけどどうかな?
ttp://shy.jsphr.net/upload/img/ups22054.jpg
あとOSが32ビットか64ビットかで対応したBlenderでないと日本語化(部分的にのみ)や一部スクリプト(よく使うのはBone Weight copy)が使えなくなるよ
ただし、nifのインポートは32ビット版しか対応していないのでx64のOSだと両バージョンインストールしておいたほうがいいです
578名無しさんの野望:2011/01/11(火) 22:09:25 ID:pCIoqqLP
http://shy.jsphr.net/upload/img/ups22060.jpg

仰るようにやってみましたが、こんな感じです。

32ビットバージョンだと思います。

Orz
579名無しさんの野望:2011/01/11(火) 22:33:08 ID:LSQ8pS2i
>>578
Blenderの本家から最新版DLして別の場所にインストールして試してみるとか
あと、ぶっちゃけ日本語化の恩恵はあまりないかも、解説サイトでも英語表記が多いですし

ちなみに自分はx64のOSつかってるのでnifのインポート、エクスポートはx32版で実作業はx64版でやってます。
作業が1段落したらBlendファイルで保存、x32版を起動してBlendの読み込みか最後のセッションを復元で再開してnifでエクスポートしています。
少しだけめんどいですけどフリーのツールなので仕方ないかと諦めてます
580名無しさんの野望:2011/01/11(火) 22:58:25 ID:pCIoqqLP
有難う御座居ます!
本家から落としてきたものを別の場所にインストールして
スクリプトなどをTES NEXUSのものからコピーすると
日本語化出来、nifも読み込めました。
本当に、本当にありがとうございました!
581名無しさんの野望:2011/01/12(水) 20:46:19 ID:rZhy7qNE
>>576
ライン取りは、TZ同士が近かったり大きさに対して判定距離が適切でないと色々
変な動作をすると思うので、TZをマーカーにしてを判定の距離を適切にすれば多分。

馬のMoveToは、対象が現在ロード(PC中心の5x5セル以内)されていないと乗員と一緒
には移動してくれないかもです。
遠い場合は馬と乗員それぞれをMoveToして改めて乗馬させる、みたいな手当てが
多分必要に。

マーカーはXMarker等の普通のオブジェでOKです。
マーカーにアクターを使うのは、マーカーを移動させる必要があってかつ移動後の
位置をSaveに保存も必要、みたいな特殊な場合です。
例えばコンパニオンの住居位置の指定とか。

また、別にXMarkerが「危険」という事では無くて、特殊な状況の時はマーカーに
アクターを使った方がいいかも、という事なのでその辺誤解なきよう。
通常の用途ならXMarkerが適当です。

「エリアロードで置いてきぼり」って状況がよく分からないのですが、単にロード中に
乗員の動きが極端にガクガクする、て事ならロード中の描画タイミングとかその辺の
関係でGet/SetPosが反映されなかったり遅延する、とかでしょう。恐らく。

その場合は座り状態である事や椅子の位置は関係無いです。MoveToも多分状況は同じ
です。
要するにGet/SetPos/MoveTo方式は元々構造的にLaggyな上、ロードでカクつくと
それが極端になる、て事だと思います。
OSRで改善し切れないとなると簡単には行かなそうな気も。
5823:2011/01/13(木) 12:35:35 ID:HMC77zKo
>>581
マーカーの使い方について理解しました。ありがとうございます!

マーカー方式にしたところ、マーカーの置き方によってライン取りを操作しやすく
なってよくなりました。マーカーの測定距離内に入って目的地変更の処理が
確実にされているはずなのに、処理がされていないのかラインオーバーしたり
戻り始めたりと、スクリプトが動いていないと思われる時がありますが許容範囲内です。
おかげ様でスクリプトも大幅にシンプル化できました! ありがとうございました!!

このスクリプト動作不良はもしかしたらOSRの影響かもしれません。
OSRは設定次第では色々な処理を省略化することがあると聞いたことがあります。

MoveTo不良の件ですが、人もバイクも両方共設置したXMarkerにMoveToしたら
乗ったまま来るようになりました! 保険として1人でも乗っていなかったら
Returnで待つように、8秒以上乗らなかったらレース開始としています。

スピード調節も可変的にして、ライン取りも良くなったおかげで大分まともになった
と思います。近々バージョンアップできそうです!

「エリアロードで置いてきぼり」というのは、エリアとエリアの境目で同乗者の
グラフィックがピタリと止まってしまうという現象です。なぜかShiftキーを押して
加速している時だけ発生し、Shiftキーを離してスロットルオフするとついてきます。
ヘッドライトの時も同様の現象が起こっていて、Shiftキーに何の意味があるのか謎です。

あと、初期設定の二人乗り時の最高速度は280ですが、これを400とかにしてスピードを
出していると、その内同乗者がスッと消えて、最初に乗った(椅子のある)場所に
佇んでたりします。何らかのシステムに引っかかっているのかもしれません。
ヘッドライトの場合は約1秒周期でMoveToしていますが、同乗者の場合はMoveToすると
椅子への座り状態が解除されてしまうため使えません。SetPosの限界のように見えます。
583名無しさんの野望:2011/01/13(木) 14:14:43 ID:qoOTYroi
Blenderの質問はここでいいのかな?
つぎはぎで装備作ってたら、光源の近くで肌のテクスチャが表示ずに、真っ白になってしまいます
暗いとこならしっかり表示されるのですが・・・
どなたか、解決法をおしえていただけませんか?
584名無しさんの野望:2011/01/13(木) 19:39:08 ID:me0eQ3fr
>>583
わかるかどうかわからないけどnifskopeの画像plz
出来れば肌部分のツリーの階層を開いて
585名無しさんの野望:2011/01/13(木) 19:52:42 ID:aTJbHiOr
startconvsersationについて質問です
cswikiとMS29のクエストを参照して設定はしてみたのですが、最初の一文を話した後に会話が続きません。
テスト用にespを作ってみたのですが、何処か変な部分があると思うのですが指摘して頂けないかと…。
過去ログでNewgameすると続くとあったので試しましたが、会話が続かないのでやはり何処か変みたいです。

espファイル
http://shy.jsphr.net/upload/img/ups22104.7z
OBSE -Elys- Universal Silent Voiceを導入されてるのであればsoundフォルダは不要です。
IC Divine Eleganceに2人の新規NPCが出現して、Cellに入ると反応して会話が始まります。

参考にしたcswikiのページ
http://cs.elderscrolls.com/constwiki/index.php/How_do_you_set_up_a_scripted_conversation_between_two_or_more_NPCs%3F
586名無しさんの野望:2011/01/14(金) 09:33:01 ID:Yzmvw7BF
>>585
aatestmanSCの7行目「TestAman」は「TestBman」では。多分。
587名無しさんの野望:2011/01/14(金) 09:34:37 ID:Yzmvw7BF
>>582
大体動いた様で。
で、今更ですが、動作が不安定ならNPCの走行は素直にAIにするのもアリかもです。

自分でサンプルを作っておいてこんな事を言うのもなんですが、アクターに一定経路
を走らせるのならAI+PathGridにするのが本来ですし、動作も確実です。

AIを使うのはあまりにも当然なので細かな話は省略しただけで、別にサンプルの方式
の方が優れている、と言う事では全然無いのでその辺も誤解なきよう。

例えばこんなかんじにPathを敷いて適当なAIを付ければ普通に動きますし、追い越し
もある程度は起きると思います。

http://shy.jsphr.net/upload/img/ups22117.jpg

わざわざPlayGroupで走らせる利点って、方向転換の計算をそれなりに書けば現在の
速度や進行方向によって経路がある程度変わり、NPC同士の追い越しも多分それなりに
自然になるかも、て事だけだったりします。

一方欠点は、開始/終了/再開操作が煩雑、見えている範囲でしか動かない、
PickIdle出来ない、z角を常に変更しているのでそのままだとラグドール
(死亡/麻痺/Fatigue/PushActorAway等)になると異常になる等々いっぱいあります。
ラグドールの対策は実は厄介かもです。

なので最終的にどちらの方法で行くかはその辺の兼ね合いで。
588名無しさんの野望:2011/01/14(金) 09:36:49 ID:Yzmvw7BF
あと「置いてきぼり」ですけど、もし同乗者がコンパニオンだったりするとSpeedが
極端に大きいと処理落ち等何かの拍子にPCとの距離が離れすぎてコンパニオン側の
離れすぎ予防措置で勝手にMoveToして訳の分からない状態になる可能性も。

確認の為こちらでも自前の同乗者スクリプトでSpeedを400にして少し走り回って
みましたが、位置の遅延が1〜2馬身の間を行き来して盛大にガタつく以外は特に
SetPos自体には問題は無いみたいです。
そのガタつきこそが問題だと言えば問題なのですが。

特定の操作で明らかに異常が起きるならSetPos以外の別なアクター操作に何かある
可能性も。
またアクターの場合はMoveToすると付随して色々な処理が起きるので、単にMoveTo
すれば万事解決、という訳でもないです。

まずは原因要素の切り分けを慎重にするのが良さそうな気が。
589名無しさんの野望:2011/01/14(金) 16:26:16 ID:WFxUab+U
Summonable Aegis v0.21を改造してオリジナルのコンパニオンMODを
作りたいのですが、どうすればいいでしょうか?
Beautiful People 2chEdは使わず、バニラ種族だけで作りたいのです。
590名無しさんの野望:2011/01/14(金) 16:32:16 ID:pkSbT1Rg
何を残してどうしたいのかが不明
VanillaRaceでNPCを作成してCompanion用のAI作成して指定すればいい
とりあえずDialogueやTopic、Script組んでFollowとWaitだけ付ければ簡易Companionになる
既存のCompanionModを観察しながら学んでいけばいいと思うよ
591名無しさんの野望:2011/01/14(金) 16:56:20 ID:WFxUab+U
>>590
ありがとうございました。
592名無しさんの野望:2011/01/14(金) 17:18:55 ID:55rXn8E7
すみません、便乗でいいでしょうか?
EXHouseのメイド達に座って本を読む、という行動をさせたい場合には
AIはどのように組めばいいのでしょう?
本はもう持たせてあります

やっとEatで物をたべさせたり、Travelで移動して座らせるというのを理解してきたところです…
593名無しさんの野望:2011/01/14(金) 17:45:20 ID:iCA33n0G
>>592
UseItemAtパッケージでTargetを本、Locationを椅子にすれば座って本を読むはず
VanillaのAnvilメイジギルドに座って本を読むNPC(赤い服のBreton男)が居るので参考になるかも
5943:2011/01/14(金) 17:57:00 ID:qz/+iiMi
>>587 >>588
これは見事な8の時ですね!

いえいえ、PlayGroupで走らせる方法には遠方でスクリプトが動かず止まるという
構造的欠点はありますが、それよりも利点のほうが遥かに大きいですよ!

「開始/終了/再開操作が煩雑」は確かにそうで小細工は必要ですが、レースシステムで
共有の処理を1つ作ってしまえばあとは大丈夫です。ラグドールに関しては、
PushActorAwayしか試していませんが、自分の環境では問題なかったです。

NPCのライン取りとかアニメーションの変化とかSpeedの変化とかに成功しているので
もしよかったらアップデートしたバイクMODで確認してみてください。
シンプルな処理でここまでNPCがレーサーのように動くとはw 思いもよりませんでしたw
本当に名無しの人さんの発想力(しかも実際に実現可能)には感服しきりです!

二人乗りについては複雑みたいですね…。まず突然消えるのは恐らくMPCだからだと思います。
高速時のズレへの対策は、もはや自分でSpeed制限をつけることくらいしかなさそうですね。
エリアの境目でグラフィックが静止してしまう問題はかなり検証が必要そうです。
これはゆっくり調べてみようと思います。
595名無しさんの野望:2011/01/14(金) 18:24:39 ID:hqFtfaUH
>>586
ありがとうございます、動くようになりました!
596名無しさんの野望:2011/01/14(金) 19:40:27 ID:55rXn8E7
>593
できました
ありがとう〜
597名無しさんの野望:2011/01/15(土) 01:13:04 ID:J7hosO7G
CSでNPCの顔色を変えるには
どこのパラメータをいじればいいですか?
598名無しさんの野望:2011/01/15(土) 12:19:22 ID:I6vtDvGS
>>597
FaceAdvancedのTextureにチェックしてお好きなところをどうぞ

顔色で思い出した。
OBSEでゲーム中にリアルタイムで顔とか体のテクスチャパスを変更できるようにならないかなぁ・・・
体に模様が浮かび上がるようにしたり、化粧品屋作ってそれ使うと化粧変えれたり、タトゥー屋作ったり
色々アイデアはあるだけどなぁ・・・


599名無しさんの野望:2011/01/15(土) 21:16:03 ID:n9a+bS0t
>>597
バニラのNPCはunlockerを使わないと顔色は変えられません
600名無しさんの野望:2011/01/15(土) 21:50:37 ID:q0wfp0qs
オブリビオンへの応用を念頭に置いたマテリアルの設定とかテクスチャの作成についてわかりやすく解説しているサイトありませんか?
あとテクスチャについてですが、うまいテクスチャを作るにはやはり絵心とかフィギュア作成の知識がないと無理ですか?
601名無しさんの野望:2011/01/16(日) 17:41:05 ID:T1NeZT0n
>>594
レース拝見しました。みんないい年して超速いです。これだけ速いとロードエリア
を頻繁に飛び出してその辺の辻褄合わせの比重が大きくなって大変そうな気も。

で、PlayGroupとPickIdleですが、本来スクリプトからPlayGroupでFastForward等を
再生した場合はPickIdleするとそのFastForward等は停止します。

でもそのレースの場合、恐らくFastForwardはスクリプトからのPlayGroupではなく、
乗員側のAIで自律的に起動されているので通常の移動時と同様SpecilIdleと普通に
共存出来ているのだと思います。

スタート時のSetRestrainedで馬の自律的な方向転換を抑止、でも乗員のマーカーへの
AlwaysRunのTravelAIは生きているので位置を強制的に移動するとマーカーに行こうと
してFastForwardが始まり、結果として馬はAIが起因で走リ出し、SpecialIdleは有効
だけど馬の方向転換だけは起きない、という猪突猛進状態に。恐らく。
なのでスタート時のPlayGroupは多分無くても。

これって乗馬時特有の挙動だと思うのですが、バイクレースには非常に都合の良い
状況なのかもです。

あとPushActorAwayですけど、みんな速くて全く追いつけず状況の確認が出来ません
でした。
6023:2011/01/18(火) 20:58:12 ID:oNecwaJT
>>601
まさにおっしゃる通りで、PlayGroup FastForwardは必要なく、AIPackageの
AlwaysRunによって彼らは走っていたみたいです。道理でバイクを吹き飛ばされた後、
バイクは独りでに走らずにライダーが戻るまで大人しく待っているわけですね。
バイクが待機している理由がわからなかったのですが流石です。

ロードエリアを飛び出す件は、仮にスクリプトが停止しても乗車したまま待機しているし、
Speedはその状況のままなので、近づいてスクリプト処理開始とともに爆走し始めるので
多分大丈夫と言えると思います。NPCが先行している場合、引き離し距離に制限ができますが、
それは全然いいと思います。NPCを星にしてるなら、次に再開するのは周回遅れとしてです。

NPCのスピードは速すぎるみたいです。テストプレイしまくって慣れているはずの
製作者でさえ1位のおっさんといい勝負なので、もっと遅くさせとこうと思います。
到着順位で賞金も出るようにしました。なぜかたまに順位が狂ったり名前が登録
されなかったりしますが、これは全く不明です。
6033:2011/01/19(水) 00:02:44 ID:oNecwaJT
連投すみません。既出の可能性の高い質問ですが、
見つけられずわからなかったので教えていただけませんか?

馬はファストトラベルすると付いてきますが、これはスクリプトで
ファストトラベルを検知してPlayerにMoveToしているのでしょうか??
馬にはAIとして「HorsePCStandStill」と「HorsePCStay」の2つが
設定されていますが、どちらも関係なさそうでした。

馬の機能を拡張するMOD「Horse Commands Revamped 1.3」では
クエストスクリプトで色々と監視しているようなのですが、このように
クエストで常時監視といった感じにしないとできないでしょうか??

Playerと対象のセルを確認して、同じ場所でなければMoveToのようにすれば
できそうですが、やはりクエストで常時監視する方法しかないでしょうか??
よろしくお願い致します。
604名無しさんの野望:2011/01/19(水) 12:25:08 ID:cn6zf0uY
>>603
馬がFTで付いて来るのはシステム側の処理です。多分。

システムはPCが最後に乗った馬のRefを保存して、PCが降りた後もFT時に一緒に
移動し、行き先が町の中(行き先MapMarkerが別WorldSpaceかSubSpace内にある場合)
なら近場の厩(HorseMarker)に移動する、みたいなルールで処理している気が。
HorseMarker移動時のメッセージはGMSTの「SFastTravelHorseatGate」に。

でもシステムがやっているのはそこまでで、バニラ馬の場合その後の動作は馬側の
AIで自分のIsPlayersLastRiddenHorseを判定してその場に留まるか厩に帰るかを
決めていると思います。

移動自体は馬のスクリプトとかAIとは関係無く起きるので、バイクの場合も特に何も
しなくてもバニラ馬同様一旦乗りさえすれば後は勝手に付いて来ると思うのですが。

普通の馬とは別な挙動にしたい、て事ですか?
6053:2011/01/19(水) 13:38:44 ID:L3kfBNyR
>>604
詳細な説明ありがとうございます。
少し勘違いしてました。バイクでも普通にファストトラベルでついて
きますね。UnSummonで専用CellにMoveToさせれば出現しなくなりますし。。。

馬と同様についてくることで不満はないのですが、ファストトラベルや
普通の移動で街やOblivionGate内やInteriorのCellに入ったときにも
プレイヤーに追従してついてくるようにするとしたら、
やはり「常時監視→MoveTo」の流れになるでしょうか??

クエストの監視間隔を3秒くらいにすればほぼ負荷はないと思うのですが、
もしも何かいいアイデアがあったらと気になってしまいます。

例えばプレイヤーが他のCellに移動する時に実行されるスクリプトか何か
があるなら、そこに処理を追加するなど…でもないですよね…。
常時プレイヤーの周りで動作可能である、クエストかアイテムなどの
スクリプトで監視するしかなさそうに思えます。
606名無しさんの野望:2011/01/19(水) 17:21:26 ID:8EmIZqTv
>>605
やっぱ一定間隔で監視するのが簡単な気が。他に良い方法も思い付かないですし。

同じWorldSpace内での乗った/乗らないによる挙動は馬同様システムに任せるとして、
PCがInteriorやWorldSpace間の移動をした時にだけMoveToするならPCとバイクの
距離が、

4096(セル一辺の距離) * 120(バニラTamrielの一辺の約最大セル数) * 1.4(対角)

この値以上離れたかどうかを判定すれば現在のバイクの位置に関わらずPCの
Interior/WorldSpace間の移動だけを検出出来ると思います。
GetDistance一つぐらいなら負荷的には全く無問題な気も。多分。

ただ、以前どこにでも付いてくる馬コンパニオンを作った事がありますが、そのまま
だと店の中やWaterfrontの狭い自宅にまで入って来てえらく邪魔臭かった覚えも。
お買い物の荷物持ちには便利なんですけど。

なのでもし場所によってMoveToする/しない等その辺も考慮するなら少し複雑になる
かもです。
6073:2011/01/19(水) 22:12:20 ID:L3kfBNyR
>>606
教えていただいた式を使って試してみたところ満足いくものができました!!
本当にありがとうございました! 「GetInSameCell」などのセル判定を使う場合、
距離を図らないとちょっと移動しただけでCellが切り替わったことを検知して
しまうんですね。WorldSpaceやCellの理解が曖昧なので非常に助かりました!!

こんな感じでオブゲート内外、ダンジョン内、街内外、WorldSpaceを判定できました。
If (Player.GetInSameCell NR500PlayerREF == 0) ;プレイヤーと違うセルにいるなら。別途距離判定も必要
  ;OblivionGateExterior
  If (Player.GetInWorldSpace OblivionMQKvatch || Player.GetInWorldSpace OblivionRD001);以下略
  ;OblivionGateInterior
  ElseIf (Player.IsInInterior) && (Player.GetInCell Oblivion)
  ;Dungeon
  ElseIf (Player.IsInInterior) && (GetCellMusicType == 2)
  ;CityExterior
  ElseIf (Player.IsInInterior != 1) && (Plyer.GetInCell Anvil || Player.GetInCell Bravil || Player.GetInCell Chorrol || Player.GetInCell IC || Player.GetInCell Leyawiin || Player.GetInCell Skingrad)
  ;CityInterior
  ElseIf (Player.IsInInterior) && (GetCellMusicType == 1)
  ;Worldspace
  ElseIf (Player.IsInInterior != 1)
  EndIf
EndIf
6083:2011/01/19(水) 22:24:15 ID:L3kfBNyR
(続き)
オブリビオンゲート内の判定は、「GetInWorldSpace」で1つ1つWorldSpaceを
指定するしかないと思います。ゲート内の内部セルの場合は、
「IsInInterior == 1」と「GetInCell Oblivion」でできました。

「GetInCell」は「現在のセルがその名前を含むかどうか」を判定しますが、
存在しないセル名は指定できないので「Oblivion」という名前のダミーセル
を使っています。競合したら(他の方が)困りますが…。

ダンジョンの場合は「IsInInterior == 1」と「GetCellMusicType == 2 」
なんて誤魔化しっぽいので判定しています。でも多分大概は上手く動くと思います。

都市の外部セルは「IsInInterior != 1」と「Plyer.GetInCell」で1つ1つ都市名を
指定する力技しかないと思います。都市の外部エリアへの扉出てすぐのエリアは
Tamrielでなくまだ都市のWorldSpaceなので、少し注意が必要でした。
脳内イメージ的には、都市の外部セルは例えばICだったら外壁の内側だけなのですが…。

都市の内部セルは「IsInInterior == 1」と「GetCellMusicType == 1」でOKでした。

WorldSpaceのTamrielは、残り物的に「IsInInterior != 1」で判断できます。
もしかしたら条件が要らなかったり、他の条件のほうがいいかもしれません。
609名無しさんの野望:2011/01/20(木) 13:17:04 ID:ZXBP8ppz
CSの日本語Helpですがshyの保持期限が長いので実用上は問題がないと思いますが
念の為、Wikiの方にもおいておきました。
http://wiki.oblivion.z49.org/redist/TES4_CS_Help_v1.1.zip

)))...
610名無しさんの野望:2011/01/20(木) 16:21:55 ID:X9yLrmdv
時代は日本戦国時代。
プレイヤーは忍び、侍、武将、農民、商人、遊女、泥棒、辻斬り、役人、職人等をクラスとして選び生活。
そのクラス通りにするもよし、農民から役人になることを目指すもよし。
忍びになって指令をこなしていくもよし、裏切って頭領を殺し追われる立場になるもよし。
MAPは衛星の日本地図から正確な情報を縮尺を少しいじってゲーム用にし
日本全国を回れるように。
そのままだと余りに広すぎてゲームにならないから、その辺は調整で。
街道をあるいていると茶屋があったり、盗人に襲われたり。
時には合戦が行われる事も(これはスペックの関係で無理そう)
モンスターは妖怪変化。


っていう超大型MODがでるっていう夢を見たんだ。
611名無しさんの野望:2011/01/20(木) 18:08:00 ID:5xvTKmAc
>>607
「Oblivion」ダミーセルの競合って内部的に実際にどうなるかは少し謎なのですが、
以前複数のコンパニオンのespを作って各々同じ「Oblivion」ダミーセルを定義して
GetInCellした限りではそれぞれ問題無く動いていたとは思います。確か。

また、OblivionなWorldSpaceかどうかはClimateの判定でも行ける、という話が以前
ありました。

あと、都市の外部セル、外部エリア、内部セル、というのが何を指すのか少し良く
分からないのですが、GetInCellはInteriorCell用の関数で、WorldSpace各Cellの
EditorID名については動作は保証されていないかもです。
そこが各都市のWorldSpaceかどうかを判定するならGetInWorldSpaceでOKな気も。
それとはなんか別な話なんでしょうか。

で、MoveToの可否をInteriorCell/WorldSpace毎にシナリオ上の設定的な意味も含めて
真面目に判定しようとするとどんどん大掛りになりそうな気が。

判定量が多くなる様なら、GetParentCell、GetParentWorldSpace等で現在PCがいる
InteriorCell/WorldSpaceの変化を一定間隔で監視、変化した時だけ判定する、
みたいな方が負荷的に有利かもです。

また、逆に簡易的でいいなら、InteriorCellの時だけMusicTypeを見てBGMが平和
(!=2)なら普通の室内とみなして除外、それ以外は全て問答無用でMoveTo、という
おおざっぱな考え方もあるかもです。
612名無しさんの野望:2011/01/20(木) 19:13:17 ID:WRiFHI+P
animationに関して質問です
スクリプトでforward以外のアニメを動かすことは可能でしょうか?
たとえばドアはNIFで見た場合openというグループなんですが、CSで
playgroup openと打ち込んだ場合、グループが見つかりませんと言われます。

また、NIFscopeでOPENの部分をforwardに書き換え、playgroup forwardと打ち込んでも変化がありません。
613名無しさんの野望:2011/01/20(木) 19:56:19 ID:RlWYUpUE
>>608,>>611
枝葉の話ですが、OBSE0020の中ではisInOblivionが実装されています。
もうじき正式リリースになるのでその際は使うのもありでしょう。

IsInOblivion - returns 1 if the calling reference is in a cell or worldspace marked as belonging to the realm of Oblivion.
614名無しさんの野望:2011/01/20(木) 20:22:58 ID:t4QeiqK4
>>610
太閤立志Oblivionか

100%ムリだと断言できる
615名無しさんの野望:2011/01/20(木) 21:47:58 ID:p6FxQ72L
おー、便利な関数が。

>>612
PlayGroupで指定可能なGroupNameはここを。

http://cs.elderscrolls.com/constwiki/index.php/AnimGroups

Open/Closeってドア特有のシステム予約のNiControllerSequence名です。多分。
スクリプトからドアの開閉をするなら「Activate」でシステムのドア処理経由で。

また、ドアnifのNiControllerSequenceを例えばForward/Bavkwardに書き換えれば
「PlayGroup Forward/Backward 1」でアニメを直接操作する事は出来ます。

でもDoorオブジェとしてはActivateで開閉しなくなったり内部的な開閉状態の辻褄が
合わなくなったりするかもです。

なのでもし「自動ドア」的なものを作るのなら、通常のDoorオブジェとしてActivateで
開閉するか、NiControllerSequenceをForward/Backwardに書き換えてDoorではなく
StaticなりActivatorなオブジェにしてレバーやボタン類みたいにスクリプト側で
責任を持ってPlayGroupで操作するか、のどちらかにするのが安心かもです。
616名無しさんの野望:2011/01/20(木) 22:35:30 ID:HJDMZy87
質問です。
BetterMusicSystemなどを使わずに、オブリビオンゲート内だけ違う音楽を数種類の中から
ランダムで再生させたいのですが可能でしょうか?
617名無しさんの野望:2011/01/20(木) 23:35:15 ID:/ukFoHJa
>>616
私はEnhanced Music and Controlを使い、そういうスクリプトを作って運用してます
EMCのような音楽制御系コマンドなしで作るのは、非常に難しいと思います
こんな感じで作ってますよ、というのを紹介しておきます

オブ界でランダムに鳴らしたいmp3ファイル複数を、data\Music\MyFolder\ に入れておく

short plistnum  ;現在設定されているプレイリスト
short inOblivion :オブ界にいるのかいないのか

begin GameMode
;ゲームロード時に初期化、オブ界用プレイリストを生成
if(GetGameLoaded)
emcCreatePlayList "MyList" "data\Music\MyFolder\*.mp3"
  set plistnum to 0
endif

if(オブ界に居たら)   ;この判定は上の方のレスを参考に
set inOblivion to 1
else
set inObvlivion to 0
endif

;現在、デフォのプレイリストでかつオブ界に居るならば、ダンジョン音楽を"MyList"に切り替え
if(plistnum == 0 && inOblivion==1) 
emcChangePlayList 2 "MyList" ;2はダンジョン音楽を示す
set plistnum to 1
elseif(plistnum == 1 && inOblivion==0) ;上の逆
emcChangePlayList 2 "obDungeon"  ;ダンジョンのデフォのプレイリストは"obDungeon"という名前に決まっている
set plistnum to 0
endif
end
618名無しさんの野望:2011/01/21(金) 00:00:53 ID:xYT3Ejaw
>>615
なるほど
ちなみにコンテナに登録した場合、挙動がStaticなどと異なるという場合はありますか?
一応やりたいこととしては、コンテナをアクティベートしたらドアが開いてコンテナが開く、ということなのですが

とりあえずnifの書き換えからチャレンジしてみます
6193:2011/01/21(金) 00:30:52 ID:t8obpokn
>>611
他の方がダミーセルでなく作りこんだセルとして「Oblivion」という名を使った場合
どうなるのかなと気になりました。しとしんさんの地名日本語化espでは自分の記憶では
「地名だけ変更というのはできないから、他のところも含まれちゃってるけど、
これをBashedPatchの直前に置いても大丈夫」となっていたと思います。
実際に自分の環境でも異常なく地名の日本語化だけが行われてます。

Oblivionゲート内の「Climate」は「MQ14OblivionWorld」以外は全て
「OblivionDefaultClimite」みたいなので判定に使えそうですね。

>>613
「isInOblivion」これはピンポイントに便利な関数ですね。
OBSE0020が普及したら使いたいですが、ちょっとまだ時期尚早そうですね…。
6203:2011/01/21(金) 12:35:37 ID:t8obpokn
(続き)
すみません、思いっきり書き込みミスってましたorz

上記の地名日本語化espの話は言葉足らずで、同じIDのCell/WorldSpace(?)を
後ろに置いても上手く動いているみたいだ、という補足です。

Oblivionゲート内の「Climate」は「MQ14OblivionWorld」以外は全て
「OblivionDefaultClimite」みたいなので判定に使えそうですね。

すみません、セルの定義とかよくわからないのでいい加減な言葉を使いました。
「都市外部セル=都市内の室外」「都市内部セル=都市内の室内」、
「外部エリア=Tamriel」という意味でした。「GetInWorldSpace」だと
帝都とかだと膨大な定義数になりそうですが、勘違いでしょうか??

>「GetParentCell」「GetParentWorldSpace」などの使用
全く考えていませんでした。これらのほうがシンプルにできそうですね。
よりシンプルで負荷の少ない機能的なものを試してみたいと思います。
621616:2011/01/21(金) 15:00:47 ID:UgEbJ9z9
>>617

分かりやすい解説ありがとうございます。
やっぱりEMCでないと難しいですよね・・・自分の環境ではDirectShow Filterの競合は無いはずなんですが、なにをやっても
数秒ごとにカクつきが出るので外してしまいました('A`)
622名無しさんの野望:2011/01/21(金) 17:37:05 ID:jD+U1O6C
>>618
アニメするnifをContainerに指定する事は出来ます。
でも動作の保証は多分無いのでその辺は実際にやってみてから、と言う事で。

NiControllerSequenceの名前は大文字小文字さえ気を付ければ単に書き換えるだけで
OKだと思います。

>コンテナをアクティベートしたらドアが開いてコンテナが開く

この状況が今ひとつ謎なのですが、何かをActivateすると別な何かが動く、
的な事でしたらやはりバニラのレバーやスイッチ類が参考に。

あと細かな話ですが、場合によっては例えば「ドア」に見えるモノでも実際に「Door」で
ある必要は無かったり、逆にDoorではない方が良かったりする事も。
特にDoorってアクターのAIにも影響したりするので。

でもその辺はどんなものを作るか次第なので、これまた実際にやってみてから、
と言う事で。
623名無しさんの野望:2011/01/21(金) 17:39:16 ID:jD+U1O6C
>>620
申し訳無い、GetInCellとGetInWorldSpaceの話、実はこちらも適当に曖昧な事を
言ってしまいました。

少しややこしい話になるのですが、まず、GetInCellがWorldSpace用ではない、
というのは、WorldSpaceのCellのEditorID名を直接指定する事が出来ない、
と言う事で、InteriorCellのEditorID名を指定すればそれを先頭に含むWorldSpace
のCellも普通に検出します。

なので使い方自体はそれで正しいです。

でも、例えばEditorID名の先頭に「IC」を含むCellはTamrielにも存在しますし、
都市WorldSpaceの城壁内部であっても端っこの微妙な位置のCellは「Wilderness」
だったりして、GetInCellだけではそこが都市WorldSpaceかどうかの判定は厳密には
出来なかったりします。

と言う事で、GetInCellは「動作が保証されていない」というのはウソで、「動作はする
けど都市WorldSpaceの検出と言う意味では判定結果は保証されない」、が正しいです。

その辺細かく追求し始めると話が長くなりそうだったので、つい
「別にGetInWorldSpaceでいいじゃん」みたいに適当な事を言ってしまいました。

確かにGetInWorldSpaceだと判定量が増えるのでこの場合適切では無いです。
適当な事を言ってごめんなさい。

お詫びに代案を。

各都市のWorlsdSpaceって必ずTamrielの子供なので、
「GetWorldSpaceParentWorldSpace」で今のWorldSpaceの親がTamrielかどうかを
判定する手が。

今実際に少し試した限りでは行けそうな雰囲気が。多分。恐らく。きっと。
624名無しさんの野望:2011/01/21(金) 17:41:07 ID:jD+U1O6C
続き)
あと「外部エリア=Tamriel」と言う事なのですが、

>都市の外部エリアへの扉出てすぐのエリアはTamrielでなくまだ都市のWorldSpaceなので、

都市外壁にある扉を中から外に出た場所って既にTamrielです。
ただ、Tamrielであっても都市周辺のCellはID名先頭にその都市名が付いてたりする
ので、上の話の通りGetInCellだとそこは都市WorldSpace、という判定結果になりそう
な気が。多分その事では。

各都市はTamrielの「子」WorldSpaceですが、親子WorldSpace間でのPCの行き来に
関しては別に特殊な事は無く、ドアを介した普通のWorldSpace間移動です。

またGetDistanceも親子に関係無くInteriorCell/WorldSpaceが別になれば
単精度float(多分)のMax値(すごく大きい)を返します。

各都市WorldSpaceの塀の外の領域って中から塀越しに見える地形の外観の為だけです。
Tamriel側にある各都市の塀内部も外観だけのハリボテで、どちらも通常はPCがそこに
立ち入る事は無いです。
6253:2011/01/21(金) 17:52:44 ID:t8obpokn
丁度書き込みが同じタイミングになりました。先に書いていた分だけ書き込みだけします。

教えていただいた方法で改善できました!

オブゲート内は「IsInInterior != 1」と「GetCurrentClimateID」が
「Obliviondefaultclimate」or「OblivionMountains」or「OblivionTESTclimate」
で判定できました。
オブゲート内のダンジョンの場合は「IsInInterior == 1」で判定できます。

洞窟や遺跡などのダンジョンは「IsInInterior == 1」と「GetCellMusicType == 2」で。
都市内の室外エリアは「IsInInterior != 1」と「GetParentWorldspace == Tamriel」で。
都市内の室内エリアは「IsInInterior == 1」と「GetCellMusicType != 2」で
Tamrielは残り物的に「IsInInterior != 1」で。もっと的確な条件もあるかも。

「GetParentCell」は必要ありませんでした。また「GetParentWorldSpace」は
各街がTamrielの子であるという判定にだけ使っています。

常時監視のスクリプトの手順はこんな感じです。

まず「4096(セル一辺の距離) * 120(バニラTamrielの一辺の約最大セル数) * 1.4(対角)」
以上の距離、ワープさせたい対象とPlayerが離れているか測定する。

「プレイヤーの場所が変わってない」&&「上の判定の結果、距離が離れていない」
ならReturn。そうでなければ「プレイヤーの場所変更フラグ」を立てて次の処理に。

ここからはそのセルがどの種類なのか判定して、該当種のセルのIf条件分岐内で
そのセルで移動の設定ならフラグを戻してMoveTo。そこは移動しないならReturn。
5秒毎にプレイヤーの居場所の判定が来るので、移動の設定になってる種類のセルに
きたらMoveTo。フラグを戻す。
6263:2011/01/21(金) 18:06:20 ID:t8obpokn
>>623-624
「GetInCell」の件、理解しました。なるほど、動作はするけど判定が厳密でない
ということですね。なぜかWorldSpaceのCellの名前って変更できないんですよね。
ヴァニラのならともかく、コピーセルとかなら変更させて欲しいのですが…。

はい、「GetParentWorldspace」はこの場合非常に有用で、クヴァッチを含めた
各街は必ずTamrielの子WorldSpaceなんですね。判定が非常に楽になりました!

>都市外壁の扉からTamrielに出た瞬間のエリアが都市のWorldSpaceの気がした
これはまさに「GetInCell」の誤判定だと思います。Tamrielだったんですね…。

今回一番強かったのは、「set float to (4096 * 120 * 1.4)」です。これが最高でした。
同じWorldSpaceやInteriorにいる限り必ずこの距離以内になり、違うエリアへ行った時に
必ずこの距離以上になる。つまり場所移動を確実に判定できる、というこの式は最強です。
おかげでPlayerのいるセルを記憶したりする必要がありませんでした。

正直作成中はかなり頭を悩ませましたが、非常に満足のいくものができました!
本当にありがとうございました!!
6273:2011/01/21(金) 19:03:59 ID:t8obpokn
あ、間違えました。
「set float to (4096 * 120 * 1.4)」じゃなくて、
2つのREF間の距離を「GetDistance」で判定した結果が
「4096 * 120 * 1.4」以内かどうか、ということです。
628名無しさんの野望:2011/01/21(金) 20:44:43 ID:xYT3Ejaw
>>622
解決しました

>>NiControllerSequenceの名前は大文字小文字さえ気を付ければ
どうやらこの大文字小文字ってのが引っかかってたみたいです。
csずっとやってると大文字小文字の区別に頓着しなくなるので気がつきませんでした
629名無しさんの野望:2011/01/21(金) 23:18:22 ID:sznnTgru
TES NEXUSにMODファイルを投稿するにはどうしたらいいでしょうか?
630名無しさんの野望:2011/01/21(金) 23:28:55 ID:xYT3Ejaw
>>629
右にある一覧からfile>Add new fileを選択
あとは適当に入力すべし
631名無しさんの野望:2011/01/21(金) 23:30:06 ID:8Z6RYf/C
>>630
ありがとうございました。
6323:2011/01/22(土) 15:43:00 ID:2GBnm7Kf
度々すみません。

バイクのタックルでPushActorAwayされたActorが倒れている時に
近くでバーンアウトすると必殺攻撃を出せるようにしたのですが、
倒れている状態を判定する関数が見つからず、GetPosを利用した
複雑なものになってしまいした。そういった関数ってないですよね??
「GetKnockedState != 0」(ノックダウン・アウト)では判定できませんでした。

移動量の判定は以遠教えて頂いた「dx = Target.GetPos X - x」を使っています。
もしも「IsActorDown」みたいな関数があればもっとシンプルになると思い
書き込みさせていただきました。無ければ「無い」だけの回答で大丈夫です!

倒れている時に串刺し攻撃ができるDR5のスクリプトを少し見てみたのですが、
キックとかで相手が倒れた場合に、独自フラグを入れているだけのようでした。

以下はチラシの裏的な書き込みで申し訳ないですが、流れを書いてみます。

1)Targetを轢いてPushActorAwayして飛ばす
2)TargetのRefを記憶して、そこから0.3秒はReturn。
3)GetPosでTargetの動きが小さくなったら倒れていると見なし必殺フラグオン
4)その後、前フレームより10倍の移動量ならば立ち上がったと見なしフラグオフ

■攻撃の手順
1)バーンアウトすると専用TriggerZoneを後輪近くに展開
2)TargetにOnTrigger&&フラグオンなら、バイクを相手先に1回だけSetPosしてダメージ

「IsInAir」や「GetPos Z」を使えるかと思ったのですが、PushActorAwayって
高さは実は変わってないんですね…。XY座標にしか変化がないみたいです。
633名無しさんの野望:2011/01/22(土) 17:40:15 ID:SXCpN4Cg
>>632
>倒れている状態を判定する関数が見つからず、GetPosを利用した
>複雑なものになってしまいした。そういった関数ってないですよね??

あまりちゃんと検証出来てないけど恐らくこれでいけるんじゃないですかね
そのNPCがref:npcだとして、

if ( npc.GetCurrentAiProcedure == 39 )
;;; 倒れている、又は起き上がり中 or その後のAI再評価待ち
if ( npc.isAnimPlaying == 0 )
;;; 倒れている状態
;;; 恐らく目的の状態
Else
;;; 起き上がりアニメ中 or 復帰後の棒立ち状態
;;; 処理をどうするかはご自由に
EndIf
Else
;;; 倒れていない
EndIf

http://cs.elderscrolls.com/constwiki/index.php/GetCurrentAIProcedure
GetCurrentAIProcedure
状態39は「MOVEMENT_BLOCKED_WAIT」
少なくとも突き飛ばした直後に状態39になるのは確か
但し、起き上がった後も39の状態が長いのと、他の要因で39になる可能性は多分にあるので
利用する状況は限定されるかも、ですが
6343:2011/01/22(土) 18:45:08 ID:2GBnm7Kf
>>633
ありがとうございます!

「GetCurrentAiProcedure」を試してみたのですが、自分の場合、突き飛ばした時に
「StartCombat」させてしまっているので、「13 = COMBAT」が優先されてしまうようです。
突き飛ばした時に「StartCombat」、その後バーンアウトで攻撃する際に先に
「StopCombat」してから「GetCurrentAiProcedure」した場合は「7 = WANDER 」の
ような通常時のAIパッケージになってしまいました。

大変使い勝手の優れた関数ですので、違う局面では是非活用したいと思います。
ありがとうございました。
635名無しさんの野望:2011/01/22(土) 21:56:05 ID:SXCpN4Cg
>>634
じゃあこれだとどうかな?というかこちらの方がスマートだったですね

if ( npc.AnimPathIncludes "_male" )
;;; 正常状態
;;; 何も処理しない
else
;;; たぶんラグドール状態(PushActorAwayの他、modav2 fatigue -1000のような気絶状態)
;;; 轢くなり跳ね飛ばすなり自由に
Endif
636名無しさんの野望:2011/01/22(土) 22:42:02 ID:PS/N9ZjT
Skeleton,nifについて質問なのでが
一部モンスターの体形を変更しようと思い
Skeleton.nif内の部分Scaleを弄って
CS内のクリーチャーのプレビューでは変形しているのを確認したのですが
ゲーム内では変形を確認できません

これはSkeleton.nif以外の何かを変えないと反映できないのでしょか?

以前にキャラクターの手足などの比率を変化させるMODがあったと思うので
システム上できないことは無いのではないかと考えているのですがどうでしょうか?
6373:2011/01/22(土) 22:57:17 ID:2GBnm7Kf
>>635
「AnimPathIncludes」を使って倒れている状態を判定できました!

ただ倒れていない普通の状態の時でも、たまに結果として「0」と出てしまうことが
あるので、PushActorAwayしたNPCのRefを記憶してそのNPCにのみ使えるようにしました。

それと「AnimPathIncludes "_male"」だと人間の判定しかできないので、
「AnimPathIncludes "IdleAnims"」としたところ全ての生物で正常に動作するようです。

GetPosを使った移動量判定はやはり誤判定が付き物だったし処理量も問題でしたが、
非常にシンプルに、しかも正確な判定ができるようになりました!!
本当にありがとうございました!!

バーンアウトスペシャルアタック、非常に強力な攻撃手段になりました。
自分なんかがMODを作れるのはこのスレの住人様方のおかげです!
毎度のことながら、本当に頭が上がりませんm(_ _)m
638名無しさんの野望:2011/01/23(日) 01:41:59 ID:/6yPjgWk
nifscopeを立ち上げようとすると強制終了してしまいます。
どうしたらいいでしょうか?
OSはvista32ビットです
639636:2011/01/23(日) 02:00:02 ID:qffSnV33
>>636ですが、やりたい事は下記SSのように
巨人型クリーチャーのプロポーションを整えてあげたいんです

http://shy.jsphr.net//upload/img/ups22382.jpg

この例では主にWAC登場モンスターですが
スケルトンの修正だけで住むならこんなに楽な事はないんですよね
640名無しさんの野望:2011/01/23(日) 09:49:19 ID:o9r/iKd2
>>639
ssスレかこっちか、どちらかに絞りなよ
641名無しさんの野望:2011/01/23(日) 10:25:36 ID:d2nFVKt8
>>638
バージョン変えてみてだめならちょっとそのPCでは無理なのかも
環境は人それぞれなのでフリーソフトの導入に関するトラブルは結局自分で試行錯誤するしか無いです
お役に立てず申し訳ない
642名無しさんの野望:2011/01/23(日) 10:28:45 ID:d2nFVKt8
>>639
新しいセーブデータじゃないと反映されないとか?
643名無しさんの野望:2011/01/23(日) 12:04:16 ID:NMInYnQJ
>>637
横からですが。解決したみたいで。でも少し気になったのでいいですか。

PushActorAwayで宙に浮いている時もラグドール状態なのですが、それって特に
問題ないんでしょうか。

最初のお話の雰囲気だと、後輪に関係する技(多分轢き潰すとか?)なので、同じ
ラグドール状態であっても宙に浮いている時は技は無効で、「地面に接して」倒れて
いる時にだけ有効にしたい、その判定方法は?、みたいに受け取れたのですが。

そういう細かな話ではなく、単にPushActorAwayのラグドール状態はGetKnockedState
では検出出来ないから他に方法は無いのか、という事だったのなら別にいいのですが。
また実際の操作感上も恐らく細かく判定してもあまり変わらない気もしますし。

その辺何をどの程度問題にしているかが少し謎だったのと、最終的に目的とする動作
次第で話は多分全く変わって来るので少し気になりました。

現状で問題無いのなら別に全然OKです。
644名無しさんの野望:2011/01/23(日) 12:05:57 ID:NMInYnQJ
>>639
Skeletonの各ボーンのScaleって、ゲーム実行時にその時再生されているkfにその
ボーンのScale値(例えば1.0とか)が含まれているとそちらが適用されます。

なのでSkeleton.nifの既存のボーンのScaleを変えてもゲーム上では反映されて
いない様に見えたりします。
(CSでHealthを0にして死体の状態で配置するとゲーム時には一切kfアニメが再生され
ないので変更が反映されたりします)

以前出たNPC体各部の大きさを変えるSkeletonは、独自のボーンを挿入してその
Scale/Translationを変える事で再生されるkfの影響を受けずに大きさや位置の
変更を有効にしています。

クリーチャーも多分同様な方法で。
645名無しさんの野望:2011/01/23(日) 12:27:17 ID:qffSnV33
>>644
ありがとうございます!
おお〜そうだったんですか
なるほど・・

って独自ボーン挿入ですか・・
いきなり難易度上がっちゃったなぁ・・
それってNifSkope上での操作で可能ですか?
6463:2011/01/23(日) 12:40:07 ID:bxXEyxKg
>>643
はい、厳密な判定という面ではまさにおっしゃる通りです!

「AnimPathIncludes」を使った場合、PushActorAwayして吹き飛ばされた瞬間から
転がって立ち上がろうとする瞬間まで「0」を返します。倒れている時だけじゃないです。

GetPosを使った判定法よりは遥かに良かったのでこちらを採用させていただいて
解決はしましたが、何にもしていない通常時にも時たま「0」を返してしまうということで
立っているNPCの周りでバーンアウトしていると、いきなりNPCが巻き込まれて死んでしまう
事態が起こるので、突き飛ばしたNPCのRefを記憶してその1人だけに適用させています。

もしも「倒れている状態を判定する方法」が別にあるのならですが、そちらの方がより
完成度が高まって凄い良いと思います。Refを記録する必要がなくなり、複数の対象に
同時実行できますし。
647名無しさんの野望:2011/01/23(日) 14:03:07 ID:SbhR/zPM
>>646
>何にもしていない通常時にも時たま「0」を返してしまうということで

それは判定をAnimPathIncludes "_male"からAnimPathIncludes "idleanims"に変えたからだと予想してます。
人間の場合普通のスケルトン"_male"の下にデフォルトのモーションと"specialanims"があるので
無差別にやるのだと"idleanims"だと誤判定だらけになると思います。
こんな感じです
meshes/characters/_male
├移動操作等のモーション
├idleanims
│└ポーズMODなどが使うSpecialIdle用
└specialanims
 └特別な移動操作用
(例えば、棒立ちだと通常は_male\idle.kfなどが再生されidleanimsではマッチしません。)

最初 _male をお勧めしたのは人間だけを対象としていると思ったからで、
生物全般に適用したいならAnimPathIncludes "meshes"か、チェックを2回に分けて
AnimPathIncludes "creature"とAnimPathIncludes "character"など両方評価するのがいいです。
コンソールからtdtとsdt 1を撃ち込みNPCの再生中のモーションファイル名を見れば理解が深まるかと思います。

あと、後輪で轢く?跳ね飛ばす?感じのものであるなら(ちょっとグロいですね)、
ラグドール状態かつ対象Actorがプレイヤーの近傍幾つ以内に居て、角度が-75〜-105以内にいるなら、とかになる感じですかね。
648名無しさんの野望:2011/01/23(日) 14:23:33 ID:SbhR/zPM
スミマセン。なんか647はところどころ日本語がおかしいですね。
ごめんなさい。
6493:2011/01/23(日) 15:32:59 ID:bxXEyxKg
>>647
うーん、残念ながら「_male」でも「IdleAnims」でも「meshes」でも平時で
たまに、戦闘状態においては頻繁に「0」を返してしまうようです。
一応自分でも理屈は理解しているつもりなのですが、もしかしたら
何らかのMODが悪さをしているのかもしれません。

現状、PushActorAwayされて確実に倒れているはずのターゲットのRefを
記録しておくしかないみたいです。

この特殊攻撃は、多分ご想像されているものより相当にしょぼいと思いますorz
単純にターゲットの近くに1回だけSetPosで移動させて、フレーム単位で
高めのダメージを入れ続けているだけです。血が出るエフェクトとか、
断末魔の叫びをあげるとか、そういった演出はないです。。。

一度トラップオブジェを「Disable→MoveTo→Enable」で呼び寄せてみたのですが、
なぜか一度MoveToして召喚されると、以降動かなくなってしまって諦めました。

あと、コリジョンの関係で倒れた相手に近づく・重なるというのが多少困難なので、
TriggerZoneを大きくして発動条件をかなり緩くしています。
強力ですけど、余興みたいな存在となってます。
650名無しさんの野望:2011/01/23(日) 15:34:12 ID:qffSnV33
>>644
新しいボーン(NiNode)の挿入についてですが
該当箇所に合わせてInsert>Block>NiNode、NiTransformInterpolator
としてもScene Root直下に置かれてしまうのですがどのような操作で
親子関係を繋ぐことができるのでしょうか?
かなり基本的な操作のことですみません・・
6513:2011/01/23(日) 15:48:39 ID:bxXEyxKg
>>650
多分こんな感じでできるんじゃないでしょうか??

1)親にしたいNiNode上で右クリック「Block→Insert→NiNode」
2)親のNiNodeの中の「Num Children」を1つ増やす
3)すぐ下の「Children」上で右クリック「Array→Update」
4)増えた空き枠に、新規作成したNiNodeの番号を登録

多分これで親子関係が成立するかと思います。
652名無しさんの野望:2011/01/23(日) 17:26:24 ID:SbhR/zPM
>>649
ありゃぁ、そうですか。頻繁に起きるんだとすると手段としてちょっとイマイチかもしれないですね。
逆に検証でお手間取らせたようで申し訳なかったです。
6533:2011/01/23(日) 18:47:50 ID:bxXEyxKg
>>652
あ、いえいえ、理論上はそれでいけるはずでしたし、1つ経験も増えたということで
全然問題ないですよ。でもある意味これは怖いことかもしれません。
もしも自分の環境で問題が出なくて、他の環境では致命的なバグが出るとすると…。
とにかくありがとうございました!
654名無しさんの野望:2011/01/23(日) 21:26:11 ID:qffSnV33
>>651
ありがとうございます
とりあえず試行錯誤中ですが
ゲーム内でミノタウロスの頭を小さく出来る事は確認しました
死後でも変化は維持されるようです
当初の目論見は必要な分のScle用Boneの挿入で
なんとかなりそうな感じです
655名無しさんの野望:2011/01/24(月) 02:33:46 ID:xbPmyaKi
scriptについて初歩的な質問です。

NextRef / GetFirstRef で NPCを検出する場合に、例えば
GetIsSex male == 1
としただけで、プレイヤーとの距離を指定しない場合はどういう
処理になるんでしょうか?そのcell内のNPCを全員検出したりす
るんでしょうか?
656名無しさんの野望:2011/01/24(月) 19:22:52 ID:85teRutQ
>>655
以下のように書いた場合かな?
そのセルのNPC全員を検出して、そのうち男だけに処理ということになりますね

set NPCref to GetFirstRef 35

while(NPCref)

 if(NPCref.GetIsSex male == 1)
   ;何か処理
 endif

 set NPCref to GetNextRef
loop
657655:2011/01/24(月) 22:51:24 ID:xbPmyaKi
>>656
ということはプレイヤーとの距離などで対象を絞ったほうが
当然負荷は軽くなるということですね。ありがとうございました。
658名無しさんの野望:2011/01/25(火) 05:02:56 ID:dwapuZKh
帝都の港湾地区のあばら屋に
カジートのNPCを置いたのですが
グラフィックが変になってしまいます…。
どうすればいいでしょうか?

http://www.rupan.net/uploader/download/1295898800.bmp
659名無しさんの野望:2011/01/25(火) 05:18:03 ID:U6iXq8ag
NPCを作成するとき人種族から編集した?
もしそうでSkeletonがそのままなら、Skeleton_beastに変えると直るかも
660名無しさんの野望:2011/01/25(火) 06:15:44 ID:dwapuZKh
>>659
ありがとうございました。
661名無しさんの野望:2011/01/25(火) 07:22:39 ID:dwapuZKh
nifを変えようとしましたが
skeletonBeast.nifが見つかりません。
どこにファイルがあるのでしょうか?
662名無しさんの野望:2011/01/25(火) 08:08:16 ID:7D2ddMkI
オブリのデータフォルダーにあるOblivion-Meshes.bsaというファイルにひとまとめになってます。
bsaはオブリのデフォのデータが収納された圧縮ファイルで通常はこちらを参照します。
OBMM使って
Utilities→BSA Browser→Open→Oblivion-Meshes.bsa
Skeletonbeast.nifを選択→ExtractしてSave
んでコピーしたnifをオブリフォルダ内でData\Meshes\characters\_maleの階層に置いて
CSのキャラデータ編集で指定してください。
セーブしちゃえば、あとでコピーしたnifは取り除いても元々あったbsaファイルを見に行ってくれるはず。
663名無しさんの野望:2011/01/25(火) 10:05:38 ID:dwapuZKh
>>662
出来ました!ありがとうございました!
664名無しさんの野望:2011/01/25(火) 15:47:49 ID:LJPtVz20
>>646
遅レスですが。
ラグドール状態の判定は「IsAnimPlaying」で行けると思います。
何が起因かの判定も必要ならGetKnockedStateやHasMagicEffectの併せ技で多分。
TrapオブジェはDisable→MoveTo→Enableで移動可能です。Trapはラグドール状態でも
有効で、「一回だけ/継続して」有効、みたいな指定もあります。

で、PushActorAwayで特に「地面の上に」倒れている状態だけを検出する話ですが、
直接の検出って多分無理です。

システム的には起き上がりアニメかIdleが始まった時が地面に倒れている(倒れきって
大体静止した)時なのですが、でも多分それではマズいんですよね。

そうすると、押す/押される側の位置関係と押す強度から滞空時間を予測、みたいな
近似的な方法しか無いかもです。

簡易的には例えば、Pushする時にクエ変数にその強度の値を格納、アイテムをAddして
アイテム側のOnAddでその強度を取得、その値に応じた時間で自分をRemoveMe、みたい
にすればそのアイテムの有無で空中かどうかの判定はある程度は可能かもです。

または全然別な考え方として、その判定が不要になる様にその攻撃動作自体を再検討
する、という方向も。
そのバーンアウトすると相手位置にSetPos(ワープ?)する、という動作故に話が
ややこしくなっている雰囲気もありそうな気がするので。

もしその攻撃の主眼が相手位置にワープする事ではなく、後輪で倒れた相手を轢く事
の方なら他にも持って行き方はあるかもです。
6653:2011/01/25(火) 19:35:48 ID:4exXmi+B
>>664
的確な推察、ご助言ありがとうございます!
「IsAnimPlaying」で判定したところ、通常時に0を返すことはなくなり
ふっ飛ばして倒れている間だけを判定できるようになりました。

Trapオブジェの移動は、ヴァニラのTrapから流用したスクリプトの一部を
不要と思って安易に削除したのが問題だったようで、そのまま使ったら動きました。
思ったほどは派手に血が出ることはないみたいですが使いたいと思います。

倒れている状態の予測法を考えていただきありがとうございます。
大変ありがたいのですが、どうやら「IsAnimPlaying」でラグドール状態を
しっかり判定できるようになったので大丈夫そうです。

またPushActorAwayの強度は押す側のSpeedで変化するのですが、
ここから滞空時間を割り出すのはなかなか大変そうなのと、
保険用の処理を入れる必要もあることなどから、「IsAnimPlaying」
の使用だけに留まらせていただきたいと思います。

あとSetPosで一度だけ移動するというのはほとんど演出的なものです。
コリジョンの接触と操作法からプレイヤーが自力で後輪近くに敵を捉える
ことが非常に困難なので、広いTriggerZoneを展開してそれを使ってます。

凄いやる気があれば、敵と相手を強制的にSetPosして位置を合わせ、
専用SpecialIdleを使って必殺モーションなんかの演出もできるかもしれませんが、
多分そこまで求められてないし作るのも大変なので、1回だけのSetPosにしてます。
666名無しさんの野望:2011/01/25(火) 21:54:39 ID:DprQnyRJ
質問です。初歩的な質問・・・だと思います。
例えばプレイヤーがアミュレットのスロットを使用するもので、主に首に装備するアミュレット、ネックレス、スカーフ、マフラーなど
を装備している時に発動させるスクリプトの場合

player.GetEquippedObjyect 8

は分かるのですがこれだとそれ以外、首に装備するしない関係無しにアミュレットのスロットを使う装備全てに影響与えますよね。
これを上記のアミュレット、ネックレス、スカーフ、マフラーの類のみを検出したいのです。
数が少ない場合はそのものずばりのIDでいいんですが、エンチャント付きだとかを含めると数が数十に及ぶ場合、1つずつIDを
指定していくのが大変なのでこれをまとめて検出したいと思っています。○○NamesとかName系かID系、pass系のコマンドだと
は思うのですがいまいち使い方が分かりませんでした・・・よろしくお願いします。
667名無しさんの野望:2011/01/26(水) 14:13:57 ID:IumPY2KS
>>666
ref Amulet
set Amulet to Player.GetEquippedObject 8
If (Amulet.CompareName "Necklace" || Amulet.CompareName "Scarf")
;装備しているときに行う処理
EndIf

一応上のような判定でできそうな感じはしますが、「CompareName」での判定を
どうするかが難しそうですね…。

あとは「発動させるスクリプト」というのがどういうのかわからないのですが、
もしも常時発動型みたいのだったら、まずクエストか何かのスクリプトでプレイヤーの
装備変更を監視して、該当装備に変更されたら実行間隔を0.01にしたクエストをStartQuestして
それのクエストスクリプトで実行させるというやり方が考えられるかもしれません。
装備した瞬間に一度だけ発動だったらこんなのは必要ないですが…。

大したアドバイスできなくて申し訳ないのですが、何か使える部分があれば…。
668名無しさんの野望:2011/01/26(水) 19:41:32 ID:zSgBrYHH
>>667
EventHandlerにOnActorEquipがあるので装備変更検出はそれで
そのあと常時何かをさせたいならそのイベントをトリガにしてAbilityとしてScriptEffectを行わせるのが容易ですかね
ちなみにCompareNameだと日本語化してるかしてないか程度で影響を受けるし
見た目同じでも名前がちょっと違うだけで影響受けるのでどうせ名称で比較するなら
私ならそのアミュレットのNIFのファイルパスでチェックします
669名無しさんの野望:2011/01/26(水) 23:13:40 ID:DiacUX2m
>>667
>>668

着脱の前後だけ発動させようと思ってます。
たしかに名前だと日本語化のものとかもあるのでNIFのファイルパスで行こうと思います。
ありがとうございました。
670名無しさんの野望:2011/01/27(木) 03:03:28 ID:EHfSiebO
blenderやnifskope関係の質問です

既存の人間用のheadメッシュにblenderで手を加えたいのですが
一度blenderで編集すると
ボーンがおかしくなってしまったり、高さが狂ってしまったりして
その後まともにゲームに適用できません

いじる前に112.4410となっている高さなどを0にし、
いじった後に戻したり、いじった後にobjにして読み込み
元のhead.nifのファイルでモデル指定のみ変更するといった手段をとってみましたが
それでも顔が崩れてしまいます
どのような手順を踏むべきなのかを教えていだけると嬉しいです
671名無しさんの野望:2011/01/27(木) 03:05:52 ID:EHfSiebO
連レスすみません
egmが合わなくなっているのかとも思いましたが
その場合、egmの作成について参考になるページなどがありましたら
検索のヒントをいただければと
髪のegmを作成するソフトはtesnにあるようなのですが、、、
672名無しさんの野望:2011/01/27(木) 03:11:48 ID:EHfSiebO
あ、とな氏のmemoが見つかったので
ひとまず質問を停止させていただいて、試してきます
最後質問する際はお願いします、スレ汚しすません
673名無しさんの野望:2011/01/27(木) 03:56:25 ID:EHfSiebO
やっぱり駄目でした
http://shy.jsphr.net/upload/img/ups22503.jpg
のように顔が崩れてしまいます
できましたらお願いします

いじっている元は、オリジナルのrenではなく
MODのアヒル口メッシュというものなのです
674名無しさんの野望:2011/01/27(木) 07:18:25 ID:hH1TygFm
一度blenderで出力したheadメッシュはダメだったような…
renなら多分崩壊しないと思う
675名無しさんの野望:2011/01/27(木) 19:43:38 ID:tTZRkgZU
>>673
NifScriptのVerは?
それと頂点の追加や削除をしてたりします?
676名無しさんの野望:2011/01/27(木) 20:21:38 ID:tTZRkgZU
他スレの話ですが。
Skeletonにボーンを挿入して体各部の位置大きさを変える話ですけど、手に持った
武器について同じ事をするなら「Weapon」の前に同様にNiNodeを挿入すれば多分。

武器で問題が出る、というのは武器nif側にノードを仕込んで操作しようとした場合
だったと思います。
677名無しさんの野望:2011/01/27(木) 20:24:37 ID:6PViXgNc
持ち手がずれる気がするんだけど
やってみないとわからんな…
678名無しさんの野望:2011/01/27(木) 20:37:44 ID:tTZRkgZU
Translationの調整でいけるんじゃないですかね。
位置/回転/倍率全部有効なのでその辺の調整は多分いくらでも。
679名無しさんの野望:2011/01/28(金) 00:40:58 ID:U1cm7uoA
これの話でしたら武器のズレは無いですよ
http://shy.jsphr.net//upload/img/ups22531.jpg
1H、2Hで色々試してみました
手の長さ(肘先の長さも)も変えています
武器の大きさは変えたくなかったのでHandのスケールで調整はしてますが
計算はしてないのでだいたい同じ大きさって感じです

Skeleton.nifはStyleModifier v0.9付属のものを使用させて頂きました
まぁ直接スケールを弄ってしまってますが・・
6803:2011/01/28(金) 01:18:47 ID:mvtVTX6m
すみません、色々試してみてどうしても出来なくてほぼ諦めてるので、簡潔で
いいのでお答えを頂ければ幸いです。

「StartConversation」でAがBに話しかけるのですが、Bが何をやっても返答しません。
NPCが何があっても会話しない、というのは起こりえるのでしょうか??

流れとしては
・「StartConversation」でA(話し手)がB(聞き手)に近づき始める
・一定距離内(1000くらい?)で、最後のトピックのResult Scriptに設定したダミーメッセージの再生を確認
・AがBに一番最初の(Helloでない)トピックを話す
・Bは会話の苦手な困ったちゃんです。さぁ、果てのないお見合いが始まりました!

やり方はCS Wikiに書いてある通りにしています。
・セリフ毎に変数を1つずつ増やし、その値で順番に会話させる
・「Allow Repeated...」や「Run Immediately」などはWiki通り設定

試したもの。
・Conditionを甘くしたり厳しくしたり…GetIsIDやGetStageの有無など
・AI Package所持数を0に、最低1つは保つなど。「Skip Fallout Behavior」の有無
・自分で無音mp3を作って配置&「Edit Response」内の録音機能からwav作成・配置の両方
・会話の順番用の変数の有無(なくても、GetIsIDの違いで最小限機能するはず)
・AがBに話す最初のトピックを「Goodbye」に。そのResultスクリプトでB→Aへの
「StartConversation」を設定→Bは会話しに行かず、AI Packageの目的地を維持し続ける

Bが怪しい思うのですが、特別なことはしていない普通のNPCです。何が彼女を
封じているのでしょうか…?? NPC同士の会話は単に演出上やりたいだけなので、
なくても全然構わない心境です。なので、NPCが会話したがらないことがあるのか
どうかだけを知りたく、書き込みさせていただきました。よろしくお願いします。
681679:2011/01/28(金) 01:23:00 ID:U1cm7uoA
ああ・・確認してみたら武器の手前でScale変更すると
敵倒した時に武器の空中停止現象起きますね・・
HandでScale調整だと大丈夫みたいですが・・
わざと大きくしようとする場合なんかは問題になりそうですね
6823:2011/01/28(金) 01:25:06 ID:mvtVTX6m
少し補足です。
NPCはNPC同士の会話をしないだけで、PlayerによるActivateには普通通り反応、
殴ったりすれば怒りますし、押して位置を変えるとAI Packageの位置へ歩き始めます。

あともう1つ怪しいのが、「Edit Response」内で適当に録音した音声ファイルは再生されず。
録音時の音質はモノラルの最低品質でした。

参考にしたCS Wikiの該当ページはこちら。
http://cs.elderscrolls.com/constwiki/index.php/How_do_you_set_up_a_scripted_conversation_between_two_or_more_NPCs%3F
683名無しさんの野望:2011/01/28(金) 01:31:57 ID:vR8fxn4+
お教えありがとうございます

>>674
だとしたら、非常に残念ですが仕方がないですね……

>>675
nifskopeは1.0.12
blenderは2.47です
やはりもう少し新しいverの方がいいのでしょうかね
684名無しさんの野望:2011/01/28(金) 01:35:24 ID:6YtwS6De
>>681
関係ない話ですがWAC1.0bでゴブリンがその症状だったんですけど原因はそれですねw
685名無しさんの野望:2011/01/28(金) 02:07:03 ID:X02W/zG+
>>683補足です
頂点の削除などは行わず、ctrl+sで一部分を縮小しているだけです
できましたらお願いします
686679:2011/01/28(金) 02:08:58 ID:U1cm7uoA
>>684
ってことは人間だけでなくモンスでも起こるってことなんだ・・
687名無しさんの野望:2011/01/28(金) 03:34:57 ID:7VffDB4J
>>685

画像を見る限り、egmが新しくなったメッシュとあってない状態みたい
髪型でegm作るの忘れてそういう風になったことある
頭のegmも髪のヤツ作るので作れるような・・・
688名無しさんの野望:2011/01/28(金) 11:27:00 ID:yBJ8laeo
>>680
指定が適切なら普通に会話します。なんか同じ様な話が上にあった気が。

会話って指定類が非常に敏感で一箇所違うだけで全く動かなかったりします。
なのでその辺に嵌まると何をやっても動かない様に見える事も。

とりあえずまずそのアクターAにコンソールで「startconversation アクターB hello」
としてみて正常に世間話を始めるか確認を。
689名無しさんの野望:2011/01/28(金) 11:30:27 ID:yBJ8laeo
>>681
あー、空中静止しますね。これはマズい。

それって多分本来武器を手に持った時にリンクされるはずのHand位置のコリジョンが
別なノードを挿入する事で見つからなくなって妙な事になる、とかそんなんです。
恐らく。

その挿入したノードにHand同様RigidBodyの構造を付ければ空中静止は起きなくなる
とは思います。

でも単に普通のコリジョンだと、今度はそのノードがkfに影響されないが故に
例えば不死アクターが武器を手に持ったまま倒れた場合、物理演算の成り行きで変化
したConstraintの位置関係がそのまま保持されて立ち上がった時に武器が変な方向を
向いたまま、みたいな事態に。多分。

これってあちら立てればこちら立たず的なややこしい状況で解決策は現在ちょっと
不明です。
なので申し訳無い、>>676の件は保留で。また後で調べてみます。
690名無しさんの野望:2011/01/28(金) 11:36:09 ID:yBJ8laeo
>>683
「NifScript」のVerです。
BlenderでImport/Exportする時の指定画面の左上に出るヤツです。それを。
ついでにPyFFIのVerも。

その状態って多分頂点の順番とegmとの不整合なのですが、単にImport/Exportするだけ
で原則そうなると思います。
でも最近egmの読み込みがサポートされ始めてVerによってはその辺の状況が多分違う
かもなので。
691名無しさんの野望:2011/01/28(金) 12:44:47 ID:GmIpDTG9
BAG OF ALCHEMYの問題として
自動収納処理の際?に処理用のアイテムが盗む扱いになって店の中でとかで困るというのがありますが
これを修正しようと思ったんですがどうすればいいでしょうか。
検索してると個人で修正している人がいたみたいで、できるのかなと。

別な問題なんですがCSで開いてはみたんですが、
一切変更を加えていないのに保存しようとするとエラーが出て保存できないスクリプトがあります。
aaBagOfAlchemyがそうなんですがこれは何故でしょう?
他のMODでも保存できたりできなかったりというのが結構あります。
今回の場合のエラー内容は、28行目にBagってあるけどそんなコマンドみつからないよ、的な事でした。
6923:2011/01/28(金) 16:01:52 ID:mvtVTX6m
>>688
ありがとうございます。

おかしいのが、CSで設定した「参照用 Editor ID」(NPCをセルに置いて、それを
ダブルクリックして設定できるもの)をゲーム中にコンソールで指定して実行しても
「is not object」みたいなエラーが出て、リファレンスが使えず死んでいることです。
当然スクリプト内では何度も指定してますし、他の動きも問題ないのですが…。

実例が存在する確立された方法ですので、自分のケースは何かの相性が悪かったと考えて
すっぽり諦めようと思います。ありがとうございました。
693名無しさんの野望:2011/01/28(金) 18:49:50 ID:U1cm7uoA
>>679
>Skeleton.nifはStyleModifier v0.9付属のものを使用させて頂きました
についてなんですけが
何故だか判りませんがDR4のシールドバッシュを使用すると
体が段々大きくなるって現象が起こります・・
最初は比率を弄ったせいかな?と思ってましたが
数値を変えなくても起きます
DR4固有の問題かもしれません
他のVerでも起きるかは不明です
694名無しさんの野望:2011/01/28(金) 21:44:46 ID:U1cm7uoA
>>693ですが
どうもDR4のシールドバッシュに起因するのではなく
カウンターシールドモーションそのものに起因するようです
防御75以上で確率発生するシールドカウンターでも
同様の現象が発生していました
695名無しさんの野望:2011/01/28(金) 21:49:37 ID:U1cm7uoA
変ったScaleはPlayer.Setscleなどでは直せませんが
Loversの放心やRFの転びなど一旦ラグドール化が入ると
リセットされ元に戻るようです
696名無しさんの野望:2011/01/28(金) 23:32:31 ID:kSv3fJBq
>>692
>「is not object」みたいなエラーが出て、リファレンスが使えず死んでいることです。
>>498>>500-505

>>693-695
DR4は入れてないけど、カウンターシールド発生しても何も起こらないです
でも、その現象自体は興味深いかも。
モーションとかは、普通繰り返し再生しても前の効果は累積されないはずですが、
段々大きくなるなら前の効果が累積してるってことかもなので
・・・まあ、何に使うかとか言われてもとんと思いつかないんですがw
697名無しさんの野望:2011/01/28(金) 23:43:15 ID:U1cm7uoA
>>696
個人環境によるものなのかもしれませんね
ちなみに現象自体は必ず起きるものではなく
3〜4回かに一回大きさにして数%なので
かなり数をこなしてその他のNPCと比較して大きくなってるという感じです
バッシュ連打が判り易いです

現象が起きる瞬間、一瞬原点方向にメッシュが引っ張られ
ちょっと大きくなってまた元に戻る・・といった感じでした
6983:2011/01/29(土) 01:42:36 ID:58jErKEr
>>696
あ、なるほど。コンソールではFormIDを考慮しないといけなかったんですね。
コンソールでは8桁の16進数の英数字のみ使え、頭2桁がOBMM等で見れるespのロード順、
残り6桁がCSのオブジェクトウィンドウでマウスオーバーした時のID。
699名無しさんの野望:2011/01/29(土) 07:11:24 ID:+refl0lG
ご教示ありがとうございます

>>690
勘違いでお手を煩わせてしまい済みません
恥ずかしながらverの表示がよくわかりませんでしたので
とりあえず最新版を落としてきたので、時間ができたらまた試してみます

>>687
これまた勘違いかもしれませんが
The Conformulatorだとheadのtriファイルがあるのが前提だと思ってました
とりあえず調べてみます
お世話になります
700名無しさんの野望:2011/01/29(土) 10:35:55 ID:wwYzXUqp
>>699
NifScriptのVerって、Exportする時のボタンがいっぱい出る画面の左上の、
「Blender NIF Scripts X.X.X (running on 〜」の「X.X.X」の事です。

旧Verでも直せるかもですし、新VerならOKとも限らないのでVerを記して履歴に
なれば、という意味で確認しました。
701名無しさんの野望:2011/01/29(土) 10:56:09 ID:wwYzXUqp
>>698
コンソールでStartConversationする時の引数はCSでマウスオーバーして出る値では
ないですよ。

多分私が曖昧な書き方をしたのがいけなかったと思うのですが、

>コンソールで「startconversation アクターB hello」としてみて

この「アクターB」てのはアクターBのReferenceのFormIDの事です。
コンソールでそのNPCをクリックして上に出る値か、CSのRenderWindowで配置したその
NPCをWクリ、Reference→ReferenceEditorIDの欄右側の「(01001234)」みたいな値の
下6桁にそのespのロード順2桁を頭に付けた値です。

まずはバニラのNPC同士で会話させてコンソールからの指定方法自体の確認をして
みるのがいいかも。

で、もうやりとりの内容が厳密な用語用法を避けて通れない段階なので、ここで
FormID、EditorID、Reference、BaseObjectの意味の確認を。

http://cs.elderscrolls.com/constwiki/index.php/Modding_Terminology
702名無しさんの野望:2011/01/29(土) 11:24:38 ID:xryNFqCf
HTSCLの調理用ボウルのnifを自作のnifに差し替えたら
調理機能が働かなくなってしまったのですが、scriptの方もいじる必要があるのでしょうか?
703666:2011/01/29(土) 12:01:33 ID:5SFkjB/t
助言を元に色々と試したのですが結局検出してくれませんでした・・・どういうものを作ろうと思っていたかというと、プレイヤーが
Amuletスロットの眼鏡を装備した時に手でさわるアニメを再生しようとしました。questで装備を検出したらアビリティを追加して
ScriptEffectでpickidleを実行、装備した時だけでいいのでScriptEffectUpdateでアビリティを消去、という感じです。装備自身に
scriptを仕込む方法では簡単なのですが、他にも応用が利きそうだったのでquestscriptでやりたいなぁと。

scn zzzEquippedSpectaclesPlayerQuestScript

ref SpectaclesPC
short EquippedPC

Begin GameMode
set SpectaclesPC to player.GetEquippedObject 5
if (SpectaclesPC.ModelPathIncludes "Spectacles" || SpectaclesPC.ModelPathIncludes "glasses")
if EquippedPC == 0
player.addspell zzzEquippedPCAnims
set EquippedPC to 1
    printtoconsole "player Equipped Spectacles"
else
    printtoconsole "player Equipping Spectacles yet"
endif
 else
if EquippedPC == 1
set EquippedPC to 0
    printtoconsole "player Not Equipped Spectacles"
endif
 endif
end

printtoconsoleは確認用です。nifの名前や装備の名前、スロットは確認済みです。ModelPathIncludesの部分はCompareNameや
IconPathもやりましたがだめでした。根本的に○○Nameや○○pathの認識が間違っているのかなと思いますが、検索しても分か
りやす例が見つかりませんでした。EventHandlerのOnActorEquipも同じような感じでいけるんでしょうか?よろしくお願いします。
704668:2011/01/29(土) 13:04:14 ID:8ejFeSnC
>>703
拙作CCAOがほとんど同じ処理をやっているので踏み台としてはこれを眺めて頂くのがよいかもしれません。
このMODは装備している武器の変更をEventHandlerで検出して変更された武器の
Nifファイルパスを取得してパス内に特定文字が含まれていたら
武器の所有者に適切なSpecialAnimを有効にさせるというものです。
実装は別として動きの骨子はほとんど>>703の概要と変わらないと思います。

http://www.tesnexus.com/downloads/file.php?id=36261

文字列比較部分は zzCCAOFuncNifNameChecker の
 let sModelPath := GetModelPath wref
でwref(武器のObjectIDを入れた変数)のModelPathを取得して
一方マッチングさせたい文字列は
 let sType := ptr[weaponType][i]
で取ってきています。配列を使ってるのはMODの都合なだけなのでsTypeはString_Varならなんでもいいです。

その後、
 if ( sv_Find $sType sModelPath >= 0 )
でマッチしたかどうか検出してます。
 用法: sv_Find <マッチさせた文字列> <文字列全体>。返り値が0以上ならマッチしてます
上記のModelPathIncludesは使ったことが無いので分かりませんが期待値にそう大差はないものと思います。

ご参考まで、EventHandlerの利用を考えているなら
NPCにEventHandlerを付与しているのはzzCCAODistributerScriptのSetEventHandler文、
EventHandlerで呼び出されるのはzzCCAOFuncOnEquipEventHandlerScript
です。
705668:2011/01/29(土) 13:06:01 ID:8ejFeSnC
>>703
すみません、typoです。

> 用法: sv_Find <マッチさせたい文字列> <文字列全体>。返り値が0以上ならマッチしてます
706名無しさんの野望:2011/01/29(土) 13:18:39 ID:htCot+fO
>>703
>player.GetEquippedObject 5
SlotIDの5番はfootだと思うんだけど・・・

それはともかく、デバッグする時は正しく動作した時にログ出すだけじゃなく、
例えば SpectaclesPC.GetModelPath を毎回表示する、とかやると色々判りやすいと思う
ログが埋まるから確認したらコメントアウトなり前回と変わってたら表示とかその辺は適当に
707名無しさんの野望:2011/01/29(土) 15:35:33 ID:sZHcc9HM
>>691
aaBAUpdateWeightスクリプト内の"Foo.activate player"の前に
Foo.setownership
を追加すればBafooの所有権が自分に移るので
どこでバッグを操作してもBafooが盗んだアイテムにはならないよ

別の問題の方は、過去ログに
「messagebox内で改行があるので問題がある」ようなことが書いてあった
messageboxex "What do you want to do?%rBag Weight以下略"
みたいにOBSEのコマンド、messageboxexを使って、改行を"%r"で行うといいみたい
708名無しさんの野望:2011/01/29(土) 15:44:06 ID:0+9nIzpA
>>707
返答ありがとうございます。
早速やってみます。
7093:2011/01/29(土) 19:35:07 ID:58jErKEr
>>701
詳しい説明ありがとうございます。大体理解できたと思います。

BaseObject:種類、型、クラス。戦艦で例えるなら「アイオワ級ミズーリ」のアイオワに相当。
Reference:BaseObjectを実際にセルに配置した各オブジェクトへのアクセス。
EditorID:BaseObjectのCSで扱うための英数字の名称。基本的にCS内でのみ有効。
FormID:BaseObjectや実際にCellに置かれたオブジェクトの16進数8桁のID。コンソールでも有効。

問題になりえるものが1つあって、A(話し手)は新種族で既存種族の持つ通常のトピックを
持ちません。自作したConversationを実行させてるので影響がどれほどかはわかりませんが、
不確定要素です。
FormIDを使ってB(聞き手)からA(話し手)へHelloさせたところ、Bからの最初の一言で
会話は終了し、AからBへHelloする場合は「I HAVE NO TOPICS」なので会話しないようです。
Aは世間話用トピックを持たないのでこれは正しい動作です。

いずれにせよ、今回のケースではConversationしないということで諦めます。
ありがとうございました。
710名無しさんの野望:2011/01/30(日) 01:56:04 ID:hs/kvWOD
髪型作成関係ですが、ご存知の方がいたらご教示ください。
Blender2.49を使用しています。

髪テクスチャを書きながら、適宜髪Meshを調整…という作業をしているのですが、
先ほどBlenderからエクスポートしてゲーム上で確認したところ、
↓の画像のように表示がおかしくなっていました。

http://shy.jsphr.net/upload/img/ups22606.jpg

エクスポート前後の作業は、BlenderでのMesh編集自体は頂点の移動のみ、
エクスポートする直前にUser Preferences>Gameの設定を変えたり戻したりしたこと。
エクスポート後にNifSkopeでFace Nomals/Smooth Nomalsの設定、
NiVertexColorPropertyの追加とHasVertexColorsの設定後、Objデータのエクスポート。
The Conformulatorでegmの作成後、ゲームで確認という感じです。
711名無しさんの野望:2011/01/30(日) 03:25:54 ID:5rnS+8lT
>>710
_hhとか_hlとかのテクスチャーありますか
712名無しさんの野望:2011/01/30(日) 03:29:58 ID:5rnS+8lT
なければ適当な髪から持ってきてとりあえず試してみるか、メインテクスチャーリネームでもいいかな
あるいはメッシュが反転してるとか、その場合はblenderでflip nomals
713名無しさんの野望:2011/01/30(日) 04:58:36 ID:hs/kvWOD
>>711
ご返信ありがとうございます!
ご意見を参考にテクスチャの方を確認しましたら、
ノーマルマップをメインテクスチャで上書きしていました…。
ともあれ無事に解決しました。ありがとうございました。
714名無しさんの野望:2011/01/30(日) 09:24:01 ID:tvjFkkav
>>709
諦めるのはいいのですが、状況や動作しない原因ははっきりさせておいた方が。

まず、上のHelloさせて確認、というのはNPCのRef自体が「死んで」いるのでは?
という話だったので、普通のNPCという前提でそのRefが正常に機能しているかどうか
を確認してもらうのが目的でした。

Raceが自前(Playableでない)と言う事ならそのRaceなりNPC固有の「HELLO」を
あらかじめ仕込まない限りStartConversation Helloしても何も起きないです。
なのでHelloで確認する意味は全く無いです。

条件の後出しはなるべく無しの方向で。

で、Playableではなくて「I HAVE NO GREETING」なNPCであっても、そのNPC用に適切に
Topicを作ったのならStartConversationでそれを話しますし、後続のInfoの指定も
適切なら会話も続きます。その場合はRaceが自前かどうかは関係無いです。

と言う事で、動作しないのはそのケース固有の何か特殊で例外的な理由、と言うより
恐らく単に指定をなんか間違っていた可能性が極大な気が。
7153:2011/01/30(日) 11:26:46 ID:1bQSzjVN
>>714
よくわからないのですが、Conversationって同じクエスト内のTopic同士でしか反応しない
のでしょうか? これ自体は自作Conversationには関係のないことなのですが。

Genericでない自作クエストのConversationに設定したHelloトピックをAからB(既存種族)へ
StartConversationすると、Bは返答用トピックを持つにもかかわらず返答せず。
この場合、Aが新種族でも既存種族でも、自作クエストのものをHelloする限りBは返答しない。

HelloをB→Aにした場合、Aが既存種族の場合は普通に会話をする。
Aが新種族の場合はAが返答用トピックを持たないのでBからの一言で会話終了。

それで、試しにAを既存種族に戻して同様に自作Conversationをさせてみましたが、
これでもなぜか最初のAからの一言でお見合いが始まります。
となると怪しいのはやはりConversationの設定だろうということになると思うので、
Conversationの設定画像を貼ってみます。

■一言目の設定
http://moto4life.web.fc2.com/material/a1.png
■二言目以降の設定
http://moto4life.web.fc2.com/material/a2.png

自分が見る限りこれで動くはずだと思うのですが…。
716名無しさんの野望:2011/01/30(日) 13:42:01 ID:tvjFkkav
>>715
まず、「HELLO」の追加とそこからの会話開始の話は今は置いといて下さい。
単独Topicでの会話がまだ動かないのにそちらに話を広げると混乱するので。

SSを見る限りではその順番変数の判定を「==」にし、ゲームでその値を「1」にして
クエのStageを20に、「A1DCNorris」のRefをクリックして、

startconversation <A1DCQNLadyのRefのFormID> A1DCQNCnv01a

とすれば少なくとも最初2つのセリフは出ると思うのですが。音声が無い場合は
表示時間が短くて分かり難いかもです。

そうしたけど動かなかった、て事でしょうか?
717名無しさんの野望:2011/01/30(日) 14:43:22 ID:tvjFkkav
Options→GamePlayのGeneralSubtitlesはONになってますよね。念の為。
7183:2011/01/30(日) 15:46:24 ID:1bQSzjVN
>>716-717
GeneralSubtitlesはONで字幕は出る仕様になっています。

どうやってもできないようです。少し設定を変えてみても相変わらずダメでした。
スクリプトでAからBにこのConversationをStartConversationさせているのですが、
これまでは会話の最後で会話用変数を0にリセットしていました。つまり再び
一番最初の会話のConditionを満たし、どうやらそれで一言目だけ実行されていたようです。

会話の最後で変数をリセットせずに+1すると、今度はStartConversationさせているのに
全く話さなく(字幕が出なく)なりました。会話が可能な距離でないのに、会話は一瞬で終了し
WanderのAIパッケージに従って彷徨い始めます。スクリプトでもコンソールからでも同様です。

また当初はStartConversationでなく、FindのAIパッケージでAからBにActivateさせて
Helloトピックから始めさせていたのですが、こちらもConversation用トピックにLinkせずに
失敗していました。万策尽きています。
719名無しさんの野望:2011/01/30(日) 16:08:59 ID:tvjFkkav
>>718
その順番変数がセリフ表示前に数が既に増えているのは問題無いです。
「RunImmediately」にチェックが入っているからそうなる訳で。セリフ自体はキューに
入っている(多分)ので後から順に再生されます。
バニラの会話もそうなってますし。

なので順番変数の事は一旦置いといて。

三番目のInfoがどうなっているかも見せてもらえます?

あとスクリプトではなくコンソールで確実に>>716の通りにして確認したんですよね?
7203:2011/01/30(日) 17:09:04 ID:1bQSzjVN
>>716-717
はい、確実にコンソールに打って確認しています。順番変数も0にリセットしています。

どうぞ。
http://moto4life.web.fc2.com/material/a1.png
http://moto4life.web.fc2.com/material/a2.png
http://moto4life.web.fc2.com/material/a3.png

ResultScriptの1行目が「;set A1DCQDialog.Cnv to 0」となっていますが、
これが当初の設定です。こちらの時は一言目だけが再生されます。
2行目の「set A1DCQDialog.Cnv to A1DCQDialog.Cnv +1」にすると会話は全く
発生しません。会話可能な距離まで近づき、一瞬立ち止まっただけで終了します。

3行目の「DCQNLadyREF.AddScriptPackage A1DCQNLadyAIWander」は、
BにWanderのAIパッケージを加えているだけで、有無で変化はありませんでした。

なるほど、キューに入るというのは初耳でした。
QuestのトピックのResultScript内で「SetStage」でステージを進めて、そのトピックの
コンディションから外れてしまうと、ResultScriptだけが実行されてInfoの会話が再生
されなかったので、例えば
・現在のステージ:15
・ResultScriptでSetStageする値:20
だったら、そのトピックのConditionは「== 15」じゃなくて「<= 20」にして
凌いでいたのですが、何か自分の環境はおかしいのかもしれません。
「RunImmediately」にはチェックを入れていないのにです。
話が激しくズレて申し訳ありません。
721名無しさんの野望:2011/01/30(日) 17:36:08 ID:tvjFkkav
>>720
順番変数に必要な初期値はこの場合「0」でなく「1」です。
「<=」を全部「==」にしてValueは変えてないですよね?
順番変数に「1」を入れ、も一度>>716の通りにやってみてもらえます?
722名無しさんの野望:2011/01/30(日) 18:29:13 ID:tvjFkkav
先に説明してしまうと、それって多分Conditionsの評価とResultScriptの実行の
順番を取り違えているか、なにか勘違いをしていた気が。

Conditionsの評価がまずあって、その結果が真だった場合にResultのScriptが
動きます。「RunImmediately」でも多分同じです。

なので順番変数の初期値が0なら最初のInfoの判定は「==0」であるべきで、その後
ResultScriptで+1され、二番目のInfoの判定は「==1」に。以降同様に。

バニラのMS29とかの実際の例をまずよく見てもらうと多分話が早かった気が。
でもMS29はInfoの並び順が逆で「==0」の判定が省略されているので微妙に分かり難い
かもですが。
7233:2011/01/30(日) 18:47:50 ID:1bQSzjVN
>>721-722
順番変数の初期値は間違ってました。会話が始まる前は「0」なので、一言目の
条件も「0」であるべきでした。これで一言目は出ましたが、相変わらずそこから
お見合いになってしまいます。
明らかに誤解を招く書き方ですみません、その画像の1枚目と2枚目は既出のもので
「<=」をを使っていたときのものです。3枚目にある通り現在は「==」を使っています。

TopicのConditionの件は私の環境では
・そのTopicが使われるかどうかはCondition次第
・だがそのResultScriptでConditionから外れる処理をした場合は
 ResultScriptのみが実行され、Infoは表示されない(会話が無言)
となります。MODか何かのせいでおかしいのかもしれません。

環境のせいでおかしな挙動をしているとすれば、不毛な作業につき合わせて
しまい申し訳ないです。
7243:2011/01/30(日) 18:50:08 ID:1bQSzjVN
>Infoは表示されない(会話が無言)
表現を間違えました。会話が起こりません。GoodByeとかは有効ですが、
何もセリフが出ずに一瞬で終了します。
725名無しさんの野望:2011/01/30(日) 19:12:41 ID:tvjFkkav
え、まだ動かないとな。

環境が原因、というのならそれはそれで大問題なので追求すべきな気も。

二番目のInfoは「==1」、三番目は「==2」に直しました?
そのNPCに対して自分で何か特殊な事をしていないのは確実なんですよね?
あと音声mp3とか。また最後のAddScriptPackageやRunImmediatelyとGoodbyeの
オプションを取ってみたり。

それか別espでまっさらな状態で一回純粋に会話動作だけを作ってみて、それでも
動かないならそれをUPすれば皆さん確認してくれると思います。
環境依存なのかはそれで多分はっきりする気が。

とにかく複雑化する方向ではなく、単純化する方向で確認を。
726名無しさんの野望:2011/01/30(日) 21:12:12 ID:znQkKnYp
727名無しさんの野望:2011/01/30(日) 21:32:01 ID:q3U0vQ3Z
>>726
FF関連は隣の国の違法なぶっこ抜き
それ以外は普通のあるんじゃない?

まぁどっちにしても激しくスレ違い
7283:2011/01/30(日) 21:57:10 ID:1bQSzjVN
>>725
新NPCを二人配置して、クエストを1つ新設、そこにConversationを1つ作っただけの
シンプルなespを新しく作り、それでコンソールから試してみましたが、同様に
一言目しか再生されず…。
おまけに、適当にinfoの中で「録音→保存」した音声も再生されません。

自分の環境で自分が作ったMODは上手く機能しないのかもしれません。
ヴァニラや他のMODをプレイしているときはそういった問題とは無縁でしたので…。
729名無しさんの野望:2011/01/30(日) 22:52:14 ID:tvjFkkav
>>728
そのespをUPしてもらえます?
別な環境で確認して原因を特定しないとこれ以上はなんとも。
サイズが大きいのなら音声は不要です。
7303:2011/01/30(日) 23:33:40 ID:1bQSzjVN
>>729
わざわざそこまでしていただくのは大変心苦しいですが、お言葉に甘えまして…。
http://moto4life.web.fc2.com/material/zzzconversationtest.zip

帝都西門前に二人の女性がいるので、武装している方の女性に話しかけてください。
会話の順番用の変数がリセットされ、少し説明します。
コンソールで打つ内容は「StartConversation xxxxxxxx A1QCnv01a」です。

音声がないと世間話を始めるみたいです。音声は入ってません。
お手数ですが、音声有りの挙動を見る場合はCSで適当に「録音ボタン→保存ボタン」で
作成した音声を使ってください。
7313:2011/01/30(日) 23:54:34 ID:1bQSzjVN
↑訂正
音声がないと世間話を始めると思いきや、再び試すとConversationの
一言目だけを話すようになったり…ウチの環境ちょっとヤバいかもしれません。
732名無しさんの野望:2011/01/31(月) 00:05:54 ID:v/tobO/F
>>730
クエA1Q→QuestDataの「Allow repeated conversation topics」がOFFになってます。
7333:2011/01/31(月) 00:14:22 ID:ew5imLzh
>>732
あ、失礼しました。アップしているファイルを修正しておきました。
それでもまだウチの環境では一言目しか話しません…。
また、元々のMODのほうのクエストはチェックされています。
734名無しさんの野望:2011/01/31(月) 00:32:18 ID:g29yB1YR
EDialogueとかで表情変えたのを一時的にじゃなくてずっと保っていられたら
顔作りの幅が広がって楽しそうだと思ったけどやっぱ無理なのかな
セーブ&ロードしてもそのままだったら面白そうだけど
735名無しさんの野望:2011/01/31(月) 00:47:44 ID:v/tobO/F
>>733
うちはその「Allow〜」をONにしたら#01から#04のセリフが順番にパッパッと出る様に
なりましたよ。

その「一言目しか話さない」という状況をはっきりイメージ出来る様になるべく詳しく
書いとくといいかもです。

例えば#01が出たらどのくらいで消えるとか、その後二人のNPCは見つめあったまま
固まるのか、PCの方を向くのか、なにかデフォの挨拶をするのかとか。

こういう場合って、どうやったらその症状になるかを色々試して原因を探したりする
ので、どれがその状態なのか判断出来る様に出来るだけ具体的に。
その状態に心当たりのある人もいるかもですし。
7363:2011/01/31(月) 01:51:21 ID:ew5imLzh
>>735
流れはこんな感じです。
1)Aがテクテク歩いてBに近づいていく
2)Aが会話の仕草をしながらセリフを8秒間続ける
3)8秒後セリフが消えてもAは延々と仕草をしている
4)Bはずっと黙ってじっと聞き入っている
5)何らかの外部環境の変化、介入が無い限り果てしなく無音の会話は続く。

それで、8秒間というのは「OBSE -Elys- Universal Silent Voice 0.93」
という、音声が存在しないInfoに8秒間の無音音声と口パクを設けるという
OBSEプラグインによるものなのですが、これが原因の可能性も考えれたので
外してみたところ、8秒間が2秒間ほどになっただけで他は全て同じ結果でした。

そもそも異常なのが、自分で適当に音声を「録音→保存」したInfoであっても、
このOBSEプラグインが有効で8秒間の無音口パクになってしまうことです。
Oblivionクリーンインストールが必要かもしれません。

でも別の視点に立つと、仮に自分がそれで正常になったとしても、他人が
プレイした際に会話が成立しない可能性もあるんですよね。
とりあえず会話はなしの方向でいきたいと考えています。
737名無しさんの野望:2011/01/31(月) 12:48:55 ID:v/tobO/F
>>736
そのプラグインはmp3ならそれなりに動くんじゃないですかね。
NPC音声にwavって元々使わないですし。
またそのプラグインをはずしても状況が同じなら特にこの件とは関係無い気も。

とりあえずバニラの会話が正常に動くか確認しては。

NewGameしてコンソールで「cow ICMarketDistrict 7 17」、「setstage MS29 20」
として夜11時過ぎまで待って店から出たThoronirの後を付いていけばAgamirとの
会話が起きると思います。

その会話も同様ならもう明らかにゲーム自体が正常に動作していない、と言う事だと
思います。
その不正な環境でさらに別な何かを検証しても結果は疑問ですし、MODを作るのも
危険な気が。

でもいきなり再インストールではつまらないので、MODを抜いたりiniを消したりして
どの段階で会話が動く様になるかをついでに調べると有用な例になるかもです。
7383:2011/01/31(月) 15:14:29 ID:ew5imLzh
>>737
ThoronirとAgamirの会話は正常に動作しました。全く問題なかったです。

MODかなと思い、Oblivion.esmとテスト用espのみアクティブにして開始したら
セーブデータのロードはもちろん、NewGameも不可能orz ローディング中に落ちます。
MODを使ってプレイしている以上仕方ないですが、検証には時間がかかりそうです。
739名無しさんの野望:2011/01/31(月) 18:23:50 ID:MLLZq+Vg
「The Elder Scrolls IV:OBLIVION Japanese modders forum」の「希望・要望」
http://oblivion.forum.jpmod.net/
http://oblivion.forum.jpmod.net/viewforum.php?f=13
740名無しさんの野望:2011/01/31(月) 22:48:01 ID:v/tobO/F
>>738
え、バニラは動いたとな。

となると動かない要因をバニラとその会話テストとで違う部分に絞り込めたり
しないですかね。Infoの構造、音声ファイルの状況、会話Idleの状態とか。

でも会話テストでStartConversationした時点で既に順番変数が「4」になっているの
ならInfoの構造自体は正常に動いている、と言う事ですし、

また音声ファイルが一切無い状態でも同様に動かないのであれば多分音声関係では
無いでしょうし。

その会話テストの二人のNPC同士でtartConversation Helloで問題無く会話が続くの
なら会話時のIdleAnimations等の何かでも無い気も。

その辺って多分確認済みですよね。
それ以外の確認可能な両者間で違う要素って何があるんでしょうね。
741名無しさんの野望:2011/02/01(火) 07:56:31 ID:bRVXl0mK
スクリプトのIf文についてお伺いしたいのですが
ref tmpr でref形式で変数が定義されていて

if tmpr
と書かれている場合ってどう動作するのでしょか?
if文は判定が真か偽かのどちらかで判定だと思うのですが
このような文の場合何を想定しているのでしょうか?

これはLoversで使用されているNudeFlag制御の部分なのですが

if Call xLoversCmnIsBodySizeEquip tmpr
この返り値は0〜3まであるのですが返り値が2や3の場合は
どう判定されるのでしょうか?

この部分がどう動いてるのか今ひとつ理解できません


;Upper
set tmpr to me.GetEquippedObject 2
 if tmpr
  if Call xLoversCmnIsBodySizeEquip tmpr
    if eval(nudeflag & 1)
     set nudeflag to nudeflag - 1
    endif
   endif
 endif
742名無しさんの野望:2011/02/01(火) 08:45:37 ID:lLFy3Jam
>>741
if文は条件式が数値や変数だった場合、0は偽、0以外は真で扱われる

if tmpr
tmprが空だったら偽、何か値が入ってたら真

if Call xLoversCmnIsBodySizeEquip tmpr
戻り値が0なら偽、それ以外なら真
743名無しさんの野望:2011/02/01(火) 08:57:10 ID:Mo3Jtrec
>>741
この場合のif tmpは、xLoversCmnIsBodySizeEquip tmprの結果、
リファレンスが取れていれば処理しなさいって意味
つまり、(関数の中身知らないからたぶんだけど)xLoversCmnIsBodySizeEquipは
装備箇所を指定して、そこに装備されてるもののREFを取ってきてるので、
装備されていれば処理しましょう。装備されてなければここはスルーしましょう
って処理なんだと思う

次のif Call xLoversCmnIsBodySizeEquip tmprの場合、0〜3が入るということですが
この場合、0以外なら処理しましょう、って意味になります
つまり、処理内容を決める(?)フラグの値0の場合はスルーするということになります
1以上の場合は中の処理で判別するよ、みたいな使い方ですね
744名無しさんの野望:2011/02/01(火) 10:35:14 ID:bRVXl0mK
>>742,743
ありがとうございます

なるほどそうだったんですか・・
1以外は全部偽じゃないかと思ってました
もう一度読みなおしてみます

745名無しさんの野望:2011/02/01(火) 15:07:07 ID:btDKg0WX
>>742-743
とても参考になりました。
今までただ「== 1」を省略するという意味で

If (tmp)
 ;処理内容
ElseIf (tmp == 2)
 ;処理内容
ElseIf (tmp == 3)
 ;処理内容
EndIf

とやってハマったことがあったのですが納得しました
「If tmp」と書くと、「tmpが0じゃないなら」という意味になるのですね。
勉強になりました。ありがとうございます。
746名無しさんの野望:2011/02/01(火) 15:48:34 ID:NwMX7DZd
そもそも、省略しても同じ処理になる場合は書くべきだよ。
可読性が格段に上がるんだからさ。

if文で省略されてるのは基本フラグ変数という意味を持たせて省略してる。
747名無しさんの野望:2011/02/02(水) 03:09:59 ID:v47ykZGY
プレイヤーキャラが死亡時に自動的に復活して。
その後イベントが起こるスクリプトを組んでいます。

しかし、死亡時に体が倒れてゆくのと一緒にカメラが下がって行くのですが。
この復活した後もカメラの位置がどうしてももとに戻らず。

復活を2度にしたり、位置を変えてみたりもしたのですが。
やはりどうしても死亡時にカメラが下がります。

時折成功するのが。
カメラが下がりだす前に復活を完了するパターンなのですが。
これは常にではなく、理由もわからないので再現もできません。

どうすれば復活後も正常なカメラ位置でを維持できるのでしょうか。

どうぞどなたかご教授下さい。
何卒宜しくお願い致します。
748747:2011/02/02(水) 09:01:50 ID:v47ykZGY
カメラが移動しないときは、どうも優先順位の高い関数を実行した場合みたいです。
普通にResurrectionを行っただけでは、ロード画面が開く寸前まで復活しませんが、前に優先順位の高い命令。
例えば、アビリティを覚えるなどを思ってくると、その後の関数も一緒に呼び出される様な感じかも知れない気がしてきました。
詳しく分かる方、いらっしゃいますでしょうか。
749名無しさんの野望:2011/02/02(水) 10:05:37 ID:SMVOJhNm
>>747
その目的とする動作ですけど、カメラが下がる事を抑止する事なのか、下がった
カメラ位置を元に戻す事なのか、どっちです?

PCが死亡後に即時Resurreすればカメラは下がらないです。
また一旦下がってしまったカメラ位置をゲーム中に復帰させる方法って無いかも
です。多分。

あとそのスクリプトの種類がObject、Quest、MagicEffectのうちどれか、もし
QuestScriptなら実行周期を変更しているか、デフォのままとか、その辺が死亡の
判定やResurrect実行のタイミングに関係します。

で、PCのResurrectって元々システム上はあくまでイリーガルな操作なので、それ
以外にも問題はたくさん起きると思います。まずここを。
特に「Using on Player」の項のリンク先を。

http://cs.elderscrolls.com/constwiki/index.php/Resurrect
750名無しさんの野望:2011/02/02(水) 12:06:51 ID:wpECm7Ea
>>747-748
役に立つかわかりませんが、wikiにコンパニオンにResurrectしてもらうという項目が。
http://wiki.oblivion.z49.org/?%E9%96%8B%E7%99%BA%E8%B3%87%E6%96%99%2F%E3%82%B3%E3%83%B3%E3%83%91%E3%83%8B%E3%82%AA%E3%83%B3%E6%94%B9%E9%80%A0%E6%89%8B%E5%BC%95%2F%E8%98%87%E7%94%9F%E6%A9%9F%E8%83%BD%E8%BF%BD%E5%8A%A0
きっと読んだ上で、またはこれらを知っての上でとは思うのですが…。

Resurrectは死亡後すぐに使う必要があるようで、さらに2回かける必要がある
とも書いてありますね。ただ、魔法効果が解除されたりと問題は多いかと…。
751名無しさんの野望:2011/02/02(水) 13:26:30 ID:SMVOJhNm
その記事の「キャラ飛び問題」は多分対策出来ますよ。他の問題の対策も多分。

でもPCのResurrectってあくまでイリーガルなので、それ自体が本当に必要かをまず
充分検討した方が良さそうな気も。
752747:2011/02/02(水) 19:02:55 ID:v47ykZGY
お返事本当に有難う御座います。

カメラを戻す方法も探していたんですが、やはり無理なんですね。
戻す方法は使わないのに踏ん切りつきました。

スクリプトは
if Gead == 1
 player.resurrction 0
とやっています。

実行周期の変更というのはどうやるのでしょうか。

クエストのプライマリーでしょうか・・・一応その部分は0に設定してあります。

以前、実行周期が5秒だと読んだ事はあるんですが。
それを1フレームごとに変更したり出来るのでしょうか。

しかし、おかしな挙動をすることも多いので。
プレイヤーキャラの復活を使わない方向も検討してみます。
753名無しさんの野望:2011/02/02(水) 19:21:00 ID:VpeBTmfM
Rosethorn Homeというmodをbashed pachに組み込みたいんですけど
タグは何をつければいいんでしょうか?
754名無しさんの野望:2011/02/02(水) 20:09:54 ID:wpECm7Ea
>>752
PCの死亡とResurrectの処理についてはわからないですが、
クエストの実行周期の変更でしたら、そのクエストにスクリプトを添付してその中で
「float fQuestDelayTime」と変数を宣言して、同スクリプト内か他のスクリプトから
その値を「0.001」のように細かくすれば、毎フレーム実行されるようになります。
毎フレームの監視はそれでできますよ。

一応、↓のページにも最後の方にも少し書いてあります。
http://life4oblivion.web.fc2.com/modmemo/questscript.html

でも不具合と不安定さを避けられないかもしれないので、最善はやはり復活を
使わないことかもしれないですね。
755747:2011/02/02(水) 20:44:06 ID:v47ykZGY
有難う御座いました。

float fQuestDelayTimeなんて言う便利なスクリプトがあったんですね。

これがあればあんな事やこんな事を実現できるかも。

でも、ヘルプに処理を見なおせとか警告文が有るとか。

しかし、プレイヤーのリザレクションはWIKIにもある場所移動とか怖いです。

あと、ロードした後など発動しないことも有るんですよね。

CTDも頻発しますし。

種族や星座の特殊効果解除に関しては、解除された様子がなかったので。
WIKIの文章を書かれた方が参考にしていらっしゃるDeath IncのMODを見たところ。
ディスペルの掛かるアビリティをプレイヤーに追加していたので、それが原因なのかなと思いました。

この関数は一つくらい解決できそうかなぁと思ったら、次の問題が出てきます。

本当におかしな挙動が多いです。

本格的に他の方法を探さないといけないかなと思っています。
756名無しさんの野望:2011/02/03(木) 02:57:12 ID:6xRz/5LG
>>747
ちょうど同じコトやりたくて同じ実験してたんだ
英語だけどこんなページが
ttp://www.uesp.net/wiki/Tes4Mod:Resurrecting_the_Player

・・・もう大体話題は出尽くしたかな?
出てない話だとOBSE環境だと、タイトル画面からのロード時のみカメラのズレを直してくれるらしいリ
ゲーム中にロードしてのスタートでは直らない、タイトル画面からのロードだけ
カメラのズレがほぼ気にならない速度で毎回リザできるようならもしかしたらズレ気にならなくなるかも・・・ってトコで作業停滞中
もし死んだフレームで確実にリザできるなら、2回目死亡した時に即ロードメニュー出ちゃうのにも対応できないかなぁ・・・

あと仕組みがまだ良く分からないけど、リザ一回目で透明になった後は
OBSEに最近追加された「Update3D」でも透明キャラから普段のキャラグラに復帰できるみたい
757747:2011/02/03(木) 07:27:40 ID:B56ikdXl
星座の効果が消えるのはここにも書かれてるんですね。
という事は私の勘違いで、やはり確実に存在する訳ですか。。。

もし、OBSEで治してくれるなら、上手く復活さえ出来れば殆どカメラは下がらないので。
OBSE環境専用スクリプトにしてしまえばいいのかな、とは思いました。

しかし、2回目のセーブ画面が出てしまうのはアレは面倒ですよね。

一応既に別の方法でスクリプトを組みだしてはいますが、リザレクションが上手く行くなら、そちらの方がかなり良いので。

出来ればそうしたいですね。。。

OBSEの透明状態を治すのは素敵ですね。
758名無しさんの野望:2011/02/03(木) 09:10:13 ID:pJTLQlBE
タイトル画面からのロードでカメラ位置が復帰するのはOBSEが無くてもOKかもです。

また「Update3D」は多分内部的にDisableと等価な処理を含んでいそうなので現状では
原則PCに対しては禁じ手と考えた方が良さそうな気が。

あとPCのResurrectでカメラが下がる、PCの位置がピョンと移動する、二回目以降に
すぐSaveの選択画面が出るのは解決出来ます。多分。大体。

上の質問の件ではそれらやPCのSpellEffect問題の対策が難度的な意味で問題になり
そうだったのでその件個別の対応としてResurrect以外の方法の検討を薦めた訳で。

Resurrectする事自体が目的で、難度は不問、途中で未知の問題が出ても泣かない、
という事ならその道もアリかもなので必要でしたらまた。
759名無しさんの野望:2011/02/03(木) 11:39:17 ID:pJTLQlBE
会話が出来ない、て件はその後どうなったんでしょうね。

読み返してみて一つ気になったのが、度々出て来る「CSで録音〜」、なのですが。

CSで録音した音声はwavで、wavはiniの[voice]→「SFileTypeGame」の指定を変えない
限りゲーム時には再生されずに無視される気が。うちではそうなります。

wavで字幕表示時間を調整している、という事はそこが変更されているかもなので、
その辺を標準的な環境にしとかないと動作の検証上問題があるかもです。
7603:2011/02/03(木) 15:14:59 ID:7AcTkn9f
>>759
会話の件については原因不明で未解決のままです。
会話時に使われる音声については少し試してみたところ「mp3 64kb/s 44100Hz 1ch」
の条件なら再生されることを確認しました。wavが再生されるかどうかは試してないです。

mp3を使って音声を再生させても、相変わらず一言目しか話してくれませんでした。
会話文も音声も一言目しか出ません。無音mp3を使うOBSEプラグインの有無も関係
ありませんでした。他に会話機能に関係ありそうなMODは入れていないと思うのですが…。
次の検証はバックアップしてから再インストールが適当そうです。
761名無しさんの野望:2011/02/03(木) 15:54:30 ID:pJTLQlBE
>>760
mp3についてはそれでOKなので置いとくとして、今までのお話だとCSで録音したwavで
字幕表示の時間を調整した、という事だったので。

最後に確認いいですか?

オプション類が適正になってこちらで確実に動作を確認したのは>>733のespです。
そのespについて、

・iniは「SFileTypeGame=mp3」
・音声(wav、mp3、lip)は一切無い

この条件でも動作しない(最初のセリフで止まる)、てのは確実なんですよね?
7623:2011/02/03(木) 16:33:47 ID:7AcTkn9f
>>761
・iniは「SFileTypeGame=mp3」
・音声(wav、mp3、lip)は一切無い
はい、この条件で最初のセリフで会話が止まります。
色々小細工してみましたが進展は一切ありませんでした。

繊細な部分に何らかの外部のMODの影響が加わり妙な挙動になっているのだと思います。
763名無しさんの野望:2011/02/03(木) 17:18:23 ID:pJTLQlBE
>>762
了解です。あとはそのespの二人の間でStartConversation Helloすると問題無く
世間話が始まるのも確実なんですよね。

だとするとバニラ会話はOKでとにかく自作会話だけがNG、と言う事が確実に。

一体なんでしょね。こちらではそういう状況は経験無いですし、どうやればその状況
を再現出来るかもちょっと見当が付かないです。

ただそれが他MOD起因かどうかの結論は、再インストール→素の状態で動作する事を
確認→今と同じMOD環境に復元→動作しない事を確認、が出来てからだと思います。
7643:2011/02/03(木) 18:13:24 ID:7AcTkn9f
>>763
はい、Helloで世間話はします。会話の順番変数を0に戻さずに自作会話を
StartConversationさせても世間話をします。
確かにMODが原因かどうかはおっしゃる手順を踏まないとわかりませんね…。
765名無しさんの野望:2011/02/04(金) 10:35:56 ID:BMmY1rNK
今更な質問のような気はするんですが、Obliでのテクスの最小サイズって幾らくらいでしょ?
まさか1X1なんてないだろうし、128以下にするとCTD起こした気も

大きい方は4096等あるので、そのサイズまでなら問題ないと解るんですが・・・


ちょっとテクスのサイズが大きくなってきたので小さくしようにも、

はて?そーいやオブリで最低のテクスサイズって?
となって
無論アイコンでは64X64と解っていますのでそれ以外の(ノーマルマップ含む)テクスです
766名無しさんの野望:2011/02/04(金) 12:23:32 ID:xeT/3NzV
>>765
ゲーム自体は1x1でもクラッシュする事は無いと思いますが、その辺はテクスチャを
作成するツール類にも関係して来ると思うので実用上はどうなんでしょうね。

とりあえず実績のある例、という事なら適当な画像ビュアーでバニラのTexture以下を
ガーッと全部見てみるといいかもです。

16x16の「blooddrop01.dds」てのが今見つかりましたけど。
他にもっと小さいのもあるかもですし。
767名無しさんの野望:2011/02/04(金) 12:36:51 ID:xeT/3NzV
あとResurrectの話ですけど、なんか気を削いだみたいで申し訳無いので少し。

まず、>>749のリンク先のさらにリンク先の記事は概念的な話なので、詳細な挙動や
数値とかその辺の記述は必ずしも正確とは限らないです。多分。

で、そにもある様に考え方は幾つかあると思うのですが、とりあえず下の例で。

a) PCが「本当に死んだ」事をGetDeadか何かで判定
b) PCをEssentialにして「気絶した」事を死亡の代用に
c) PCのHealthを監視して充分危険な状態だったら「もう死んでいる」事に

a)は、判定自体は単純ですし、上でも言いましたがResurrectによる見た目上の妙な
挙動は大体全部解決出来るので、考慮の重点は、落した武器/盾をどうするか、
消えたSpellEffectをどうするか、の二点です。これ非常に厄介そうな気が。

でも逆に言えばその二点さえ解決すれば大体OKだったりします。恐らく。

b)は、武器/盾を落とさずSpellEffectも消えず、Resurrectによる妙な挙動も無いの
ですが、一人称の時にGetKnockedState等では気絶状態の判定が出来ない問題が。

気絶時に自動回復するHealthの特定の値の監視だと誤検出の可能性があり、
またはGMSTの「FEssentialHealthPercentReGain」を0にすればHealthが0かどうかで
判定可能になるのですが、他のEssentialなアクターへの影響が未知です。

この二つのどちらかを許容するか、うまく回避出来るならこの方法が一番簡単です。

c)は必ず誤検出/検出漏れの可能性が。
でもSIの「Sheogorath's Protection」はそれで良しとしていますし、細かい事を気に
しなければ別にそれで充分なのかもです。

と言う事で、どの方法で行くかはResurrectする目的や、それにどの程度の確実さを
要求するのか、とかその辺次第な気が。
768747:2011/02/04(金) 18:52:54 ID:JVKDbmhL
bのPcをEssentialって言うのは凄いですね。
しかし、1人称で検出できないのは・・・本当にもったいない。

cは一撃死が怖いですね・・・ヘルスが1以下にならないようにさえ出来れば何とかなるのかなぁ。

星座はもう、初めにメッセージボックスで入力してもらうとかくらいしか思い浮かびません。。。
769名無しさんの野望:2011/02/04(金) 19:51:38 ID:6BHH2mOX
Doorを街中や屋外に設置した場合、Minimal Use(NPCの使用最低限)をチェックすることで一般NPCが入り込むという現象を防止することができますか?
770名無しさんの野望:2011/02/04(金) 20:58:47 ID:uTNgxcW6
>>769
単純にNPCにドアを使わせないなら、ドアにスクリプトをつけてOnActivateで
プレイヤーの場合だけActivateすることで達成できるかもしれません。
NPCがそのドアを使おうと近づくかどうかはわかりませんが…。
771名無しさんの野望:2011/02/04(金) 21:31:59 ID:xeT/3NzV
>>768
BirthSign付け直しの手順自体は自動化出来そうな気も。

ただその前に、死亡で実際にPCのパラメータの何がどうなるか、BirthSignの付け直し
で元の状態にきちんと復帰するかは一度きっちり確かめといた方がいいかもです。
そういう検証作業を含めて厄介、という意味です。

あと死亡時の武器/盾はGMSTの「iDeathDropWeaponChance」を0にすれば落さなくなるの
ですが、他のアクターも全て同じに。
その辺どう判断するかもやはり目的次第な気がします。
772名無しさんの野望:2011/02/04(金) 21:36:54 ID:xeT/3NzV
>>769
そのチェックをすればNPCはそのドアを大体使わなくなりますが、絶対に使わない
訳では無いです。
「Minimal」と言う通り、そのDoor以外にPathが無い場合等は通ります。

NPCにそのドアを完全に無視させてPC専用にするのであれば、ドア単体で配置して
リンクせずに、そのスクリプトでPlayerのActivateの場合だけMoveToでドア移動を
した様に見せたり、リンク済みのDisableした隠しドアをActivateさせたりすれば
多分。
773名無しさんの野望:2011/02/04(金) 21:57:28 ID:VteS3bdl
そういえばコロールの配達人途中の洞窟でゴブリンや盗賊との集団に巻き込まれた時
極稀に洞窟の中に逃げる時があるぞ。
774名無しさんの野望:2011/02/04(金) 22:05:05 ID:VteS3bdl
ごめん途中送信

洞窟とかは通常のドアと別扱いなのかな?
各町共通自宅地下キッチンMODだと町〜町移動するNPCが通ると聞くけど、
通常の家や洞窟は袋小路なのでNPCの自宅等移動ルートに設定されて居なければ近寄らないのかな?
NPCも不法侵入は避けるのかな?あ、公共とプライベートって設定があるのだろうか?

775名無しさんの野望:2011/02/04(金) 22:17:48 ID:xeT/3NzV
洞窟のドアも普通のドアですよ。
通常NPCはそのドアの先に目的が無いから入らないだけで、誰かをFollowしたり
中に目標物が指定されたり、その洞窟を経由した先に目的地があったりすると普通に
入ります。
776名無しさんの野望:2011/02/04(金) 22:22:12 ID:La/GDgy4
NifSkopeでメッシュを見ていると
時々、表示の所々が欠けている(とゆうか所々見えている)メッシュがあります
CSで開いて見ると(クリーチャーの場合)そのメッシュを表示されなかったりします
がゲーム上で見ると特に問題なく見えている・・とゆうようなNifってなんなんでしょうか?
CS上でも見えないと不便なので表示できるようにしたいのでが・・
777名無しさんの野望:2011/02/04(金) 22:23:07 ID:6BHH2mOX
なるほど
以前家を作成したときに中に入り込まれたのはベッドがあるからってことですか
778名無しさんの野望:2011/02/04(金) 22:35:23 ID:xeT/3NzV
Sleep等で特に目的のベッドが指定されていない場合は現在のセル内でベッドを探す
と思います。

うちに帰ったら知らない人がベッドで寝てた、という事だと、何か別な要因で
まずそのNPCが自宅セルに出現し、夜になったから近場のベッドで寝た、みたいな
状況かも。

その「別な要因」こそが謎ではあるのですが。
779名無しさんの野望:2011/02/04(金) 23:44:41 ID:La/GDgy4
>>776
自己レスですがどうもCSから参照DDSのノーマルマップが見えない時に発生する現象のようでした
失礼しました
780名無しさんの野望:2011/02/05(土) 04:32:19 ID:7p0bZQqW
地面に落ちたアイテムをクリックで消したいんですが

Disable命令は消してもスクリプトは残って動き続けるみたいで
(Testすると子アクターをDisableしてもスクリプトで表示したメッセージはずっと表示され続けてていました)

なので、このスクリプトも消える方法で消す、もしくはスクリプトを別で消すor停止させる方法は無いでしょうか
何度も出現するアクターなので完全消去は困るのですが(例えばその親アクターから子アクターが生成できない、スクリプトが再生できないみたいな)
781名無しさんの野望:2011/02/05(土) 09:06:48 ID:PWP0nmDM
>>780
「Disable」はオブジェを「消去」するのではなくて「見えなくする」だけです。
見えない触れないだけで実体はまだそこに残っていてスクリプトも動きます。

で、アイテムとアクターどっちに何をする話です?
「地面に落ちたアイテムをクリックで消す」のと「親/子アクター(?)」の「生成(?)」
の関係やその言葉の意味するところが失礼ですけどサッパリ。

状況が具体的なら多分色々具体策も出る気が。

一般論的には、「消去」してスクリプトを止めるのではなく、Disableされたら何も
せずReturnする様にスクリプトを書く方向もあるかも、ぐらいは言えるかもですが。

でもその「生成」というのが少し気になって。
オブジェの無制限な生成はシステム的に全く推奨されていないです。
その辺もあるので現状では迂闊な事は少し言えない気も。
782名無しさんの野望:2011/02/05(土) 10:35:09 ID:KGVxDhQX
自分の場合、ダミーのゴミ捨て場セルにMoveToしてます。
それでゲームへの影響はなくなると思いますし、Mod外してRemove Bloatすれば
セーブデータへの多分もなくなりそうですし。
783名無しさんの野望:2011/02/05(土) 11:26:11 ID:PWP0nmDM
手法的には色々あると思います。
また、作る方も使う方も承知の上でやっているのなら何であれ問題は全く無いです。

この場合その辺が明確でないので、細かな話に入る前に状況の確認をしておいた方が
良さそうな気がしたので。
784名無しさんの野望:2011/02/05(土) 12:24:26 ID:ZAncupyR
ご返答、本当にありがとうございます

状況としては罠みたいな地面に落ちたアイテムをスクリプトを走らせた後、消去したいんです
メッセージを表示した後みたいな感じです

親アクター子アクターは
親オブジェクト子オブジェクトみたいな感じでして、ある解説で使われていたのでそっちが正しいんだと思ってました。

782さまの仰られるようにダミーのゴミ捨て場を作っておけば
大抵3日たてばリスポーンされる筈ですよね、おおお
もし、あれならResetInteriorでリスポーンさせるという方法もあるかもですか

地面に落ちたアイテムを直接消去する方法はないんですね、スクリプトを停止させる方法も

Disableで消した後動いているスクリプトは子オブジェクトのものなんでしょうか
例えば、もしスクリプトの付いた同じアイテムオブジェクトを100個消したとします
すると100個のスクリプトが常に動きつづけているという恐ろしいことになるのでしょうか・・・。

最後に、地面にあるアイテムをプレイヤーに一度取得させる方法は無いでしょうか
そこからRemoveと言う手で行けないかなと思いました
CSwikiを読んで見ましたがそれらしい関数を発見できませんでしたOrz
785名無しさんの野望:2011/02/05(土) 13:33:57 ID:PWP0nmDM
>>784
「メッセージを表示した後」てのがまた分からないのですが、なんか忍者の撒き菱みたい
なモノ、と言う事でいいんでしょうか。

で、まず、「親」、「子」、「生成」、という言葉の意味を明確にしときましょう。

「親子」という言葉はシステム上の意味があり、CSでそのReference→EnableParentタブ
で指定されたRefernceの主従関係を示す用語です。
なので別な意味で使っている場合はその説明をまず。

また「生成」というのは予想するにゲーム中にPlaceAtMeしたり、インベントリから
Dropする事を言っていると思うのですが、それで合ってます?
786名無しさんの野望:2011/02/05(土) 13:42:12 ID:PWP0nmDM
あと、PlaceAtMeやインベントリからDropしたアイテムはどこかの部屋に移動しても
三日たっても消えず永遠に存在し続けます。ResetInteriorしても同じです。

「リスポーン」というのは部屋のオブジェがCSで配置された初期状態に戻ったり、
敵アクターが自動的に再出現する事を差します。
撃って壁に刺さったり地面に落ちた矢が自動的に消えるのはまた少し別な話です。

地面に落ちたアイテムを直接消去する方法は、それがアクターではないDynamicな
Reference(PlaceAtMeやDropしたアイテム)であればOBSEの「DeleteReference」で
消す事は出来ます。スクリプトだけを停止する方法は無いです。

スクリプトの付いた100個のアイテムを「生成」したのならスクリプトは100個同時に
(時分割という意味で)動きます。

地面に落ちたアイテムはそれが拾うことの可能なものならPCにActivateさせる事で
拾わせる事は出来ます。

一旦インベントリに入ったアイテムならRemoveItemや自分自身をRemoveMeで消す
事は出来ます。


で、希望する動作の見た目の流れが分かればそれに応じて手法が決まるので、
まずそれを教えてもらえると話が早いと思うですよ。

例えば、走りながらある操作をすると地面に何かがポロポロ落ちて、敵がそれを
踏むとアイタタになって10秒ぐらいすると自然に消える、とかそんなかんじで。

でもネタバレが心配、という事なら別にいいですけど。
787名無しさんの野望:2011/02/05(土) 21:54:06 ID:ZAncupyR
おおお、アクティブにしたときに作動するスクリプトの付いたオブジェクトでも
スクリプトからアクティベートするとちゃんとイベントリに入るんですね!!!

有難う御座いました、何とかなりそうです!

詳しい内容も分からないのに丁寧に質問に答えて下さって、本当に有難う御座いました。
788名無しさんの野望:2011/02/05(土) 22:02:20 ID:gtBDVKSI
>>786
すみません、便乗質問になるのですが
Begin gamemodeのスクリプトがついた装備品を
コンテナの中に入れておいた場合

一度プレイヤーがコンテナをあけて中を確認してしまうと
コンテナの中にあるアイテムのスクリプトは
走り出してしまうのでしょうか?

またはプレイヤーが自分のインベントリから
コンテナに移した場合も、スクリプトはとまってないということでいいのでしょうか?

お手数ではありますが
もしよろしければおねがいします
789名無しさんの野望:2011/02/05(土) 23:03:07 ID:PWP0nmDM
え、もういいんですか。

何とかなるならそれでいいのですが、とりあえずは使おうと思っている機能や関数が
自分の思っている通りのものなのか、まずそれ自体の確認を充分に。

またObのシステムって特定のシナリオを実現するためだけの専用システムなので、
例えば各関数等は汎用には作られておらず、リファだけを見て「多分こういう動作を
するはず」、と予想しても思った通りには動かなかったりします。

その辺に充分ご注意を。


あと、「アクティブにしたとき」ってまた分からない言葉なのですが、アイテムに
付けたスクリプトは地面に置いてもインベントリの中でもその辺のコンテナの中に
入れてあっても常に動作してます。

例えばAddItemでインベントリにそのアイテムを「生成」するとそのスクリプトは
その時点で動作を始め、もしそのアイテムを100個AddItemしたのならスクリプトも
100個動きます。

スクリプトが止まるのは、現在有効なセルにそのオブジェがロードされていない
(PCから遠い場所にある)場合か、そのオブジェの入ったコンテナ(アクターの
インベントリも同じ)がやはりロードされていない場合です。

ただ、コンテナ(インベントリ)を開いた状態って「GameMode」ではなく「MenuMode」
なので、スクリプト自体は動いていてもGameModeブロックは実行されません。
この辺少しややこしいです。
790名無しさんの野望:2011/02/05(土) 23:28:07 ID:gtBDVKSI
紛らわしくてすみません
>>788は他人の便乗質問なのです

ともあれ、ご教示ありがとうございました
自分が便利だからと、そこらのコンテナをスクリプトアイテムの集積場にしておくと
負荷になってしまったりするのですね
参考になりました
791名無しさんの野望:2011/02/05(土) 23:39:26 ID:KGVxDhQX
>アクティブにしたときに作動するスクリプトの付いたオブジェクトでも
>スクリプトからアクティベートするとちゃんとイベントリに入る

これは恐らく添付したオブジェクトスクリプトの「Begin OnActivate」ブロック内で
「Activate」を実行すると、そのオブジェクトを入手できるということを指してるんだと
思います。多分そこから「RemoveMe」するのではないかと。。。

「落ちているオブジェを拾う」ことと「RemoveMeする」ことから、全てのオブジェクトでは
できないと思うので、その専用オブジェクトに専用のスクリプトを添付して、スクリプト内で
「Drop→スクリプトで拾う→RemoveMeで消す」という流れになるんだと思います。
Dropは外部のスクリプトからやるのかもしれませんが。
792名無しさんの野望:2011/02/06(日) 00:36:59 ID:FCvwMo81
>>791
希望的観測で解釈すればそういう事なのかもですが。

でも全体の流れは結局不明ですし、用語用法の話の流れで念押しの意味と、万一
何か概念的な誤解があった場合の用心の為に、敢えて「分からない言葉」と指摘し、
>>788さんへの回答も含めてアイテムのスクリプトの細かい話をしました。

あと「DropMe」で自分をDropさせる事は出来ます。
でもDropMeして出現したアイテムは今の自分とは別物なのでスクリプト変数の内容の
持ち越しは出来ないです。
793名無しさんの野望:2011/02/06(日) 04:13:16 ID:k+9ec5BD
私もアイテム関連で教えてください。

アイテムスクリプト内では、GetSelfが使えませんが、
AddItemでコンテナ内に作成したアイテムの自分自身のRefのFormIDを取得するのは可能でしょうか?

一旦PlaceAtMeしてActivate で拾わせてOnAddでクエスト変数経由でrefをセットみたいなのも考えてみましたが、
もし、安全かつスマートなやり方はこれだ!という方法があれば教えてください。
794名無しさんの野望:2011/02/06(日) 07:56:01 ID:VJsWK0rW
>>793
基本的には無理です
目的によっては、GetBaseObjectで取れるbaseIDで解決できるかもしれませんよ

どうしても必要なら、OBSE command documentationの、Inventory Referenceを参照するといいかもしれません

私は使ったことがなく、詳しいことは分かりませんが
インベントリ内アイテムに擬似的にリファレンスを与えて処理出来る、みたいなことが書いてありました
795名無しさんの野望:2011/02/06(日) 08:04:56 ID:VJsWK0rW
追記
本当にリファレンス的なものが必要なのかを、まず検討した方がいいですね
というわけで、目的を書いてみてはどうかな
796名無しさんの野望:2011/02/06(日) 09:23:05 ID:FCvwMo81
目的が分かると確かに話が早いですよね。

>>793
まず、コンテナ/インベントリに入っている状態のアイテムのRefってシステム的に
存在しないです。

PlaceAtMeやDropで生成されたDynamicなRefはインベントリに入ると無効になり、
次にDropした時のRefIDは別物になります。
(IDが同じになる場合はありますが、それはシステムの使用済みIDの再利用の結果
偶然同じIDになっただけで、実体は別物として新規に生成されてます。多分)

また、OBSEにインベントリ内アイテムのRefを取得する関数はありますが、それは
一時的に仮のRefを生成してその場でRefの必要な処理を実行して完了させる為の
限定的なもので、その仮のRefは次のフレームには消滅します。恐らく。

あと、CSであらかじめ配置して静的なRefのFormIDが割り当てられているアイテムは
インベントリに入ってもそのRefは残っており、スクリプトでインベントリ内から
そのRefの参照も出来るのですが、でもその状態って恐らくシステム的に保証されて
いない雰囲気が。

そんなかんじでシステムには、インベントリアイテムにRefは不要、というポリシーが
あるらしく、不要なRefは存在させない方向で作られているみたいです。

なのでそれに逆らうのはそもそもあまり安全でもスマートでも無い気も。

という事で、OBSEで解決出来るならそれでもいいのですが、Refを必要としない方向
で全体の構造を考え直すのもアリです。
その辺はやはりRefが必要な理由次第な気が。
797名無しさんの野望:2011/02/06(日) 18:20:34 ID:fthbV7Vv
MessageBoxについて質問なのですが。
どうしても、メッセージボックスの入れ子が出来ません。
messagebox "messeag" "A" "B" "C"

if A == 1

 messeagebox "Aを選択しました" "A1" "B1" "c1"

endif

if B == 1

 messeagebox "Bを選択しました" "A2" "B2" "c2"

endif

みたいなことをやりたいのですが

最初のメッセージボックスしか出なかったり
2番目のメッセージボックスが先に表示されたりします
一体どうすれば良いのでしょうか
798名無しさんの野望:2011/02/06(日) 19:11:25 ID:GDQ0bt/6
>>797
CSWikiの日本語訳の「Script→Script Tutorial」にズバリ載ってますよ。
http://wiki.oblivion.z49.org/redist/TES4_CS_Help_v1.1.zip

それと、MessegeBoxをGameModeブロック内で表示するのか、OnActivateブロックなどの
1回だけ実行されるところで表示するのかで大分難易度…というか面倒臭さが違います。
後者ならわりと簡単です。
前者なら結構面倒なので、その時は自分が使ってる方法をお教えいたします。

そのスクリプトに足らないところは、プレイヤーが選んだ選択肢を取得する
「set 変数 to GetButtonPressed」です。あとはIfを使って変数の結果で分岐
させればできます。
でも独特の注意点があるので、日本語訳ヘルプを見るのがきっと一番ですよ。
799名無しさんの野望:2011/02/06(日) 19:29:06 ID:EVqPL29U
選択肢は本当に難しい
800名無しさんの野望:2011/02/06(日) 20:00:35 ID:FCvwMo81
MessageBoxって、「多分入力待ちの関数だからきっとこうすれば動くはず」、
と適当に解釈して書いても全然動かない代表選手みたいな関数ですよね。

MessageBoxは「入力待ち」ではなく、実行した後もスクリプトは動き続ける事と、
どのボタンが押されたかは「GetButtonPressed」で値が返るまで待つ必要がある、
という二点がキモな気がするですよ。
801名無しさんの野望:2011/02/06(日) 20:13:14 ID:fthbV7Vv
Scriptname test
short Button
begin onEquip
MessageBox "選択してください" "A" "B"
set Button to GetButtonPressed
 if(Button == -1)
  return
  elseif( Button == 0 )
   MessageBox "選択してください" "A1" "B2"
   set Button to GetButtonPressed
   if(Button == -1)
    return
   elseif( Button == 0 )
    message "A1"
   elseif( Button == 1 )
    message "A1"
   endif
 elseif( Button == 1 )
  MessageBox "選択してください" "A1" "B2"
  set Button to GetButtonPressed
   if(Button == -1)
    return
elseif( Button == 0 )
    message "A2"
   elseif( Button == 1 )
    message "A3"
   endif
 endif
end
とやってみたんですが、駄目ですOrz
動きつづけているせいでプレイヤーが選択してる間にスクリプトが終わってしまって
表示されないということでしょうか
802名無しさんの野望:2011/02/06(日) 20:49:43 ID:FCvwMo81
でしょうね。多分。
MessageBoxを出した直後に下のGetButtonPressedが実行されて結局ボタン入力は
得られないまま終了している気が。

最初のMessabeBoxを出す契機はOnEquipでいいと思うのですが、以降はGameMode等
(この場合OnEquipで以降の階層化もあるのでMenuModeになるのかも)の繰り返し実行
されるブロックの中でGetButtonPressedにボタン値が返って来るまで待っている
必要があります。

で、いきなり階層化は厳しいと思うので、とりあえずは上の方ご紹介の
チュートリアルや、GetButtonPressedのサンプル等を見て、まずはMessageBox一つ
だけをきっちり動かす事を目指すのが良さそうな気が。
803名無しさんの野望:2011/02/06(日) 21:12:13 ID:GDQ0bt/6
>>801
直感的にはそうなるのですが、実はそれではダメです。一工夫が必要です。
ヘルプをそのまま改造が一番早いと思います。

scn test
short state ;進行度の管理用
short button ;プレイヤーが選んだ選択肢の保存用

Begin OnEquip
If (state == 0)
set state to 1 ;再実行できないようにフラグオン。終了時に0に戻す
MessageBox "選択してください" "A" "B"
EndIf
End
804名無しさんの野望:2011/02/06(日) 21:15:10 ID:GDQ0bt/6
(続き)

Begin GameMode
If (state == 0) ;0なら何もせずすぐに処理終了
Return
ElseIf (state == 1) ;プレイヤーがアイテムを使ったら処理開始
set button to GetButtonPressed
If (button == -1) ;プレイヤーが選択するまでは-1で終了し続ける
Return
ElseIf (button == 0) ;"A"を選択した場合
set state to 2
MessageBox "選択してください" "A1" "A2"
ElseIf (button == 1) ;"B"を選択した場合
set state to 2
MessageBox "選択してください" "B1" "B2"
EndIf
ElseIf (state == 2)
set button to GetButtonPressed
;以下はstate==1と同様に
EndIf
End

自分では試していないので上手く動作するかわかりませんが、
恐らくこんな感じの流れになると思います。
コツは、MessegeBoxは一度だけ実行すること。state変数で進行度を
切り替えて、「GetButtonPressed」で結果を待ち続ける感じにします。

動かないとか(テストしてないので)、不明な点があればどうぞ。
805名無しさんの野望:2011/02/06(日) 21:18:47 ID:GDQ0bt/6
連投すみません。半角スペースとタブスペースが使えないのを忘れてました。
あまりに見づらいので書き直します。
全角スペース使っているためこのままじゃ使えないので、参考程度に…。

Begin GameMode
 If (state == 0)     ;0なら何もせずすぐに処理終了
  Return
 ElseIf (state == 1)   ;プレイヤーがアイテムを使ったら処理開始
  set button to GetButtonPressed
  If (button == -1)   ;プレイヤーが選択するまでは-1で終了し続ける
   Return
  ElseIf (button == 0)  ;"A"を選択した場合
   set state to 2
   MessageBox "選択してください" "A1" "A2"
  ElseIf (button == 1)  ;"B"を選択した場合
   set state to 2
   MessageBox "選択してください" "B1" "B2"
  EndIf
 ElseIf (state == 2)
  set button to GetButtonPressed
  ;以下はstate==1と同様に
 EndIf
End
806名無しさんの野望:2011/02/06(日) 21:30:33 ID:KrMElobU
>>801
MessageBoxは今すぐ画面にメッセージボックスを表示させるという処理ではなく
スクリプト全体の処理が終わった後に表示されるメッセージボックスを予約登録しているだけ
ということを意識するとわかりやすいと思います。
同一フレームでMessageBox→GetButtonPressedを行っても
まだ画面にメッセージボックスが表示すらされていないのでボタン押下状態も取得できません。
次フレームで初めてメッセージボックスが表示されてボタンが押されたかもしれない状態になります。
807名無しさんの野望:2011/02/06(日) 22:17:05 ID:BVqft3nM
blenderで少しファイルサイズ大きいnif読み込むとロード中で止まってしっかり読み込んでくれないのですが
これって仕様なんですか?
1Mちょいだとまず止まるんですが
verは2.49bです
808名無しさんの野望:2011/02/06(日) 22:31:27 ID:Bv/KhEho
スペック低いと読みこむのに時間かかるよ
809名無しさんの野望:2011/02/06(日) 22:36:39 ID:GDQ0bt/6
Athlon 64 X2 6000+
メモリ 4GB
その他も普通なスペックですが、5MBか7MBくらいのnifも読み込めましたよ。
待ちが足りないか、スペックが足りないのだと思います。
810801:2011/02/07(月) 00:43:02 ID:BGROckKq
上手く行きました
変数でブロックごとに分けて、待つですね
何となくスクリプトの流れもわかりました
本当に有難う御座いました
811名無しさんの野望:2011/02/07(月) 10:04:56 ID:VWLUFf+c
装備等の部位(胸や腕)の大きさだけを変更したいんだが,nifscopeでその部位のninodeのscaleを弄ったりすると,nifscope上だと反映されてるんだが,ゲームでは反映されん

ググると髪については色々でてくるが,そういうのってnifscopeだけじゃできないんかな?
812名無しさんの野望:2011/02/07(月) 10:18:15 ID:JMoW+G1M
ボーンをいじって大きさを変えるのかメッシュ自体を編集するかによるけど
前者ならこのスレの>>644からの流れを追えばわかるかも、この方法は大胆な変更してもモーションで破綻しにくいけど弄り方の自由度は低いです
後者ならBlender等3D編集ソフト使わないと無理
813名無しさんの野望:2011/02/07(月) 11:43:25 ID:mYcYCnud
後者も出来ますよ。
NiNodeではなく各パーツのNiTriShapeかNiTriStripsのScale/Translationを
適宜変更して右クリ→Transform→Applyで多分。
814名無しさんの野望:2011/02/07(月) 12:23:21 ID:mYcYCnud
あと>>689の件の続きです。

Weaponの前に挿入したノードに適当なBlendCollisionObjectを付ければ武器の
空中静止は起きずに正常に落下する様になります。

でも麻痺やPushActorAway、Essential等で武器を持ったままラグドール→復活した
時にやはり武器の向きは変になります。

これはその挿入したノードの位置回転を初期化するkfを必要に応じて再生すれば
直るのですが、でもそもそもそういう面倒な事をせずにSkeletonの変更だけで
済ませる、というのが本来の主旨な気も。

という事で、効果に対してその手間が充分引き合う、というのならアリかもです。
815名無しさんの野望:2011/02/07(月) 21:38:37 ID:p1o4ud5J
コンパニオンに自動的に歩いてクエストターゲットに向かわせるMODを作ろうと思ってるのですが、
現在のクエストターゲットを取得する方法ってありますか?
もしくはプレイヤー以外をコンソールのmovetoptのようにクエストターゲットの所に飛ばす方法はありますか?
無さそうなら観念してAIパッケージをクエストターゲット分作成するつもりですが…
どなたかご助言をお願いいたします。
816名無しさんの野望:2011/02/07(月) 22:14:56 ID:y8FjgW4V
>>815
普通に

NPC名.Moveto マーカー名

を任意のスクリプトに組み込んでぶっ飛ばせばおk
817811:2011/02/08(火) 04:19:30 ID:X9LtbAL5
>>812->>813
レスthx
とりあえずNiTriStripsのScale/Translationを変更することで,meshそのものの大きさを変更できることはゲーム上でも確認できた

meshそのものではなくて,meshの1部分だけのscaleを変更っていう操作はnifscopeにはないん?
一度大きさを変更したい部分だけを切り離してやるしかないのかな

ちなみに変更したいのはskeletonのnifファイルじゃなくて,普通の装備用のnifファイルです
装備の1部分だけ大きさ変更するのに3時間以上かかってるとか
818名無しさんの野望:2011/02/08(火) 07:51:53 ID:NZEJiPcy
>>816
ありがとうございます

クエストのターゲットの近辺にマーカーを置いてそこに飛ばすというのはできるのですが
movetoptのように一つの命令でクエストターゲットの場所に移動するという方法は無いのでしょうか?
一つ一つのクエストごとに命令が違うとAIパッケージをクエストターゲット分作成するのと作業量的に変わらないので…
819名無しさんの野望:2011/02/08(火) 14:15:53 ID:hIaBMJiv
>>815
QuestTargetのRefやマーカーの取得、PC以外のアクターを自動的にそこに移動する
方法って無さそうな雰囲気が。

これ出来れば面白いんですけどね。
案内役に露払いさせたりPCをクエ目的地まで自動で歩かせたり。

で、TravelのAIを個別に作る以外にマーカーネズミの方法もあると思うのですが、
「PC以外をターゲットの所に飛ばす」って多分その事ですよね?

それが出来ないのなら、マーカーネズミ方式でもスクリプトで現在のクエやStageを
判定する事になり、結局個別にAIを作るのと同じだ、だったらAIで、という事だと
思うのですが、そういう事で合ってます?

いずれにしろ作業量が多いのはもう仕方無いとしても、AIの場合は数が極端に増える
とどうなるか謎ですし、「現在どのクエがActiveか」の判定もどこかで必要になると
思います。

その辺を考えるとマーカーネズミ+スクリプト判定にも利点はあると思うので、
どちらかにするかはまだ検討の余地がありそうな気も。
820名無しさんの野望:2011/02/08(火) 14:18:36 ID:hIaBMJiv
>>817
NifSkopeではNiTriShape/Stripesの単位以外の部分的なメッシュの変形操作は
出来ないです。
821名無しさんの野望:2011/02/08(火) 14:24:43 ID:0QrCnxbx
>>819
撮影用に作られたこんな面白機能modがあるよ。JPフォームより
ttp://oblivion.forum.jpmod.net/viewtopic.php?f=10&t=913

「RecAssist」
SS・動画撮影を補助するMODです。
カメラの操作(正確にはプレイヤーキャラの一人称視点操作)や
通常ゲーム内からは行えないNPCをコントールする魔法が追加されます。

OBSE v0018以降が必要です。
822名無しさんの野望:2011/02/08(火) 15:03:40 ID:hIaBMJiv
おー、なんか面白そうな。
PCに自動的に何かをさせる方法は色々あると思います。このスレでも何度か。

でもここで問題になっているのはその前段階の、「まず動作の目的地をどうやって
決定するか」、という事だったりします。恐らく。

その後もしPC動作の自動化が必要ならそれはそれでまた別な話に。
ネタ的に面白い分野なんでつい先に振ってしまいましたが。
823名無しさんの野望:2011/02/08(火) 15:26:27 ID:0QrCnxbx
>>822
作者さんの機能紹介動画があるがニコ動なんだ。
ttp://www.nicovideo.jp/watch/sm13202047

ちなみに魔法を使ってNPCの到着地点を設定できる。
その到着地点設定魔法はセルフ魔法で自分がそこで使わないと駄目だけど。
824名無しさんの野望:2011/02/08(火) 21:12:21 ID:NZEJiPcy
>>819
ありそうで無いみたいですね。
コンパニオンと並んで歩いて一緒に旅してる感を出したいんですが
結構難しそうです。

ネズミを飛ばしてそこに向かわせるというのも手ではあるのですが
movetoqtのように飛ばせなければ、マーカーを設置してmovetoで飛ばすか、
イベントターゲットの位置を調べてmovetoで飛ばすかになると思うのですが、
それだと二度手間な感じがするので、AIで直接向かわせたほうがまだコピペで済むので手間かからずいいかなと。

思ったんですがアクティブなクエストを判別する関数のGetActiveQuest(ですよね?)はobseの関数なので
tes4editでは使えず(うちの環境ではCSでAIパッケージを編集できない)
tes4editでAIをクエストターゲット分作り、CSでクエストターゲット分のフラグ管理をするという
結局二度手間状態に。
一応クエストターゲットを直接指定できる後者でやろうかなと思ってますが。

プレイヤー以外にmovetoqtをさせてくれればこんなに手間はかからないんですけどね。
825名無しさんの野望:2011/02/08(火) 23:11:39 ID:hIaBMJiv
>>824
「並んで歩く」事自体が目的なら別な方法もありそうですがそれは置いといて。

>イベントターゲットの位置を調べてmovetoで飛ばす

位置を調べる、というのが少し分からないのですが、ネズミはQuestTargetのRefに
MoveToすればそれでOKでは。

QuestTargetのRefにEditorIDが無い場合は、そのFormIDが例えば「00001234」なら
スクリプトで「set aaa to "1234"」とか「aaa.MoveTo "1234"」と書けばOKです。
例えばバニラクエの「FG01Rats」の最初のQuestTargetの判定はこんなかんじに。

if Stage番号 == 20 || Stage番号 == 60
set TargetのRef変数 to "4ce5f"
:
endif
ネズミ.MoveTo TargetのRef変数

あとはそのネズミをLoccationに指定したTravelのAIをAddすればOKです。
確かに大量のif文を書く必要はありますが、一つのTargetの判定部分は二行で
済みますすし、定型的なのでそれほど無謀でもないと思うのですが。
AIパッケは一つでOKですし。

でもその辺実際にどう作るかは本人の好みやポリシー次第だと思います。

あとご存知かもですが、OBSEからCSを立ち上げているならF11でScriptEditorの
フォントが選べます。
826名無しさんの野望:2011/02/09(水) 02:31:39 ID:IlF+GxTv
ロード画面が出るけど、

1.プレイヤーの現在地を記憶
2.movetoqt
3.プレイヤーの現在地をクエストターゲットの位置として記憶
4.Playerを1で記憶した位置に飛ばす
5.コンパニオンを3で記憶した位置に飛ばすなり歩かせるなりする

こういう力業なら…
827名無しさんの野望:2011/02/09(水) 03:33:39 ID:bEMwDPoM
>>824
並んで歩くという目的なら、以下のModが参考になると思います
あくまでGrabの延長という感じですが、雰囲気は出せるかも・・・

Grab Companion
ttp://www.tesnexus.com/downloads/file.php?id=34878
828名無しさんの野望:2011/02/09(水) 05:19:38 ID:zEGdqa2m
nifの書き換えでの質問なんです。
ARDoor02等をリテクスチャしてただの塊として使用したいんですが、ただテクスチャ替えしただけでは元のモデルと同様に側面が暗かったり正背面が光ったりします。
NiMaterialPropertyのEmissive Colorかな?と思い、それらを全部白に統一しても変わりません。

モデルが光ったり一部の陰影があったりなどをnifscopeで弄ることは可能なのでしょうか?
829名無しさんの野望:2011/02/09(水) 06:06:10 ID:i/t2pace
>>828
そういう絵的な質問は画像つけたほうが判断しやすいよ。

どういう風にしたいのか分かりませんが・・・

そのオブジェクト(nif)自体を発光させたいの?環境光(太陽の光とか)で反射するのをなくしたいの?
前者ならNiMaterialPropertyで可能。暗闇でも光ります。
後者はテクスチャの_n.ddsってやつのアルファチャンネルを金属みたいに激しく反射させたいなら白く、
反射させたくないなら黒くして_n.ddsにインポートする。
830名無しさんの野望:2011/02/09(水) 09:30:19 ID:PfnnI2rs
側面が暗いのは多分VertexColerな気が。
NiTriShape(Stripes)Data→HasVertexColorsを「no」にするか、その下のVertexColors
の内容を全部同じにすれば頂点毎の明るさが平坦にはなると思います。


並んで歩くMOD面白いですね。
以前PCと並んで歩くお散歩犬を作ろうとした覚えが。

アクター移動の操作はAI+マーカー移動やPlayGroupで色々出来るので、
並んで歩く事が目的ならそれらの併せ技である程度いいかんじにする事も出来ると
思います。
831名無しさんの野望:2011/02/09(水) 13:37:59 ID:WF36oZHg
お散歩犬いいなあ
832名無しさんの野望:2011/02/09(水) 20:42:32 ID:SYQz+cv6
そういえば、女性専用の新防具の材料があのサイトにあったよ。
http://loda.jp/clonegame/?id=144.jpg
http://loda.jp/clonegame/?id=145.jpg
http://loda.jp/clonegame/?id=148.jpg
833名無しさんの野望:2011/02/09(水) 21:58:08 ID:zEGdqa2m
>>829-830
確かにSSがないと分かりにくい質問でした すみません。

ちなみに何がしたかったのか、どんな問題だったかを一応SSで
ttp://shy.jsphr.net/upload/img/ups22978.jpg
このようにただの四角い建材として使用したかったのですが、
元がARdoorなためモデルが光ってたり、側面が暗かったりしたのです。
そして、ご指摘の通り、HasVertexColorsを「no」にすることで解決しました。ありがとうございました。
834名無しさんの野望:2011/02/10(木) 01:30:05 ID:TgjUNNlH
>>825
アドバイスありがとうございます。
MQ02とMQ03で試したところ、ちゃんとネズミを飛ばせました。
あとは単純作業でいけそうです。

>>827
見た感じ良さそうですね。
試してみます。
コンパニオンを視界に捕えつつ行動したいと思ってる人はやっぱり結構いるみたいですね。

>>830
犬の散歩みたいにちょっと先行するくらいがコンパニオンの挙動を眺めつつ移動出来ていいですね。
細かい挙動も作りがいがありそうです。
835名無しさんの野望:2011/02/12(土) 07:36:59 ID:5DjdScWu
騎乗用クリチャーについて質問なのですが
騎乗可能な馬に跨った場合キャラクターのScaleが騎乗した生物のScaleに合わせて変化しますが
この変化割合は何処に記述されてるのでしょうか?
ラクダが大きすぎなので修正したら乗ってる自分が不自然に小さくなって
しまったので・・・
836名無しさんの野望:2011/02/12(土) 07:49:30 ID:h6f84V/K
>>835
確か3つの場所で替えられたと思いますよ。
1)NifファイルのNiNodeのScale(NifScope使用)
2)CSのラクダさんの登録のところでのScale
3)「OnActivate」などでのスクリプトの中でスケール変化
2で変える場合は、3でも変更を加えて辻褄を合わせると書いてあった気が…。

あと1の場合、Scale変更後NiNodeで右クリック「Transform→Apply」して、
その後各ホーンでも同様に「Transform→Apply」する必要があります。
837名無しさんの野望:2011/02/12(土) 08:49:01 ID:5DjdScWu
>>836
1)でいけました
ありがとうございます

Skeleton.nifのSpine1の先にxformというノードがあり
その部分のScaleで騎乗NPCのScaleを調整しているようでした
このケースではTransform→Applyは必要ではなかったのですが
必要な場合と弄ってはダメな場合ありますよね
この区別が今だに良く判りませんが・・
838名無しさんの野望:2011/02/12(土) 09:43:54 ID:CNl0ysJ2
kfについてなのですが
あるモーションの間中、ずっと目を閉じ続けさせるには
textkeyにどのような記載をするべきなのでしょうか?

表情の解説をしているサイトを参考に
timeが0のときにモーフ開始で
Enum: Face BlinkLeft
Enum: Face BlinkRight

数字は、例えば4秒のモーションなら左から
1又は100(100%目を瞑る)
0(0秒で100%にする)
4又はもっとずっと長い時間(その間続ける)
1-30程度(眼をあけるのを遅らせるために長い時間を入れてみたり)

な感じで試しているのですが、目を開けたり閉じたりな感じです
ご教示をいただけると有り難いです
839名無しさんの野望:2011/02/12(土) 09:44:53 ID:CNl0ysJ2
>>838
>1又は100(100%目を瞑る)
>0(0秒で100%にする)

の順番は逆でした
左をゼロにしております
840名無しさんの野望:2011/02/12(土) 09:47:53 ID:CNl0ysJ2
あれ、左が100で良かった
すみません、>>839は無しで
スレ汚し失礼しました
841名無しさんの野望:2011/02/12(土) 11:10:17 ID:/a1y3NrL
>>838
目(視線の向き+瞼)のEnumでの制御は2つの癖があり、理解しないと意図したように動かず苦戦します。
私の理解する範囲でですが、これらを押さえれば大体は意図したようになると思います。
1. HeadTrackingと瞬きが有効になっていると目の制御は実質出来ないのでこれを解除する必要がある
2. 視線の向きについては複数のパラメータを設定しないと表情に反映されない

瞼だけに限れば1だけ解決すればよかったと記憶してるので解除の仕方を記載するとやり方は2つで、
 方法1.対象のキャラに一旦Setunconscious 1をかけて続けてSetunconscious 0をかける
 方法2.Oblivion.iniのヘッドトラッキングをbDisableHeadTrackingを1にしてDisableにする
     +瞬きをfBlinkDelayMinとfBlinkDelayMaxの数値を大きくして瞬きが起きないようにする
というものが自分の知る方法です。

方法2がOblivionの正しい仕様だと思うのですが、制約が厳しく面倒な要素が多いので
特別な事情が無ければお手軽な手段として方法1一択だと思います。
詳しいところはこの作成支援スレPart4の過去ログ856〜890に関連情報があります。
すぐに試したい場合はコンソールから対象NPCにSetunconscious 1⇒Setunconscious 0すると表情が自動では動かなくなるので
あとはAFANコマンド+Enum指定で表情が意図した通りになるか確認出来ます。
一通り試してからkfファイルのTextKeyを編集するのがラクチンです。

もしスクリプトから制御する場合は、モーション再生の前にSetUnconscious 1とSetUnconscious 0を入れます。
なお、この状態になるとそのままだとヘッドトラッキングが無効なままなので元に戻したい場合は
何か適当な装備を着脱させる必要があります(最近のOBSEだとUpdate3dでもOK)。スクリプトから使うならその処理も事後に必要です。

最後に、表情制御を詳しく書いた方のブログもあるのでそちらを見ると理解が早いかもしれません
「Oblivionでの表情の作り方」をキーに検索してみて下さい
842名無しさんの野望:2011/02/12(土) 13:48:02 ID:CNl0ysJ2
>>841
詳細なご解説ありがとうございました!
もっと簡単なのかと思っていたら
目を瞑らせるのも結構手間なのですね
大変参考になりました、感謝です
ご紹介いただいたページもみにいってみます
843名無しさんの野望:2011/02/12(土) 21:47:54 ID:/a1y3NrL
>>842
細かく書いてしまったのでアレですが、単にSS撮影するだけ、かつ目を瞑らせるだけでよいなら
コンソールからコマンド1つで大丈夫です。
kfファイルが動きの無いポーズMODなどならそれを再生してから、最初の
 SetUnconscious 1
で目をつむったままになり意識がなくなります。

ただ、これだと目を瞑った状態というか意識もなく表情も無くなって寝ているみたいになってしまいます。
もうちょっと表情をつけたりNPCに何かさせたければ、一旦
 SetUnconscious 0
で意識をもどして、そこからAFAN(AddFaceAnimNote)コマンドで
 AFAN "Happy 0.8 0.1 30 0.1"
 AFAN "BlinkLeft 1 0.1 30 0.1"
 AFAN "BlinkRight 1 0.1 30 0.1"
とかで表情を付けた状態で目を閉じさせることが出来ます。
844名無しさんの野望:2011/02/13(日) 12:29:45 ID:k0YsjZYo
経験の無さから手が尽きてしまったのでこの方面に強い方のお力を借りたく。ほとんど望み薄だと思うのですが…
なお、限定された状況での話になるために質問の前に背景を書きますがご了承ください。

背景:
  自身の作成しているMODでほとんどのNPC(Dead/Disabledなど除く)に対して
  Update3dを実行したいという動機があります。但し、Update3d単体の問題があることが分かりました。

  Oblivionバニラのチュートリアルクエスト「Charactergen」クエストについて、
  進行に関わるNPCの一人(refid:000176FF,baseは000000176FFのCGMythicDawnAssassin05)について、
  このNPCの配置されたセル(帝国地下:00022288)に入ってすぐにOBSEのコマンド、Update3d(コンソール/スクリプトどちらでも良い)をかけると
  該当NPCのAIが正しく動作しなくなるのか、本来stage 34でこのNPCが動き出すはずが、手動でEVPするまで動かなくなります。

  このNPCは本来QuestStage 34未満ではAI:CGAssassinsAmbushBWaitを、34以上ではAI:CGAssassinsAmbushB1を実行します。
  コンソールコマンドで確認する限りUpdate3d後も34未満では実行AIは正しく、
  一方、34に移った時点でAI:FF001205が割り当てられているため、Update3d後のAI評価がおかしいように見えています

(文字列長エラーになったので質問は>>845に記載します)
845名無しさんの野望:2011/02/13(日) 12:30:45 ID:k0YsjZYo
(>>844から続き)
質問:
  5つあります。1以外は回答得られないかもとは思っています。

  1.上記背景で出てくるAI:FF001205とはどういう時に付与されるパッケージか?
   (基本的な質問ですみません、環境により番号など変わる場合、
    FFで始まる一時的パッケージの元ネタはどこから作られどういう時に割り当てられるのかの一般論でよいので教えて下さい)。

  2.このNPCについて、上記背景のようにセル侵入後にUpdate3dを実行した後でなお
   Stage34に達した時点で本来のAI:CGAssassinsAmbushB1を選択可能にさせる「事前対策」はあるか?
   (Update3d実行後に何らかの事前準備をすることで再びAI評価が正しくなるように出来るか?)

  3.2のような特定NPCへの個別処理でなく汎用的な処理にするために、このようなNPC或いはAIを事前に見分ける(フィルタする)方法があるか?

  4.3のフィルタについて正確な法則が無い場合、こうしたNPCを「概ね」弾く手段はあるか?
   現状は相当乱暴な考えですがLowLevelProcessingアリでScriptが付与されたNPCはクエストに関連している可能性が
   比較的「高いかも」とみなして区別することを考えていますが根拠が薄くかつ誤検出が多いフィルタなので、より確度の高い見分け方が無いか探しています

  5.2については事前対処が不可でも正しくないAIが選択されたことが分かればEVPなどの「事後対処」で救済出来る可能性がある。
   正しくないAIが選択されたことを概ね検出する(多少誤検出があってもOK)方法はあるか?

以上、ご回答お待ちしてます
846名無しさんの野望:2011/02/13(日) 14:34:15 ID:1HndMQ6i
システムの瞬き抑止の話ですが。

少し試してみたのですが、Blinkを常時BuildupTime(パラメータ二つ目)の状態に
するとシステムの瞬きを抑制出来るかもです。

具体的には例えば、

0.5000 ENUM: Face BlinkLeft 1.00 0.6 1 0
0.5000 ENUM: Face BlinkRight 1.00 0.6 1 0
1.0000 ENUM: Face BlinkLeft 0.99 0.6 1 0
1.0000 ENUM: Face BlinkRight 0.99 0.6 1 0
:以下同様に1.0と0.99を交互に

みたいに、0.5秒毎にBuildupが0.6秒のキーを実行すると瞼がずっと閉じたままになる
みたいです。
(閉じ具合が1.0と0.99の二種類あるのは、その値が同じだと動作がスキップされる
ので値を変えて交互に実行する必要が)

この理由を予想するに多分、常時Buildup状態なのでシステムのBlinkが重なっても
何も起きない様に見える、またはシステムのBlinkはキャンセルされる、とか
そんなん雰囲気が。あくまで予想ですが。

また現状での重大な欠点としては、最初瞼が閉じるタイミングが左右で一致しない
場合があったりで動作が不確実です。
また同じ部位のBuildup時間を常時重ねてもシステム上問題が無いかは謎なので
その辺の充分なテストが必要に。多分。

とりあえずネタレベルの話として。
847名無しさんの野望:2011/02/13(日) 14:48:59 ID:1HndMQ6i
>>844
お話の主旨は、Update3DするとAIが変になる、という事だと思うのですが、
うちではNewGame→coc ImperialDungeon02→そのAssassinにUpdate3D→
setstage charactergen 34、とするとそのAssassinは即戦闘状態になりました。
背後のドアにぶつかってそこで足踏みしますけど。

1は、最上位2桁がffのAIって多分CombatのAIです。下6桁の値が小さいのが気に
なりますが。
NewGameでやってますよね?
あとシステム変更系のMODを入れたまま作業してたりします?

それとUpdate3Dの代わりにそのアクターをコンソールでDisable→Enableするとどう
なるかとか。これってUpdate3Dと意味的には同じ事です。

まずはとにかく、その状況は本当に変なのか、変だとしたら本当にUpdate3Dに起因
するのかの切り分けが必要そうな気も。対策だけを急がずに。

もしUpdate3Dに問題があるのならそれ自体が大問題な訳ですし。
また、OBSEの挙動を問題にするならVerを教えてもらえると助かるですよ。

あと、そもそも全NPCにUpdate3Dが必要な理由って何ですか?
いや別に秘密ならいいんですけど。
なんかUpdate3Dでなくてもよさそうな予感もするので。
848名無しさんの野望:2011/02/13(日) 16:08:00 ID:k0YsjZYo
>>847
有難うございます。あなたの回答が頂けるのを期待してました。
全NPCにUpdate3dが必要な理由は今作成しているCCAOという私のMODのためです。
簡単に申し上げると、NPCについて装備している武器を元にその武器のためのモーションを割り当てるために
SetModlePathによるSkeleton変更かToggleSpecialAnimsによるSpecialanimsの追加をするのが目的なのですが
それを即時にNPCに反映させる手段としてUpdate3dを必要としています。
厳密には全NPCで無くてもよいのですが、出来るだけ多くのNPCの動きを変えたくて周囲2セルのNPCを一定頻度で検出しています。

1は了解です、確かにPackageもProcedureもCOMBATになっていました。
GameはNewGameでやっています。
あと、OBSEは0020b5です。
コンソールからのDisable/Enableだと事象は再現しませんでした。
ただ、おかしな動きと言うかDisableにしたのにそのNPCが消えないのが分かりました。
なんだこれは?
とても奇妙なんですが、DisableしてもこのNPCが消えない事象が起きています。あれ?他は普通に効いてるけどこれだけおかしいな。

システム変更系のMODは若干入っています。大きいものではOblivion Stutter Removerです。
OSRを多くのユーザが入れていてかつこれを入れてる場合のみ起きる問題の報告が複数あったため入れっぱなしでDebugしてます。
ただ、このDisableの振る舞いを見る限りだと何か環境がおかしい気がしてきました。
一旦自分のMODだけの環境を作って確認してみます。

仰る通り一度環境を簡素にして再質問します。多分そうかからないと思うのでまた状況をここに書きますね。
849名無しさんの野望:2011/02/13(日) 18:07:29 ID:1HndMQ6i
>>848
あ、申し訳無い、ImperialDungeon02のAssassin達って特定の一人をParentに指定
してあるので個別にDisableは出来ないかもです。
850名無しさんの野望:2011/02/13(日) 18:19:48 ID:84x0CqOW
複数の魔法が収録されたMODから一つの魔法だけ欲しいんだけど、その魔法で使用しているスクリプトやエフェクトなどを抽出してくれる
ツールって何かないかな?
851名無しさんの野望:2011/02/13(日) 21:30:50 ID:k0YsjZYo
>>849
すぐ試すとか書いておきながら環境準備中に寝てしまってました。

で、GoTY仕様の最小セット(knights.esp+DLCShiveringisles.esp)+Oblivion.exeは日本語パッチ適用+OBSE0020b5で試してみたのですが
やはり挙動は変わらず、Ref:000176ffについてはUpdate3d実行後にStageが34まで達しても動き出しませんでした。
クリーンインストールではないですがOBMMからDeactive+CleanALLでMDOを全て外しBushed patch.esp等も無効ですので
OBSEを除けば環境的にバニラになっていると思います(データももちろんNEWGAMEです)。
一応、OBSEのPlug-inにConScribeとCSE用のDLLが入っていますが流石にこれは今回のケースとは無関係と思いそのままにしてあります。

そちらだと同じ問題は起きないんですよね?だとするとまだ何か差分があるのか、ん〜。

いずれにせよ自環境だけでなく他の方からも同じ事象が出ている(というより調査の切っ掛けが他の方の申告だったりする)ので
割と最小セットに等しい環境でも起きうる問題なのだと考えると、起きる前の対処か回避、起きたあとの対策の3つのいずれかを検討したいと考えています。
本件について分かるところがあれば引き続きコメント頂きたく、宜しくお願いします。
852名無しさんの野望:2011/02/14(月) 00:26:18 ID:uPIGi725
>>843
続けて有り難うございました!
ただ今回は、SSではなくモーションの方で
またできればプレイヤーが自動的に手を加えなくても
目を瞑って欲しいので
>>841で教えて下さった方で試そうかと思います

>>846
同じ方でしょうか
詳細な追加検証ありがとうございました!
しかも、私の用途だと、今回ご教示いただいたやり方のほうが
都合がいいぐらいです!
これまた大変参考になりました、ありがとうございます!
こちらも試してみます
853名無しさんの野望:2011/02/14(月) 05:41:00 ID:uPIn4FN/
ビームサーベル等の透過かつ発光する物体の表示についてお伺いしたく参上しました。
現在、ビームシールドを作っておりましてとりあえずゲーム内で表示できる状態まで辿り着くことができたのですが、表示に問題がございます。

↓の画像の状態が意図どおりの表示なのですが
http://shy.jsphr.net/upload/img/ups23160.jpg

実際は↓の画像
http://shy.jsphr.net/upload/img/ups23159.jpg
が10秒表示された後、一瞬のみ一枚目の正しい画像の状態になるというループを延々と繰り返していて困っております。

インベントリでは↓のように問題なく表示されております。
http://shy.jsphr.net/upload/img/ups23161.jpg

作るときの参考にしたkz氏のMagicShieldでも同様の問題が発生していたので、これはOblivionの仕様なのでしょうか?
もし、解決策がありましたら御教授ください。

↓MeshとTextureです
http://shy.jsphr.net/upload/img/ups23162.7z
854名無しさんの野望:2011/02/14(月) 11:26:51 ID:vz+tbLiU
>>851
え、動かないとな。うーん、なんでしょうね。
Update3D単体で他の方も問題が出てる、て事ならやっぱ何か環境に敏感な部分が
あるんですかね。

Update3Dってそのフレーム内で処理が完了せずに複数フレームに跨る処理なので
確かに元々構造的な問題が起きる可能性がある関数だとは思うのですが。

Update3Dするとアクターは点滅すると思うのですが、消えているタイミングで
例えばStartCombatしても戦闘は始まらなかったりしますし。

完了までの数フレームの間は他からの重要な処理が無効になる可能性が常にあるので、
関数単体での問題以外にその辺にも留意が必要かもです。

でもそれって特にUpdate3Dに限らず、Disable→自前でウエイト→Enableでも同じ
ではあるのですが。

ついでにDisable/Enableとの細かな挙動の違いも確認しとくといいかもです。
例えばその辺のNPCをStartCombat PlayerしてDisable/EnableとUpdate3Dでどう挙動
が違うかを見てみたり、NPC同士の会話中に試してみたり。
855名無しさんの野望:2011/02/14(月) 11:36:32 ID:vz+tbLiU
>>853
ビーム部がStencilでDRAW_BOTH指定なのにメッシュは表裏両面あるので二重に描画
されているのが原因な気が。

ビーム部のNiTriStrips→PropertyのNiStencilPropertyを取るか、メッシュを片面
一枚だけにすれば多分OKです。恐らく。
856名無しさんの野望:2011/02/14(月) 12:23:45 ID:xdGozw0X
>>854
回答ありがとうございます。
もしかすると詳細の記載が足りず正しく伝わっていないかもしれないので追記させて頂きます。

・Update3d自体はStageが34になる十分前に実行済み
・その後クエストを手動進行させてStageが34に至ったところで事象発生
 ※セル侵入後コンソールからUpdate3dを実行し、以降は手動でクエスト進行して
  動作を確認(Stage34到達はコンソールから確認)しているので間に1分ほど間あり、点滅終了も目視確認済み

なので、Update3d実行直後の間に巻き込まれての問題とは直接的な関係は見えにくい状況ではあります。
Update3d実行時点もこのNPCはAmbushしてるとこなので動きはなく(idle.kf実行中)、
実行前後でPackage/Procedure/playgroupいずれも変わりはない状態です。

今投稿を見返していて気付いたのですが、もしかしてこちらがリファレンスを伝え間違ってたり…はないですよね
該当のアサシンは扉に向かうことは無い位置にいるので少し気になりました。
>setstage charactergen 34、とするとそのAssassinは即戦闘状態になりました。
>背後のドアにぶつかってそこで足踏みしますけど。
該当のリファレンスは000176FFで皇帝達が通る通路の左側に位置する2階というか
上のあたり、皇帝達の左死角にあたる位置にいるやつで本来は飛び降りて襲ってくる感じです。
或いは足踏みの意味は2階にとどまったままになり降りてこないという意味でしょうか?
もしそうであればこちらで起きている事象もそうなので、私の表現が悪いだけで同じ事象が起きているのかも

とりあえずこちらでは事実確認出来てない部分としてAIの遷移がどうなってるか正しく把握出来てないことに気付いたので
OnPackageChangeの動作確認を兼ねて該当NPCにイベントハンドラをセットして様子を見てみることにします。

あと、もしSさんがOBSE0020b4以前をお使いならVerを教えて頂いてもいいでしょうか?
同じVerで問題が軽減されるか確認してみようと思います
(自分のMODの推奨Verをそこに合わせたり、苦し紛れではありますが)
857名無しさんの野望:2011/02/14(月) 13:13:52 ID:g/QgQ0FW
A魔法でプレイヤーにBトークンを付与する
Bトークンスクリプトは付与初期にCクエストを開始し、removemeする直前にCクエストをSTOPする

Aクエストが動作している間は、当該セルにいて
且つ、Bマーカー(REF)から一定距離以内にいるNPC(actor)は
スクリプトで指定された効果を受ける

以上の流れにしたいのですが、クエスト内でこういった感じに
近くにいるNPCを無差別に指定するには
ref meなどに対し、何をgetして指定すればいいのでしょうか?
それともこういった流れは、クエストでは無理なのでしょうか?
宜しくお願いします


REFつきのCトリガーゾーンをダミーセルに横敷きして
クエスト開始でREFマーカーにmovetoさせ
終了時に元のダミーセルに戻すというのも考えましたが
movetoで出てくる位置ってわりといい加減そうだったり
スマートではなさそうなので、できれば上記でいきたいのですが……
858名無しさんの野望:2011/02/14(月) 13:47:03 ID:xdGozw0X
>>857
お書きになった内容だとクエストかどうかはあまり意識する必要が無い
(プレイヤーにアイテムを与えてそのアイテムのObjectScriptが処理する)ように思いました。
魔法開始がクエスト開始とアイテム付与を行い、また魔法終了ないし別のトリガがクエスト停止とアイテム剥奪をするとして
その間の処理自体はアイテムに付与されたObjectScriptがやるのであれば、そのObjectScriptの書き方次第になります。

その中で特に困っておられるのが
マーカーから距離 n にあるNPCを全て拾い上げる方法、ということであってるでしょうか?
その場合は、OBSEの使用がOKな状況ならGetFirstRef/GetNextRef/Whileを使って実現出来ます。
以下のようなループを書いて、周囲1セル内にいるNPCを順々にピックアップしていきます。

 let npc := GetFirstRef 35 1
 While( npc )
  if ( npc.GetDistance マーカー < 指定距離 )
   そのNPCに行いたい処理
  EndIf
  let npc := GetNextRef
 Loop
みたいな感じです。
詳しくはCSWikiやOBSEコマンドリファレンスをGetFirstRefで検索してみて下さい。
859名無しさんの野望:2011/02/14(月) 13:47:19 ID:TMhs0GVg
****_n.ddsというのがノーマルマップというのは分かるのですが、****_g.ddsというのは何なのでしょうか?
860名無しさんの野望:2011/02/14(月) 13:48:43 ID:FgK50VSO
グロウマップ
861名無しさんの野望:2011/02/14(月) 17:12:52 ID:xdGozw0X
ん〜、AIの遷移を手繰ってみたんですがAI自体の切り替わりは行われていて
stage 34で反応すべきAIも一度動いてるんですがそのあとFFで始まるAIに変わるも
皇帝達に襲いかからずその場で動かなくなるという挙動でした。
AIが正しく切り替わらないというよりAIは切り替わっているが期待した動作をしないというのが正しいようです。
この状態からEVPすると皇帝達に襲いかかるんですが、このハマり状態になる前にEVPを打ってもハマりが防げるわけではないようで
これだと汎用的な対処は難しそうです。

やりたくないけどID指定でこのNPCだけ弾くかなぁ。根本的には何の対処にもなってないけど…
862名無しさんの野望
>>861
あー、真面目に最初から通しでStage34までやったら仰る状況が再現しました。

CGAssassin05Refが降りて来ずにその場で素手構えでジリジリしている状態ですよね。
適当な事を言って申し訳無かったです。

OBSEは0019(初版)と0020b5両方で確認しました。

また、CGAssassin05Ref(176ff)だけでなく、皇帝御一行様の進行方向ドアの中にいる
CGAssassin06Ref(17708)もUpdate3Dすると武器を使わず素手になったりの妙な挙動に
なるみたいです。多分他のAssassin達も。

で、これはAssassinのAbilityの「AbBoundArmorMaceMD」が怪しい気が。
Update3Dではなく、単にRemoveSpell 3e91bとしても同じ挙動になると思います。

この状態って恐らく武器装備関係の不正な状態か何かな雰囲気なので、それが
リセットされる様な事をすれば解決するかもです。

この場合は例えばコンソールで

update3d→additem 19171 1→removeitem 19171 1
(「1971」はIronDagger、他の武器でも)

としてみたり。復帰の確認をするだけならAddItemだけでも多分。
他にももっと汎用な方法はあるかもです。