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

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

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

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

OBLIVION MOD作成支援/相談スレPart6 (実質7)
http://yuzuru.2ch.net/test/read.cgi/game/1288333470/

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

MODを作れない俺に出来る事はスレ建てだ! キリッ
2名無しさんの野望:2011/02/14(月) 21:04:18 ID:0/PD56+k
>>1 スレ建て乙です。ありがとう
3名無しさんの野望:2011/02/14(月) 21:07:37 ID:0/PD56+k
横から失礼
そういえば、CCAO の動作確認中に以下の現象を目撃したことを思い出しました

牢から出て最初にアサシンに遭遇した時、アサシンが素手で殴りかかっていまいた
なんで腰にメイスをぶら下げたまま素手で殴ってきてるんだろう?と思って撮影したのが以下のSS
http://shy.jsphr.net/upload/img/ups23166.jpg

ついでに報告しておこうと思っていたのですが、すっかり失念してました。申し訳ない
4名無しさんの野望:2011/02/14(月) 22:07:38 ID:xdGozw0X
容量オーバーでのスレッド移行につきこちらに。

前スレッド>>862
!!
なるほど、確かに素手ですねこの人達。プレイしてて見落としてました。流石!
装備着脱で状態が復旧出来るのがこちらでもコンソールから確認出来たので
これをスクリプトからどう対処するか考えてみます。
最悪はこの手の武器召喚系をフィルタするとか色々対策が打てそうです。
ありがとうございます!!

>>3
ですね、見落としてました。
このバグを潰すか回避したらVer.0952としてリリースすべく準備を進めています。
あと、Modderの方に共有しておいた方がいい情報かもしれないのでここに書かせて頂きます。

情報:
私のMODはパワーアタックの個別適用をやるためにVanillaのkfファイルをBSAから取り出して各々コピーする必要があります。
ただ、この作業を利用者に課すのは敷居があがるのでVanillaのkfを出来れば自分のMODに同梱したいと思っていましたが
その行為はBethesdaのファイルの無断配布とも取れるので、少なくともTESNのコミュニティではこれはポリシーに反しないかが気になっていました。
このたび、TESNのModeratorの一人(bben46氏)にそれをしてよいか確認したところ「OK」の返信を頂けました。
Moderator曰くOblivionのリソースをOblivionに使う場合に限って言えば、
「Any resources included in the vanilla game are ok to use. It would be nearly impossible to make mods without them. :)」
とのことでした(当然、TES3⇒TES4とかそいうのはダメ)。
もし同じようなネタでお悩みの方がいれば、少なくともTESNに関して言えばポリシーは明確なようですので
気になった場合はModeratorの方に伺うとよいかと思います。
5名無しさんの野望:2011/02/14(月) 22:11:39 ID:7M+Am4kn
>>3
武器も召還武器だからその辺が原因なんじゃないのかな
64:2011/02/14(月) 22:12:50 ID:xdGozw0X
>>4
しまった、変な削り方したから文章の繋ぎがおかしい。

上記の「情報」は
『今回自分のMOD作成にあたり、Oblivionのバニラのファイルを自身のMODとして同梱してよいかという問題にぶつかり、
 サイトのModeratorに確認したところ、TESNとしては「OKだ」という回答を得られたので
 TESNにMODファイル公開を考えていて、その際に同じ問題を抱えたことがある人はご参考まで』
というものです。
連レス失礼しました。
7名無しさんの野望:2011/02/14(月) 22:28:31 ID:m+CJUIGX
>>4(前スレ>>858様)
>>以下のようなループを書いて、周囲1セル内にいるNPCを順々にピックアップしていきます。
ご親切に例文までいただき感謝します
ありがとうございました
お陰様でやりたいことに目処が付きそうです


スレ立ても乙です
8名無しさんの野望:2011/02/14(月) 22:57:27 ID:s803nXYb
初めて防具を制作し、ゲーム内で使用できるようにするところまではできました。
しかし、ゲーム内にて制作した防具を装備するとFPSが60前後→20前後まで低下してしまいます。
meshの頂点数は13,596
nifファイルのサイズは、1479kb
ddsファイルのサイズは、1366kb
NiTriStripsは二つ
oblivion装備mod製作チュートリアル_第二版を見ながら作成しました。
初めての制作なので何か見落としがあると思います。
何か思い当たる事があればアドバイスお願いします。
9名無しさんの野望:2011/02/14(月) 23:23:57 ID:m+CJUIGX
光の照り返しの強さや
アルファによる透過
アニメーションする装備
といったあたりも影響すると思います
揺らめく炎のついた装備なんかはファイルが小サイズでも
ゲームでは重かったりしますね
それにしてもそんな極端かは不明ですが

個人的には、同じファイルのウェイトだけを変更したのに
何か失敗したのか、異常に重くなってしまったこともありました
10名無しさんの野望:2011/02/14(月) 23:40:10 ID:s803nXYb
>>9
ddsファイルを真っ白にしても変わらずに重いです。
アルファやアニメーションは使っていないのでウェイトの設定ミスかもしれません。
ウェイトの設定はHGEC素体からウェイトコピーしかしていないのでそれが原因かもしれないです。
ウェイト設定について気をつける事などありますか?
11名無しさんの野望:2011/02/15(火) 00:02:34 ID:xxpYMNEB
私のように、あまり詳しくないのに変にいじるほうが危険で
普通に腕のある人のものを似た装備にコピーするだけなら
そっちの方がずっと安パイかと思います
あまりお力になれず恐縮です
12名無しさんの野望:2011/02/15(火) 00:17:29 ID:0JMZi+7H
前スレ>>855
ありがとうございます。
二重描画という説、検証するためにメッシュを片面のみににしつつ、NiStencilPropertyも取っ払って動かしてみました。
しかし、10秒明るい→一瞬暗くなるのループは直りませんでした。
少なくとも二重描画ではないようです、他を色々弄ってみます。
134:2011/02/15(火) 23:19:04 ID:EvRLFqBa
>>3
解決しました。
新しいCCAOをTESNにアップしましたので使って頂けると有り難いです。

前スレッド>>862
有難うございます。おかげで問題は修正出来たように見えます。
いつも示唆に富む回答でとても助かります。どうもです。
14名無しさんの野望:2011/02/15(火) 23:53:54 ID:exI9YSYm
あるモーションファイルを開いたり、手を加えたりしたい時は。どのソフト使えばいいの?

拡張子は kf です。

Dead00x1.kfというモーションファイルを開きたいんだけど。。。

blender使えばいいらしいけど、blender開いてから全くわからない。
だれか開いたあとの操作おしえてくれ。
15名無しさんの野望:2011/02/16(水) 01:04:10 ID:8YW+Pnkv
スレ立て乙であります。

>>13
おー、行けましたか。良かったです。
16名無しさんの野望:2011/02/16(水) 01:17:55 ID:8YW+Pnkv
>>12
それって多分問題が二つある予感がするですよ。

二重の描画と周期的(多分10秒に一回ぐらい)のそれぞれのチラつきが。恐らく。

まず、二重の描画によるチラつきや妙に明るく膨らんで見えるのは前スレ855の方法で
直ります。
これは別に説とかでなくて。いや多分直ると思うんですけど。
でも必要なのはStencilPropertyを取るかメッシュを片面にするかどちらか一つで、
両方やったら片面表示になって一方からしか見えなくなります。

周期的な方はnifとは関係無い話かもです。

で、確認したいのですが、885の方法を試しても「屋外」のそのSSを撮った場所で状況は
以前と変わらず二枚目SSと全く同じで、やはり周期的に一瞬暗くなる、て事ですか?
念を押しますが、「屋内」ではなく、「屋外」で。

もう一つ、その一枚目の「意図どおり」のSSってどうやって撮ったんです?

で最後に、普通の松明でもその周期的なチラつき的な事が起きるかどうかを屋外と
屋内で確かめてもらえると有り難いのですが。


なんか「屋外」「屋内」としつこいですが。
ひょっとするとこれってシステムのアルファ描画の挙動や環境に関係しているかも
なので、まず問題の状況を明確にしといた方が良さそうな気がして。
17名無しさんの野望:2011/02/16(水) 16:29:43 ID:LiHU8qBy
>>16様 助言ありがとうございます、確認してきました。

> 885の方法を試しても「屋外」のそのSSを撮った場所で状況は
> 以前と変わらず二枚目SSと全く同じで、やはり周期的に一瞬暗くなる、て事ですか?
> 念を押しますが、「屋内」ではなく、「屋外」で。
はい、その通りです。ストップウォッチで計った感じ大体10.1〜10.2秒毎に一瞬暗くなってます。場所は屋外です。
(ついでに屋内でも確認しましたが、やはり同じ周期で暗くなります)

> もう一つ、その一枚目の「意図どおり」のSSってどうやって撮ったんです?
暗くなるタイミング見計らってFrapsのSS撮影キー押してます。
「暗くなった状態」が「自分の意図どおりの表示」だと思ってます。

> で最後に、普通の松明でもその周期的なチラつき的な事が起きるかどうかを屋外と
> 屋内で確かめてもらえると有り難いのですが。
確認してきました、屋外・屋内両方にて松明の炎でも同様のチラつきが発生しました。


確認中に気づいたんですが、一人称だとチラつきは全く発生せず暗いままでした。
http://shy.jsphr.net/upload/img/ups23235.jpg
18名無しさんの野望:2011/02/16(水) 18:36:05 ID:8YW+Pnkv
>>17
状況了解です。お手数おかけしました。

10秒一回のチラつきってシステムの挙動だと思うのですが、それってあまり話題に
なっていなくて条件や再現性が謎なので、それは「仕様」だ、とは言い切れなかったり
します。でも多分それを仕様と言えばそうなんでしょうけど。

なので現状ではその症状はそれが原因だ、と明確には言えず、その辺の確認が
とにかくまず必要な気がして色々要求してしまいました。ご容赦を。

で、うちでは屋外ではその挙動は起きないです。

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

二重描画を直すと屋外ではSSの上の状態になってずっとそのままで、屋内だと
SS中央の明るい状態になって10秒一回の挙動になります。

松明も同じです。屋外だと昼夜を問わず常時ボーっと昼行灯みたいで、室内に入ると
明るくなって10秒一回の挙動が起きます。

また一/三人称は屋外だと変化は無く、室内だと三人称時は明るくて一人称で普通に
なります。松明も同じです。

うーん、何に起因するんでしょうね、そちらとの挙動の違いは。

これ事例が少ないんで他の方もお時間ありましたら屋内/外での松明の明るさを
見てもらえると有り難いです。
松明を持って「s1st」で一/三人称モデルを同時に出すと描画状態の比較が簡単に
出来ると思います(SS下の状態)。
19名無しさんの野望:2011/02/16(水) 18:37:09 ID:8YW+Pnkv
で、その対策なのですが、テクスチャに_n.ddsがあると10秒一回の挙動は起きずに
常時暗い(正常)な状態に出来るかもです。

但し、_n.ddsがあるとNiFlipControllerが動かなくなってテクスチャアニメが
出来なくなります。
なのでテクスチャアニメの代わりにObject/Morphアニメでなんとかする、みたいな
手間のかかる対策になりそうな気が。
その辺実際にやってみないとなんともなのですが。

またこの10秒一回の挙動はテクスチャアニメとは特に関係無く、単にアルファを
使っていて_n.ddsが無い場合に起きるみたいです。武器も同様みたいです。
20名無しさんの野望:2011/02/17(木) 02:51:30 ID:2Q+3yPel
CSやコンソールから一度買ってしまった家の家具を
削除するにはどうしたら良いですか?
21名無しさんの野望:2011/02/17(木) 03:02:39 ID:DpUMIIwQ
CSなら削除
コンソールならdisable
22名無しさんの野望:2011/02/17(木) 03:23:23 ID:2Q+3yPel
>>21
ありがとうございました。
23名無しさんの野望:2011/02/17(木) 07:54:15 ID:DpUMIIwQ
すみません、トピック関連の質問なんですが
プレイヤーがあるNPCに話しかけたときに表示される会話(GREETING?)をクエスト関係無しに表示させるにはどのようにすれば良いのでしょうか?
あるクエストを進行中で、そのクエストのステージに関連付けた場合には上手くNPCが喋るのですが、それ以外の場合(クエスト関係無しのいつもする会話を、GetisIDで指定)では上手くいきません。
genericに追加するのかな?と思い試しても無理でした。どのように設定すれば、NPCに話しかけたときに特定のGREETINGを返すようになるのでしょうか。
24名無しさんの野望:2011/02/17(木) 11:53:58 ID:iXFWDZIg
的外れな回答だったらごめん
>>23
トピックを追加したクエストは動いてる?
クエストを止めたり完了した状態だといくら条件指定しても喋ってくれない
進行してるクエストとは別に会話専用のクエストを作ってみてはどうでしょ?
25名無しさんの野望:2011/02/17(木) 15:20:41 ID:u34wgmB9
会話時にリストから選択するTopicとGREETINGの関係とかその辺の概念的な話
なんじゃないですかね。

>>23
GREETINGってシステムデフォの一つのTopicです。
PCがNPCに話し掛けた時はTopicとしてGREETINGが自動的に選択された事になる、
と考えると分かり易いかもです。

なので指定方法は通常のTopicと同じで、「GREETING」という既にあるTopicにInfoを
追加する、という事に。

具体的には、その作ったクエのTopicリストに右クリ「Add Topoic」で「GREETING」を
選んで追加→Infoに適当な応答を書いて→ConditionsにGetIsIDでそのNPCの判定を
付ければInfoの追加自体はそれでOKです。必要なら他の条件も適宜。

あとはそのNPCのDialogueボタンでその作ったInfoがGREETINGのInfo群の中で適切な
位置にあるか優先順位の確認を。
GREETINGは一つのTopicですが、TopicのInfoは複数のクエから指定する事が出来ます。
なのでそれらの間での判定順を決めるための優先順位(=そのInfoが指定されたクエの
Priority)があります。

とりあえずそのクエのPriorityを「50(仮)」ぐらいにしておけばCrimeのInfo判定の
次にそのInfoが来て大体いいかんじに。

これでPCが普通の状況でそのNPCに話し掛ければそのInfoが出ると思います。
2617:2011/02/17(木) 15:49:47 ID:wfkqB4au
>>19さん サンクス!
Morphアニメのチュートリアル、SHYで発見したのでそれを参考に作ってみます。
27名無しさんの野望:2011/02/17(木) 16:01:36 ID:BZYMs8qk

OBLIVION MOD作成支援/相談スレPart2で
>>695さんのHightmapEditでのColorMaskのカスタマイズを参考にしたいのですが
画像がリンク切れ?なのでもし分る方が居ましたらアドバイスをいただけないでしょうか
28名無しさんの野望:2011/02/17(木) 16:43:22 ID:u34wgmB9
>>27
ColorMaskの写ったSSって手持ちの中ではこれだけなのでひょっとすると
これだったのかも。

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

これって4096の水面位置と4097以上の陸地とで色を変えて水陸の境界をはっきり
させる、とかなんかそんな事をしていた覚えがかすかに。

ハマってる、とか言ったのに当時何をしていたのかもう忘れてたりします。
29名無しさんの野望:2011/02/17(木) 17:08:43 ID:u34wgmB9
>>26
おー、Morphいきますか。
どんなかんじになるんでしょうね。出来上がりが楽しみです。
30名無しさんの野望:2011/02/17(木) 18:46:29 ID:pAYti6nR
ワールドマップに関する質問です
ワイド画面の問題でどうしても下のほうが隠れてしまい
どうしても全景を見ることが出来ません
TES4EDITで下、または全体に余白をつくり全景がみられるようにしたいのですが
どのように修正すれば可能でしょうか?
ttp://shy.jsphr.net/upload/img/ups23276.jpg
よろしくお願いします。
31名無しさんの野望:2011/02/17(木) 18:56:12 ID:DpUMIIwQ
>>24-25
ありがとうございます。
思うように動かなかった原因が、Priorityが0だった・クエストの開始条件を空欄にしてた、ってことだったみたいです。
色々説明不足ですいません。
32名無しさんの野望:2011/02/17(木) 19:33:04 ID:BZYMs8qk
>>28
ありがとうございます!助かりました!
33名無しさんの野望:2011/02/17(木) 20:28:23 ID:60kV+bn9
>>30
これはTES4EDITの設定ではなく使用しているUIのxmlの問題かもしれません。
Data/menu/main/map_menu.xmlを確認してみてください。
ファイルがない場合はOblivion - Misc.bsaにパックされているのでアンパックして
上記ディレクトリの位置に置いておきましょう。
Vanillaなら1155行、BTMODだと1194行、MajorJimsだと1301行辺りに<user13>と言うタグがあります。
この部分はマップの上下スクロールの設定なのですが、更にそのタグの中の<min>タグの中で
マップの高さ(height)から引いている値が何故か幅の半分の値(_half_width)になっています。
ですのでまずこれを修正。

<sub src="parent()" trait="_half_width"/> → <sub src="parent()" trait="_half_height"/>

更に修正した行に以下の文を追加。

<sub> 218 </sub>

この218と言う値は自分の環境でちょうどいい値だったので色々と書き換えて試行錯誤してみてください。
34名無しさんの野望:2011/02/17(木) 20:33:59 ID:pAYti6nR
>>33
レスありがとうございます
一応tes4editで解決できました
ttp://shy.jsphr.net/upload/img/ups23286.jpg

少しコレで不具合が無いかためしてみます。
ありがとうございました
35名無しさんの野望:2011/02/17(木) 20:56:03 ID:u34wgmB9
解決したみたいですが。
WorldMapの可視領域を下に広げるなら、UsableDimentionsのYとSECellYを増やせば
行けると思います。
増やす値は1セル分あたり前者が「17.27(2055/119)」ぐらい、後者は「-1」です。多分。
36名無しさんの野望:2011/02/17(木) 21:08:32 ID:u34wgmB9
あ、「可視領域」て言っちゃうと意味が違いますね。「スクロール出来る領域」です。
37名無しさんの野望:2011/02/17(木) 22:55:04 ID:sBo7hsFo
ゲート消す魔法あったけど改変可のようなので、disableするんじゃなくてゲートの残骸を
木のモデルと入れ替えて植林modとか面白そうだと思ったので
CSヘルプ読んでるけど魔法が当たったオブジェクトを他のメッシュに入れ替えるって
どういうふうにしたらいいのかな
38名無しさんの野望:2011/02/17(木) 22:58:25 ID:hzl0u5TN
>>37
オブリでは最初から設置しておいて条件が揃うまで非表示、
条件が揃ったら表示っていうのが一般的かな
39名無しさんの野望:2011/02/17(木) 22:59:27 ID:hzl0u5TN
別の場所に置いといてmovetoとか
40名無しさんの野望:2011/02/17(木) 23:00:51 ID:sBo7hsFo
>>38
なるほど、参考にします。どうもありがとう
41名無しさんの野望:2011/02/17(木) 23:19:49 ID:4SEBzAF9
>>37
ゲートが朽ちて
蔦や木に覆われてる、なんてのも
雰囲気よさげだとおもいますた
42名無しさんの野望:2011/02/18(金) 07:55:51 ID:8bYRx5rs
最近オブリ始めた人なんですけど、
MOD作りたくて先輩方に相談したい事があります。

Lovers関連で大変申し訳ないのですが
僕の知る限りではLoversのH行為は

H条件成立→H開始→フィニッシュ→H余韻→H終了

基本的な流れはこんな感じだと思うのですが
変態紳士な僕としては連続Hの機能を追加したいのです。
具体的には、フィニッシュ後ナニを抜かず(H余韻前)に選択式か別の形で
再度H開始の機能を追加という感じです。

台詞等細かい事はひとまず置いといて
相談とは上記の連続H機能は技術的可能か否かという所です。
今はまだアイデアだけの段階ですが、可能なら
初になりますがMOD製作やってみようかと思います。

Loversに詳しい方がいらっしゃいましたらお手数ですが返答お願い致します。
4342:2011/02/18(金) 08:42:40 ID:8bYRx5rs
連続投稿スミマセン、追記です。

念の為、上記の連続Hというのは対象を
“まわす”んじゃなくて“一人が独占”してHをし続けるという意味です。
とりあえずはプレイヤーが関連したHのみを対象にしたいと思います。

あと僕のMOD探しが甘くて既出のMODだった場合「既にあるよ」と一言下さいませ。
また別のアイデア考えて見ます。
連続投稿失礼しました m(_ _)m
44名無しさんの野望:2011/02/18(金) 10:05:19 ID:4zIzsVSl
ゲートって既にParentのDisable/Enableで出現前/後の状態を管理しているので、
そこに木が生えた、みたいな三つ目の状態を追加するのはちょっと大変かもです。

その魔法MODの改変と言うよりは多分全くの別物になりそうな気が。

で、「メッシュを入れ替える」ってなんか単純で万事解決に見えますが、変更は他の
ゲート全部に影響したり、変更の保存もされなかったりでその辺の管理を全部自前で
する必要があって実はこの場合非常に大変になるかもです。

正攻法で行くなら、>>38さん仰る様に予め各ゲートに木が生えた状態をCSで配置して、
それらを適当なマーカーにParent指定、マーカーはInitialyDisableにし、ゲーム中に
魔法でそれをEnable、みたいなかんじに。多分。

あと、自分専用でテスト目的限定なら、そのMagicEffectScriptで単に
「PlaceAtMe <適当なTree>」とすれば木がポンと生えます。

ゲートの数って有限なんで、重ね掛け等での無限増殖を確実に防止出来るのなら
PlaceAtMeもアリかもなのですが。特にお薦めはしないですけど。
45名無しさんの野望:2011/02/18(金) 14:52:55 ID:Qg6sWsjx
mod製作とかまったくわからないんすけどこのスレで聞けって言われたのでこちらで質問させてください。
BathingMod_Baseというお風呂mod使っているのですが時間経過でお風呂に何日入ってないとか出だして6日か7日入ってない状態になると魔法すら使えなくなったような気がします
プレイ中頻繁に放置するのでこれは困るのですがお風呂modもできれば使いたい。ということで
CS起動してBathingMod_Base.esmを読み込み、スクリプト編集でBMSmellyControlAbScriptを開くと
ttp://shy.jsphr.net/upload/img/ups23316.jpg
こんな感じでしたので(shyではtxtのアップができなかったので画像ですいません)
始まりを

Scriptname BMSmellyControlAbScript

;デフォルト値
set SmellyControlEnabled to 1

;iniファイルの読み込み
if FileExists "Data\ini\BathingMod_Base.ini"
RunBatchScript "Data\ini\BathingMod_Base.ini"
printC "ini Loaded, Initialized."
else
printC "Default Setting, Initialized."
endif

if (SmellyControlEnabled == 1)
begin ScriptEffectUpdate

if gamedayspassed >= BMSmellyQuest.dayspassednobath

にして、終わりに
endif
end
を記載してみましたがスクリプトの保存時にRunBatchScriptでnot foundが出ます。
どうしたら良いのでしょうか?
46名無しさんの野望:2011/02/18(金) 14:58:12 ID:YZP1RVRp
結局どうしたいの?
ペナをなくしたいのか
匂いシステムをなくしたいのか
日数を先延ばしにしたいのか
47名無しさんの野望:2011/02/18(金) 15:12:49 ID:kpi+5JEw
あたしゃも少し毛が欲しい。。。スマ、お話続けてクダサイ
48名無しさんの野望:2011/02/18(金) 15:17:28 ID:Qg6sWsjx
ペナルティや匂いシステムなくしたいっす
コンソールモードにするの忘れて放置してた時とかがやばすぎるんで・・・
49名無しさんの野望:2011/02/18(金) 15:20:14 ID:Qg6sWsjx
>>48の書き方だと完全に無くしたいって意味になっちゃうので追記します
自分がやろうとしたのはiniでそういったのを有効、無効選べるようにしたかったんす
50名無しさんの野望:2011/02/18(金) 15:23:12 ID:a3rRslOa
>>48

おお、ソレを外すなんて何がしたい




………Mod外せば?
51名無しさんの野望:2011/02/18(金) 20:10:33 ID:5ZRB6NQR
>>45
iniでやるべきことかどうかは知らないけど、iniで切り替えるとしたらこんな感じかな
(現状、ブロックの外に処理を書いてしまっていて、それでエラーが出てるのかな)

iniで設定できるのは、クエスト定義変数だけなので、フラグはクエスト定義変数とする方針で

・クエストBMSmellyQuestに付けられているクエスクリプトを見つけて、フラグを定義
short SmellyControlEnabled

・常時走ってるクエストスクリプトを見つけて、GameModeブロックの先頭あたりで、
 iniファイル読み込み処理をゲームロード時にやらせる
 ゲームロード時1回だけ、という処理は if(GetGameLoaded) - endif で処理を囲めばよい

 そのBMSmellyControlAbScriptが常時走っているのなら、ScriptEffectUpdate「ブロック内」の先頭でやってもいいのかも

・ScriptEffectUpdateブロック内では、BMSSmellyQuest.SmellyControlEnabled の値をチェックして、
 機能を有効にしたり無効にしたりする
 既に臭ってる状態で、無効にしたとき、どう処理すべきかを考える必要がある予感

・iniの中身は、set BMSSmellyQuest.SmellyControlEnabled to 0 のような記述

OBSE関数使ってるので、CSはOBSEから起動すること 念のため
52名無しさんの野望:2011/02/18(金) 21:02:40 ID:yFlO6cn4
txtにコンソールコマンド書いておいて起動時にバッチファイルとして読み込ませたいんだけど
CSでスクリプト書いて保存押したらRunBatchScriptなんてコマンドねーよってダイアログが出ます
他の人のブログとかに書いてあったのでないってことはないと思いますが
何か間違ってるのでしょうか?
53名無しさんの野望:2011/02/19(土) 01:10:10 ID:/746Z34C
>52
まさに>51の一番最後の行。

後、使用しているOBSEのバージョンによって使えるコマンドも違うので
そのあたりはOBSE付属のマニュアルで確認するといいよ。

起動はコマンドプロンプトでOblivionフォルダに移動して
obse_loader -editor
とでも打ち込んで実行するかobse_loaderのショートカット作ってオプションに-editor追加すればOK
5452:2011/02/19(土) 01:13:37 ID:CWg4+FU/
>>53
そういうことか!俺の目が節穴でした。ありがとう
55名無しさんの野望:2011/02/19(土) 09:12:28 ID:uSkt6UVw
またゲート跡に木を生やす話ですが。

予め配置→魔法でEnableの方法を少し試してみましたが普通に行けるみたいです。

その際多分問題になるのは、配置したRefをゲートの状態の影響を受けずに独立して
Disable/Enableが出来て、かつゲートからリンクを辿って見つけられる様にするには
どうするか、という点だと思うのですが、それは例えばDoorリンクの流用で多分。

花や木を配置→Doorオブジェを配置して花や木のParentに→も一つDoorを配置して
Door同士リンク→そのDoorのParentをゲートにすれば、魔法のスクリプトで
GetNthChildRefとGetLinkedDoorでそのゲートに対応する花や木の親(Door)のRefが
取得出来ます。それをEnableで。

この場合スクリプト側はその同じ処理一つで全部行けるので、あとはどれだけ仕込み
作業をするか次第な気が。ゲートって100個ぐらいありますし。

その辺は気合でなんとかするか、別な方法との併せ技で仕込みを減らしたり。
また特にDoorリンクせず、各ゲートとRefの対応をif文なり配列に予め用意しても。



で、いずれにしろそこまでするとなると、恐らく当初の有り物MODのDisable部分の
簡単な書き換え、という見積りとは意味的作業的にもう全くの別物だと思うですよ。

でも単に有り物MOD改造に終始するよりは、それをきっかけにオリジナルな別物を
作る方が色々面白そうな気がしたのでこれはこれで一つの例、という事で。
56名無しさんの野望:2011/02/19(土) 21:52:36.61 ID:LFo8pGp5
ゲートを消すんじゃなくて、ゲートにツタが生えたりして世界が再生してるって感じを
演出するのはすごくいいアイデアだと思います。メインクリア後の再生クエストみたい
なものも出来るかもしれませんね。
5745:2011/02/20(日) 01:05:34.34 ID:2r3eowyN
>>51
せっかくいろいろ教えていただいたのでちょっとやってみたけど保存しようとしたらえらい大量に他のスクリプトでのエラーっぽいのが(end blockうんたらとかっていうのが)出て
自分にはこういうのは向いてないとよくわかりました。
おとなしくmodはずしておきます
58名無しさんの野望:2011/02/20(日) 07:33:17.29 ID:+qxINl/6
>>57
経験がないのに凝った仕様にしたがるのは何故なんだぜ?

どうせ公開するものでもないのなら
匂いシステムを削除した子espを作るか
espが増えるのが嫌なら、バックアップをとって
匂いを削除して、戻したくなったら元のespを使えばいいだけじゃないか?
59名無しさんの野望:2011/02/20(日) 11:30:31.25 ID:EqHllq/y
肌テクスチャ作成についての質問です。
血管胸毛バッキバキのRobert体型もテクスチャをのっぺりさせたら
少年ぽくなるんじゃないか、と思いテクスチャをいじっていたのですが、
何故かボディビルダーみたいにテカテカになってしまいます。

※ショタ注意
ttp://shy.jsphr.net/upload/img/ups23414.jpg

作成にはPhotoshopを使っています。
ノーマルマップの出力設定等に問題があるのかとも色々調べてみたのですが、
解決になりそうな情報が中々見つからず…
先人の方のお知恵をお借りしたいです。どうかご助言をお願いします。
どちらに書き込むべきか迷ったのですが、板違いでしたらすみません。
60名無しさんの野望:2011/02/20(日) 11:36:02.60 ID:ubRzcEz3
見た感じnormalmapのalpha値をもっともっと下げたほうが良さそうです。
そのあたりの加減は改変元のnormalmapのそれを参考に
61名無しさんの野望:2011/02/20(日) 16:43:33.84 ID:jfTHmVgI
>>60
レスありがとうございます。
元の_n.ddsのアルファチャンネルをいじくったら何とか想像通りの物が
作れました。

作り方
@ RenFootmale.ddsの適当な部分を切り取って255x255に拡大、保存
A @をフォトショのNormalmapFilterで加工
B RenFootmale.ddsのアルファチャンネルを塗り潰す
C AをBにコピーしてレイヤー統合→DDSに出力(DXT5ARGB 8bpp interpolated alpha)

※ショタ注意
ttp://shy.jsphr.net/upload/img/ups23431.jpg

乳首も肌色になるので何とかしようかと思いましたが
塗ってる内に複雑な気分になったのでこれで…
62名無しさんの野望:2011/02/21(月) 15:42:34.30 ID:91mysdzz
ネタです。Havokカタパルトの試作です。

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

ネズミ砲MarkIIはこれで行こうと思います。
63名無しさんの野望:2011/02/21(月) 22:32:35.66 ID:2S/8Btyn
質問です
オブジェクトに重心を付けるには、Nifskopeでどのような修正をすればよいのでしょうか
縦長の棒の面積が小さいトコが地面に付いて立つようなイメージです。
解説されていたサイトが閉じてしまって涙目です。ぼすけてください。
64名無しさんの野望:2011/02/21(月) 23:22:53.53 ID:91mysdzz
>>63
bhkRigidBody→Centerを適宜。
ごく細長い棒状のものを立たせるのなら、先端から底面を通る延長線上にCenterを
持ってくればやじろべい的に立たせる事は出来ると思います。
65名無しさんの野望:2011/02/21(月) 23:27:54.25 ID:2S/8Btyn
大感謝です。さっそく試してきます^e^
66名無しさんの野望:2011/02/21(月) 23:50:30.32 ID:2S/8Btyn
>>64
出来ました!
完璧にごろんごろんしてもおきあがりこぶしです
ありがとうございました^o^
67名無しさんの野望:2011/02/22(火) 15:32:50.42 ID:0m9Z7OSo
>>62
これは凄い! 動画大いに笑わせてもらいました。
nifの構造とか全然わからないんですが、これはコリジョンがぶつかって
押し出されて射出されるのでしょうか? かなりの押し出し力に見えます。

カボチャの代わりに鉛玉にして適当な筒の中に仕込めば大砲になりそうですね。
68名無しさんの野望:2011/02/22(火) 18:38:23.98 ID:fAKaX/t2
nifだと、同じテクスチャの部分がグループ化されてるのですが、これを分割することはnifscopeだけでできますか?
それともblenderが必要になるのでしょうか?
69名無しさんの野望:2011/02/22(火) 20:42:35.07 ID:7U9RPK06
>>67
仕組みはほんと見たまんまです。
PlayGroupすると単にアニメでコリジョンが動くだけで、上に載せた物はそれに押し
出されて物理演算の成り行きで飛んで行きます。
どのくらいの強さかは多分コリジョンの動く速さに関係が。

大砲玉みたいなダメージ付きオブジェはTrapで多分。
当たると玉が動いている時は痛いけど静止すれば大丈夫、みたいにするならバニラの
CTrapCaveIn01(落石)やCTrapCaveIn01(丸太)の「fTrap〜、bTrap〜」変数の指定が
恐らく参考に。

また、玉だけなら特にその例みたいなActivateを考慮した複雑なスクリプトは不要で、
例えばバニラのカボチャnifのbhkRigidBody→Layer、Layer_Copyを「OL_TRAP」にして
MiscItem等好きな種類のオブジェに指定し、スクリプトにそのバニラTrapの変数群の
宣言をコピペ、OnLoadブロックを書いてSet文ををコピペすればそれでOKです。

カボチャ弾ならIngredientにすれば拾って普通に食べられたりします。
70名無しさんの野望:2011/02/22(火) 20:52:18.41 ID:7U9RPK06
>>68
「同じテクスチャ部分がグループ化」てのが何の事かよく分からないのですが。

もし複数のメッシュ(NiTriStrips/Shape)が同じテクスチャ(NiTexturingProperty)に
リンクしていて例えばそれを色違いの別なものにしたい、て事ならNifSkopeで
多分出来ます。

本来別パーツであるはずなのにテクスチャが同じでメッシュも一つにまとまっている
のを別々なメッシュに分けたい、て事だとBlender等が必要に。
71名無しさんの野望:2011/02/22(火) 20:57:29.81 ID:7U9RPK06
あとまた全然別なネタですが。

攻撃kfと任意のSpecialIdleのkfを同時に再生し、かつ攻撃の当たり判定を有効に
するのってひょっとすると出来そうな雰囲気が。充分確認はしていませんが。

「PickIdle」の代わりに「Say」で。

具体的には、攻撃kfよりPriorityの高いkfをIdleAnimationsに指定→攻撃kfが再生
されたら→条件を揃えて→PickIdleの代わりに「Say <適当なTopic>」、とすれば
動きはそのSpecialIdleが優先され、かつ攻撃kfのTextKeyの「Hit」も有効に。

でもこれってたった今見つけた挙動なんでほとんど未検証です。

で、一体なんで「Say」なのか、なんでそれでOKなのかは少しややこしそうなので細かな
話はまた。
とりあえず「PickIdle」と「Say」で何が違うかはtdt、sdt 1で左上の状態の比較を。

うまく行けば色々応用出来そうなネタなので未確認ながら取り急ぎ。
というかこれって既出だったりします?
72名無しさんの野望:2011/02/22(火) 21:11:12.89 ID:nB4Izo+4
すみません質問させてください
ttp://shy.jsphr.net/upload/img/ups23517.jpg

上記SSでは戦闘状態の時、Ayleidのダンジョンで押しボタン式の扉の向こうの敵がいます
敵は敵側の部屋についてるボタンを押せないので、追いかけてくる事が出来ません
しかも、扉の隙間から弓でダメージを与えられるので、プレイヤーが低Lvでも倒す事が出来てしまいます

と、これではちょっと心情的にアレなので
A案 敵のAIを改良する(戦闘状態の時、扉の開閉ボタンが敵側にある場合、感知して押す(人間タイプのみ))
B案 扉の隙間から矢を通す事を不可能にする(隙間部分にも当たり判定を付ける)
のような改造をしたいと思っています

ただ、自分はスクリプト部分に関してはまったく無知なので、
B案の方がなんとなく簡単じゃないかと思うのですが、これらはCSなどで改造可能でしょうか?

また素人考えなのですがB案で隙間部分にも当たり判定を付けた場合、
OBGEのDoFで不具合などは大丈夫でしょうか?

よければどなたかアドバイスをお願いします
73名無しさんの野望:2011/02/22(火) 21:58:15.93 ID:7U9RPK06
>>72
それ多分「ARGate01.nif」ですよね。
A案は話がかなりややこしくなりそうな気が。お手軽なのはB案じゃないでしょか。
でもその場合nifの改造になるのでCSでは出来ず、NifSkopeが必要になります。

bhkRigidBody→Layer、Layer_Copyそれぞれが「OL_TRANSPARENT」となっているのを
「OL_ANIMSTATIC」にすれば矢も魔法も透過しなくなります。

また、原理的にはDoFには関係は全く無いと思うのですが、実際のどうなるかは
謎なので結果を教えてもらえると有り難いです。
74名無しさんの野望:2011/02/22(火) 22:05:39.15 ID:nB4Izo+4
>>73
レスありがとうございます!
NifSkopeですね、使った事はないですが早速導入して試してみます
オブジェクトの名前まで教えてくれて大感謝です!
出来たらレポします
75名無しさんの野望:2011/02/22(火) 22:50:09.57 ID:8Hgywmrj
最近始めたのですが、主流というHGECがどうも筋肉質過ぎで苦手です
もう少し肩や首の辺りが日本人ぽい体型のMODはありますでしょうか?
7672:2011/02/22(火) 23:16:47.89 ID:nB4Izo+4
>>73
手順通りで見事に透過しなくなる様になりました!
ttp://shy.jsphr.net/upload/img/ups23521.jpg
ttp://shy.jsphr.net/upload/img/ups23522.jpg

DoFも正常に働いてるみたいです
本当にありがとうございました
これで敵との実力差にヒイヒイ出来ます

一応データを弄ったARGate01.NIFをアップして置きます

Ayleidの穴あき扉で矢や魔法を通さなくする改造nif
ttp://shy.jsphr.net/upload/img/ups23525.7z
77名無しさんの野望:2011/02/23(水) 01:24:48.90 ID:1ulBBwEC
>>71
自分は全く確認していませんが、
毎フレーム監視のクエストスクリプトを使って、構えていなければ即Return、
構えていれば左クリックを検知してSayすれば違った攻撃モーションを使える
ということですね!

何らかのオプションで攻撃モーションを複数切り替えたりできれば最高です。
プレイヤーだけに適用できるから、大げさのも気兼ねなく使えますし。
78名無しさんの野望:2011/02/23(水) 15:24:04.94 ID:hAD5Rfy8
ところでCSのクリチャーのステータスに
リーチとかスケールに並んで「体重」ってありますよね
これ何に使われてるんでしょうか?
Havokに対するなんらかのパラメーターなんでしょうかね
死体の重さとか?
79名無しさんの野望:2011/02/23(水) 20:16:25.14 ID:h3A+6z6o
このたび自分の家をCSで自作しようと思い立ったものです
基本的なことについては質問スレで相談してある程度分かったのですが
Tamliel>Wildernessの どの座標番号がどの地方を表しているのかが
よく分かりません

帝都の湖対岸・西もしくは北に家を建てる場合
どの番号のセルに家(の外観)を建てればいいのでしょうか
80名無しさんの野望:2011/02/23(水) 20:42:03.99 ID:lGmU3ikG
一口に西とか北っても
野外のセルって案外狭いし
それじゃ随分漠然としてるよ

挙げたところで貴方のお眼鏡に適った場所かもわからないし
そこら辺のセルを全部リストアップして示せといってるようなもん

お目当ての地点に近い、洞窟や塔、宿をチェックして
CSのcell viewのinteriorの項をname順に並び替えて
一度、その場所をrender窓で開いから、外に出て
お目当ての場所まで、地道に移動してくのが結局は早道じゃないかな

視点の移動速度なんかは設定で変えられる
あと地上のオブジェクトなんかを選択した状態だと
視点の移動速度が下がるのに注意

一度場所の目処がついたら、建設用に
わかりやすい内部セルからワープドアを作っておけば
次からはすぐにたどり着ける
建物内部ができていれば、そこから外にドアを繋ぐだけでいいけど
81名無しさんの野望:2011/02/23(水) 20:49:56.22 ID:h3A+6z6o
>>80
アドバイスありがとうございます
その方向でやってみます
82名無しさんの野望:2011/02/23(水) 23:32:01.83 ID:lVwoDnOt
>>78
「体重」って「FootWeight」の事じゃないですかね。
それってヒトの靴装備の重量に相当する値でSneakに関係します。多分。
83名無しさんの野望:2011/02/23(水) 23:41:48.21 ID:OyxDdbAc
>>80の補足
render窓で
視点を移動してるのに、画面が次のcellへ切り替わらない
(表示されない)ときは
進行方向にあるオブジェクトを選択すると
次のcellが描画されるんで
オブジェクトを全く選択しないのも、だめぽ
84名無しさんの野望:2011/02/24(木) 00:05:16.48 ID:1g4GshsX
>>82
レスありがとうございます
スニークですか・・それはちょっと予想外でした
85名無しさんの野望:2011/02/24(木) 08:51:47.82 ID:AQnJCvJZ
HUDを改造したいのですが、どこか参考になるサイトは
ありませんでしょうか?
86名無しさんの野望:2011/02/24(木) 11:11:46.96 ID:AM7qrnZG
>>85
ここしか知らないなぁ。あとは適当なMODを読んでみるしかないかと
http://cs.elderscrolls.com/constwiki/index.php/Category:Oblivion_XML
87名無しさんの野望:2011/02/24(木) 16:50:10.03 ID:D+Zb9Qf6
>>86
ありがとうございました。
88名無しさんの野望:2011/02/24(木) 23:55:11.95 ID:/hP/I0Eg
PickIdleの代わりに「Say」でSpecialIdleさせる話の続きです。

ゲーム中はランダムでIdleAnimationsの評価が起きてLoiterIdle(武器の柄を触る等)
が起きるのですが、「Say」での再生ってそれと同じ事みたいです。

PCの場合PicIdleとの違いは以下らしいです。NPCも同じかは謎です。

a) SpecialIdle中も武器を抜く/納める/攻撃の動作が可能で当たり判定も有効
c) AnimationGroupSectionが「SpecialIdle」だと武器を抜く時に再生が終了し、
「RightArm」だと武器を抜く/納める/攻撃で再生が終了する
b) 「Say」では現在のSpecialIdleは中断されない(CYCLE_CRAMP/LOOP問わず)

これ何に使えそうですかね。
任意の中断が出来ないみたいなので、AttackLeft/Rightのクリック乱打での往復
切り返し状態にはうまく追従出来ないかもですが、PowerAttackとか構え/通常Idleの
差し替え用途ならひょっとすると行けるのかもです。
89名無しさんの野望:2011/02/25(金) 00:13:10.08 ID:hpUBhRcW
あれ、abc順が変だ。それと「CLAMP」です。もうね。
90名無しさんの野望:2011/02/25(金) 00:25:11.13 ID:mG/o0hw8
>>88
検証お疲れ様です。

新ジャンルの武器に新モーションとして使うとすれば2通り考えられるのではないでしょうか?
1)左クリック長押しのパワーアタックのみ検出して置き換え
2)左クリック(押下→離す)の通常攻撃も置き換え。モーションが終了するまで
 左右のクリックは不可能に。デメリットなので、攻撃力を高めるとかでバランス。

あと構えのポーズも1フレームのSpecialIdleを使って置き換えできたらいいですね。
静止時で左右クリックなしの時のみ、1フレームのSpecialIdleをPickIdleとか。
でも外部の他のモーションとの兼ね合いもあると思うので難しそうですが…。
91名無しさんの野望:2011/02/25(金) 00:59:25.93 ID:hpUBhRcW
あまり細かく制御しようとせずに、単に任意に開始出来るLoiterIdle、と考えれば
応用がし易いんじゃないですかね。

例えば構え/通常Idleに応用するなら、他からのPickIdleや武器操作が起きると自動的
に終了するので特に後始末等の考慮はせず、武器構え状態が変化/振りアニメが終了
したらその時一回だけSayしてあとは放置、みたいなユルいかんじでもある程度は
行けるかもです。
92名無しさんの野望:2011/02/25(金) 02:04:08.19 ID:mG/o0hw8
>>91
なるほど〜、構え/通常Idleの変更ならその方法が一番そうですね!
ほとんどのプレイヤーはそれで十分満足すると思います。

「IsAttacking」と「IsPowerAttacking」と「IsAnimGroupPlaying」を組み合わせれば
構え/通常Idleの再PickIdleはできそうですが、攻撃アニメーションってCYCLE_CLAMPだと
思うのでPickIdleで他のSpecialIdleに切り替えできないので、攻撃アニメーションを
置き換えるならやはり左クリックの検出が必要になってシンプルは難しいかもしれないですね。

ん、もしかしたら、左クリックを検出した時点で既にCYCLE_CLAMPの攻撃アニメーションが
再生されてるのかも…。いや、パワーアタックの判定もあるからすぐに再生はされないはず…。
いずれにせよ、シンプルにはなりそうにないですね…。

あと実にどうでもいいですが、「LoiterIdle」が毎回「LolitaIdle」に見えちゃて
ほんと頭の中が終わってます。
93名無しさんの野望:2011/02/25(金) 12:19:19.04 ID:hpUBhRcW
お大事に。

で、確かにPowerAttackってボタン押下で最初は通常攻撃のkfが再生開始され、
0.数秒経ってボタン押しっぱが確定してから再生開始するので、その辺きっちり対応
するとややこしくなるかもですね。

単純にIsPowerAttackingのタイミングだけで再生開始して、最初の短い間は通常の
溜め動作が見えても別にいいかな、ぐらいの感覚だったのですが。

もしその辺細かくやるのなら、PowerAttack確定までの短い時間のkfを用意して
IsAttackingですぐ再生、二段構えでPowerAttackか通常かを判定→再生、みたいな
かんじになるのかもです。

で、判定自体は多少複雑になるにしろ可能だとは思うのですが、操作が細かくなると
今度はアニメの挙動の方が多分問題になってくると思うですよ。

例えば、あるkfを再生中に別のkfを再生終了する時って、「ease in/out」(TextKeyの
「Blend:XX」同様のkf開始/終了時の補間、デフォ0.1秒)が起こり、一旦元の下地kfの
状態にピュッと復元したりします。開始時にも下地→新動作への補間が。

これ短いkfを連続して再生する場合に問題になるかもです。
そのkfと下地kfとの動きの差にもよるので実際にやってみないと少し謎ですが。

ease in/outがどうしても問題になる様なら、下地になる元のkfをBip01とTextKeyだけ
残してあとのキーを全部削除したものに置き換える手もあるとは思います。

でもそうするとそのkfの再生はPC/全NPCに対して責任を持って確実に常時SpecialIdle
で代替する必要が出て来ますし、それがバニラkfとも限らず、元のkfはそのままで
見た目動作だけを上書き、的な簡便さではなく大掛りなものになりそうな気も。

短いkfを繋いでも問題無いならクリック連打での左右切り返し通常攻撃の入れ替えも
なんとかなるかもなのですが。
94名無しさんの野望:2011/02/25(金) 14:33:36.19 ID:mG/o0hw8
これはご丁寧にありがとうございます。

あれ、PowerAttackが「左クリック→通常攻撃→キャンセルしてPowerAttack」
ならば通常攻撃のkfはCYCLE_LOOPということでしょうか。1クリックにつき
1回だけ攻撃アニメが出るので、CYCLE_CLAMPかと思ってました。
ゲームエンジンが上手いことやってくれてるんですねきっと。

「ease in/out」の存在は知りませんでしたが、これに悩まされたことがあります。
Priorityを低くしても発生したので、キーを打たないとか何とかして誤魔化
そうとしましたが、完全な回避はできなかったです。

シンプルな方法でやってみて「ease in/out」によるピュッ現象が酷かったら
攻撃アニメの変更は一旦諦めて、構え/通常Idle程度にしたほうがいいのかも
しれないですね。それだけでも十分に革命的だと思います。
95名無しさんの野望:2011/02/25(金) 16:45:05.03 ID:tXVg25Gl
通常攻撃のkfもCYCLE_CLAMPですよ。
通常攻撃を中断してPowerAttackが始まるのはシステムが自分の内部でやっている
事なので何でもアリです。

CYCLE_CLAMPが中断出来ない、というのはPickIdle関数がそう作ってあるからで
あって、またSayでSpecialIdle自体の中断が出来ないのも恐らく同様です。

何を中断出来て何が出来ない、みたいなルールがまず先にあるのではなく、あくまで
各関数を必要最低限な機能にした結果それぞれの関数の挙動がたまたまそうなった、
という事だと思います。恐らく。

あと、Sayでの再生って他のSpecialIdleのkfの再生が確実に終了している必要が
あります。

ease outはこれに関しても問題があるみたいで、ease out時にはそのkfは状態的には
再生は終了した事になっていても、まだそのkfへの参照は続いているらしく、それが
SpecialIdleの場合Sayでの再生が始まらなかったりします。
なのでその0.1秒の遅延分を考慮する必要があったりします。

ちなみにTextKeyに「Blend:0」と書くとease in/outの時間はほぼゼロになる
みたいです。
でもkfの開始/終了時に絵が一瞬で変わってショックがあるので見た目に問題が。
96名無しさんの野望:2011/02/25(金) 23:05:57.90 ID:S19N/Imw
>>91
面白そうな話題ですね。MOD作り再開の機会があれば試してみたいです。
ただ、通常Idleや攻撃モーションの変更ならToggleSpecialanimsの方がシンプルな気もするので
一番メリットがありそうなのは代替手段の無いパワーアタックの上書きあたりですかね。

>>92
案外複雑にはならないです。
OnAttackのイベントハンドラ設定して攻撃検出して
そこから再生しているkfファイルを監視してAnimpathIncludes使えば前後左右どのパワーアタックかの識別も容易で

そこにSayを被せるのはさほど難しくはないと思います。
以前PlayIdleでパワーアタックに別アニメを被せる実験をしていたのですが
それなりにシンプルなもので行けたのでイベントハンドラと組み合わせて試してみるのも手かと思います。

ちなみにパワーアタックにPlayIdleでSpecialanimを被せるとバグちっくなのですが低頻度で
パワーアタックの動きがSpecialanimの動きで上書きされ、攻撃判定も残る状態になることがありました。
ただ、意図してこの状態を引き起こすことが出来ず使い物にはなりませんでした。

しかしSayか、考えもしませんでした。なるほど。
97名無しさんの野望:2011/02/26(土) 10:43:50.84 ID:aSZqNPsF
あれ、PowerAttack時にSayすると掛け声が途中で中断されるかもです。
これってSayだから多分当然なんですが。うーん、どうしましょ。

>>96
Idleを完全に別物に切り替えてそれを常時きっちり維持するのが目的なら
ToggleSpecialAnimがいいのかもですね。

SayでIdleAnimationsの評価が起きるのって会話IdleやLoiterIdle的な動作をさせる
事が目的だと思うので、時々起きれば面白い、みたいな元々ユルい用途向けだと
思うですよ。

その目的に沿って、例えば状況に応じて意図的に時々Idleを変えて見せる、みたいな
演出的な用途なら充分メリットはありそうな気も。
他にも本来のSayである事を生かして、攻撃中に同時にクシャミ、なんて事も多分。
試してはいませんが。

あんまし色々先回りするとネタ潰しになりそうな気もするのでこの辺で。

あと、AnimPathIncludeでのkfの判定ですが、これもease out時にはまだ使用中なのに
もう再生していない、という結果が返って来たりすると思います。
なのでSayを連続する場合なんかはやはりその辺注意が必要かもです。
98名無しさんの野望:2011/02/26(土) 12:00:31.88 ID:7/1pbHiH
>>97
>PowerAttack時にSayすると掛け声が途中で中断されるかもです。
>これってSayだから多分当然なんですが。うーん、どうしましょ。

そこはもうそういう攻撃風Specialidle作ってそっちでサウンド鳴らして上書きしてみるとかですかね
というか考えてると作りたくなってきますね
う〜
99名無しさんの野望:2011/02/26(土) 12:54:17.19 ID:aSZqNPsF
PowerAttack開始直後にSayすれば掛け声は最悪でも一瞬プツッとなるだけでほとんど
聞こえなくなるかもですね。

後はTextKeyかTopicのセリフとして声を出せば行けるのかもです。
どうせSayするならInfoに掛け声を色々用意したり字幕を付けるのもオシャレかも。

>>98
どんどん作ってください。
100名無しさんの野望:2011/02/26(土) 13:14:08.09 ID:7/1pbHiH
>>99
いやMOD作ってると仕事に支障が出そうなのでしばらく離れることにしたんです。
けど、パワーアタックの上書きはかなり惹かれますね。
101名無しさんの野望:2011/02/26(土) 17:44:36.54 ID:UWUdwE0f
MOD製作初めてです。助言お願いします。

世界中に存在する全てのチェスト(※)に対して、プレイヤー、もしくは周辺のNPCが、
開けた/または触れたタイミングでスクリプトによる処理をさせたいのですが、
どうやって処理を走らせるのが、一般的/簡単になりますでしょうか?

また、参考になるMODを教えていただけたら幸いです。

※ 100%にはこだわっていません。vanilaの宝箱風チェストだけでも全然問題なし

今のところ、以下で実現可能かな?と考えています。
1. 監視Actorを用意し、処理を記載した魔法を放つ(難しい?高負荷?
2. 開始時もしくはプレイヤー近くのチェストに、動的にスクリプトを貼り付ける(可能?
3. override?した対象チェストにCS上でスクリプトを貼り付ける(他MODの影響大?

オブジェクトのtrap機能でー、と思ったのですが、ダメージしか与えられないようなので実現不可能と考えています。
よろしくお願いします。
102名無しさんの野望:2011/02/26(土) 18:07:16.96 ID:QXD6uYxd
HarvestMODを書き換えれば思惑通りになりそうだけど
103名無しさんの野望:2011/02/26(土) 23:06:29.00 ID:UWUdwE0f
レスありがとうございます。
HarvestMODってHarvest[Containers]のことですよね。

Flora版とは全然違う動きなんだ。。。てっきり同じ動きかと思っていました。
処理の方見てみます。
104名無しさんの野望:2011/02/27(日) 02:34:10.03 ID:AJaKnSGz
>>101
BUDのトラップみたいなやつということで前に別スレで質問されてた方でしょうか?
であれば自分も気になったのでサンプルに簡単な説明つけてShyにアップしてみました。
http://shy.jsphr.net/upload/img/ups23666.7z
もし違ったらちょっと恥ずかしいので忘れて下さい。
105101:2011/02/27(日) 13:18:08.30 ID:ZbbiMt0b
>>104
仰るとおり、別スレで「BUDのようなトラップを作りたいけど。。。」と質問した張本人です。
マルチポストのような形になってしまいすみません。

サンプル見てみましたが、これはすごい。
私のやりたかったことが既にMODとして完成しています!
作成ありがとうございます。

処理の方は、>>101で書いた [2] が近いようですね。
親切な説明やコメントもあるのでじっくり見させて頂きます。

現状では、同じ状態でuploadしても意味無いし、失礼ですので、
ups23666.7zをそのままestrus trapとしたいと考えています。
新しい処理を入れる時には、別途uploadさせて頂きます。

開いた時間で別の処理を入れられそうです。
感謝します。
106名無しさんの野望:2011/02/27(日) 16:25:08.38 ID:q9LQp+P/
このアイテムを仕入れてお店で販売するMODを改造して
自分で作ったポーションを
自分の店で販売できるMODって作れませんか?
やっぱりプログラミングの知識がないと無理でしょうか…。

http://www.tesnexus.com/downloads/file.php?id=9310
107名無しさんの野望:2011/02/27(日) 17:05:33.12 ID:7BjPCQDj
プログラミングとオブリのスクリプトは別物だと思う
いや プログラミングとか齧ったことないから良く知らないけど
108名無しさんの野望:2011/02/27(日) 20:33:51.56 ID:ptrNrUAm
>>106
自分の店っていうのがちょっと分からないんですが、自分が作ったNPCが店番している店ってことでいいのかな?
どれくらい知識があるかわからないけど、

1.自分で店を作る(CSで町や屋外に設置して、内装などすべて設置できる)
2.NPCを新規登録する(AIパッケージなど)

が出来れば出来ればスクリプトは別に要らないので出来ますね。
109名無しさんの野望:2011/02/27(日) 20:38:27.55 ID:ptrNrUAm
その店の売り上げが自分の収入になって入ってくるっていうのなら、スクリプトも必要ですが、
そのMODも含めそういうのはいくつかあるので参考に、丸々自作しなくても改変程度で出来る
と思います。
110名無しさんの野望:2011/02/27(日) 20:45:57.67 ID:ptrNrUAm
仕入れっていうのが自分で練金で作ったものを売りに出すのか、そういう仕入れ業を行うNPCを追加して
それもビジネスの一環とするのか、前者なら割と簡単に出来ると思いますけど、後者は骨が折れそう・・・
111106:2011/02/28(月) 04:55:07.81 ID:JgH6GOuf
>ID:ptrNrUAm様
返信ありがとうございました。
自分が作りたいのは

NPCにインベントリからアイテムを渡す→1日待つ(その間に自分は冒険)
→翌日に売上金をもらい、またインベントリからアイテムを渡す

という感じのMODなんですよね。
112名無しさんの野望:2011/02/28(月) 12:16:08.40 ID:hR8P8E1V
質問です。
会話(交渉やトレーニングの選択が出る画面)の検出をしたいのですが、どうすればいいですか?
単純に player.IsTalking == 1 でいいのでしょうか?
113名無しさんの野望:2011/02/28(月) 20:52:50.77 ID:ABW5BtKZ
>>111
横からですが。
そういったMODを「私は作れますか?」って聞いても有意な答えは返って来ないと思う
ですよ。

とりあえず上の方も仰る様にCSで店を作って舞台を用意、NPCを配置してオリジナルな
会話を作ってみるのがいいんじゃないですかね。

NPCにアイテムを渡す、てのは多分会話が契機になる訳で、とにかくまず会話を作る
のが先ですし。
「在庫を見せろ」、「売上金よこせ」みたいなTopicを作ってみたり。
そこまではプログラミングとは特に関係無い作業です。

実際のアイテム移動とか自動的に売る、みたいな処理はその後の話なんで必要なら
また聞いてもらえれば。
114名無しさんの野望:2011/02/28(月) 21:07:25.12 ID:ABW5BtKZ
>>112
「MenuMode」で行けるんじゃないですかね。例えばこんなかんじに。

begin MenuMode 1009 ;----1009は「Dialogue」
;----なんかやりたい事をここに
end

メニュー画面になるとMenuModeブロックがGameModeに代わってループします。
BlockTypeとは別に関数としてのMenuModeもあります。
115名無しさんの野望:2011/02/28(月) 22:10:05.29 ID:LvanhiYn
>>113
最後二行がプログラミングの知識が必要か聞いてるんじゃないかな
完成するのに最終段階でそれが必要なら出来ない人にとっては挑むだけ無駄な
クエストになるわけで

鼻歌交じりでスクリプト組める人
鼻歌交じりで美人作れる人
適性によって越えられない壁はあると思うんだ
116名無しさんの野望:2011/02/28(月) 22:33:07.34 ID:LWCJ7l6D
横で盛り上がっちゃうのもなんですが、ご本人がある程度自分なりに調べて
試してみて具体的にわからないところが出てくれば、このスレの方々はサポート
してくれるのではないでしょうか??
自分も大いに助けられた一人で、自分がわかる範囲なら答えたいなと思いますし。

もし万が一完成できないとしても、その経験は決して無駄にはならないと思います。
117名無しさんの野望:2011/02/28(月) 22:49:01.51 ID:LvanhiYn
本人を差し置いて盛り上がるのは何かダメダメな気持ちでいっぱいですが

今回の件は、最終的にプログラミングの素養が必要ですので
それを習得する覚悟は必要です(その部分は可能なかぎりでサポートします)
っていうレスで良いのかなぁと思ったんだ

顔スレとか見てるとわかると思うけど、出来ない人は本当に出来ないから
118名無しさんの野望:2011/03/01(火) 09:27:28.77 ID:HGaQ+vqu
別にそれでいいんじゃないですかね。
というか手っ取り早く実動サンプルを期待されてる気も。
119名無しさんの野望:2011/03/01(火) 10:41:36.46 ID:eu72mZ7B
>>114
思っていたものができました。ありがとうございました!
120名無しさんの野望:2011/03/01(火) 21:34:53.38 ID:Aln1z/2k
直接は関係のない話だけれど
オブリのシステムを知らなかった当初は
MODで武器屋に追加された強い武器なんかが
そこらのNPCに買われてしまうのではないかとドキドキしていたのに
実際は全くそんなことなかったでござる
121名無しさんの野望:2011/03/01(火) 22:42:33.14 ID:6Tpg2b+c
逆にNPCが派手派手な装備でほっつき歩いてたら面白いかも。
店に無いと思ったらお前が買ってたのか…と。

あと、自分が売った装備を店主がちゃっかり着用してたりして笑えます。
アンヴィルの武器屋の弟子がDaedra装備一式になって徘徊してたり。
122名無しさんの野望:2011/03/01(火) 23:49:39.78 ID:Aln1z/2k
街で乱闘になるとNPCもMOD武器入りコンテナを漁りだしますけど
それ以外では積極的に武装しませんからね

ルナドンあたりだとNPCが買い物してるから
その印象が強かったもので期待?してしまって

Daedra装備は笑えますな
123名無しさんの野望:2011/03/03(木) 00:21:50.87 ID:FHgSwS+U
NPCに実際に店に来させて買い物させるのもある程度出来るんじゃないですかね。

現在ロードされていないNPCにもAddScriptPackageは出来るので店員をFindとかで。
アイテムやGoldのやりとりは店員のOnActivateか会話で。
顧客リストはRefの配列にして何かを契機に適当に選んでパッケをAddで。

PCがその場にいない場合、FindでのNPC→店員へのActivateは起きませんが、NPCの
店への移動は起き、非ロードでも店のドアのActivateが起きてドアにOnActivate
ブロックがあれば動くのでその辺で多分なんとか。

顧客の獲得は例えば会話で「店のチラシを渡す」、みたいにPCが各NPCに直接営業して
Refを取得、リストに追加したり。
または店の噂のConversationを仕込んでそのResultScriptで相手Refを取得追加すると
本当にNPC同士の口コミで客が増えたりするかもです。

多分そんなかんじで行けそうな気が。
124名無しさんの野望:2011/03/03(木) 10:32:21.58 ID:9SlkNRPW
>>123
具体的で素晴らしい案ですね!
特に店の噂のConversationというのが面白いです。

「ねぇトム、これを見てくれよ! 昨日買っちゃったんだ! 何だと思う?」
「わからないな、ジョン。 どうやって使うんだい?」
「チャックを開けておもむろに取り出して…こいつをどう思う?」
「すごく大きいで…ってなんかネタ混ざってるよジョン! どこで買ったの?」
「○×店さ、トム! 一緒にイこうよ! イイモノたくさんあるよ!」
「でもお高いんでしょう?」
「今ならタマネギプロマイドが付いてきてお値段ドン!」
「何だって!? それは今すぐ買いに行かなきゃ!」
=> AddScriptPackage

自分の店のConversationを聞くのは微笑ましいでしょうね。
街中が店の話ばかりになればウハウハが止まらない。

以前、店番MODを作る際に、アイテムの金額を取得する関数がないというのが
障壁になっていた気がしますが、新しいOBSEで解決されてたりしたらいいですね。
そもそも自分の勘違いかもしれませんけど。
125名無しさんの野望:2011/03/03(木) 14:33:27.68 ID:uRUwbJRo
売り上げで入ってくる金額は取得できないと駄目だけど
NPCから出て行くお金については
バニラのNPCってほとんどゴールドを持っていませんし
払ったことにしておくって感じですかね
126名無しさんの野望:2011/03/03(木) 20:42:38.01 ID:FHgSwS+U
雑魚敵NPCもFindパッケをAddすると目的地に来るみたいです。
なのでダンジョンでBanditが店の噂をしてたりするとそのうち来店するかも。

ただ、LeveledListで出現するアクターはRespawn毎にRefが変わるので、時間を
置いて何かをする時はそのRefがまだ有効かチェックが必要に。
IsFormValid、IsReference等で多分。

価格設定はGetFullGoldValueとかで恐らく。
後は必要なら相手のSkill類を適当に加味すればそれっぽくなりそうな気が。

NPCの所持金はどうしましょうね。
パッケのAdd時にお金も持たせれば本当に払わせる事も出来そうですが、常時大金を
持たせとくのか、特定のタイミングで元の所持金額に戻すのか、その辺結構悩むところ
かもです。

また単に売る一方だと物もお金も多分増え過ぎるので、それに対しても何か手当てが
必要かもです。
127名無しさんの野望:2011/03/05(土) 23:09:13.24 ID:hVdo/aYJ
こんばんは。質問させてください。
Blenderで独自のアーマチュアを設定しBoneを組んだのですが
ゲーム内ではバラバラになってしまいます。
Blender内での作業は
 0)Mesh、コリジョン作成
 1)Object ModeでAdd Armature
 2)Eキーで子Boneを生成
 3)スキニング作業
 4)Make Parentで親Boneと子BoneのConnect
   (要らない気もしますが)
 5)コリジョンとBoneをMake Parent
 6)Export
Nifskopeで特に作業しない場合と親BoneのChildrenに子Boneを格納した
場合と二通り試しましたが、結果は同じでバラバラになってしまいました。
何か足りない作業があると思うのですが行き詰ってしまいまして
ご助力のほど、よろしくお願いいたします。
128名無しさんの野望:2011/03/06(日) 08:24:15.08 ID:ta0kkFJ6
>>127
まず、作ろうとしているのはヒトやクリーチャーなのか、普通のオブジェなのか
どっちです?
あと、後者ならBoneを仕込む目的は、Boneアニメの為なのか、ラグドールにする為
なのか。

それ次第で作り方が変わって来るので、まずその辺を明確にした方が良さそうな気が。

(この場合「Boneアニメ」というのは、アリーナの観客みたいに予め仕込んだkfアニメで
各部位を動かす事を、「ラグドール」は死体や服、天秤みたいに掴んだり転がした時に
物理演算で各部位がそれなりに動く様にする事を言ってます)

お話の雰囲気だと普通のラグドールなオブジェっぽい気もしますが。

もしそうなら各Bone毎に独立したコリジョンと、そのコリジョン間のConstraintに
「RigidBodyJoint」が必要に。
例えばmeshes\clothes\lowerclass\01\m\pants_gnd.nif等をBlenderで見てみると
いいかもです。
129127:2011/03/06(日) 13:48:29.68 ID:Sbdke6sS
>>128
レスありがとうございます。
作りたいのはラグドール(オブジェ)です。
おかげさまで少し前進したのですが、行き詰っているところがあります。

・Boneの親子関係が、BlenderからExportしたNif上では親子にならない
 (親BoneのNiNodeと子BoneのNiNodeが同階層で出力される)
 BlenderのExport時の設定によるのでしょうか?
 NifSkopeでChildrenによる親子関連付けをすると、Bone位置がずれたりずれなかったり。
・コリジョンのRigidBodyJointのConstraints内で設定すると思うのですが、
 ヒンジのように曲がって欲しい箇所の軸をどこで設定するか分からずにいます。

 Export画面とBlenderモデルを同梱しました。
 もしよろしければ何か気になるところをご教授いただければ幸いです。
 ShyUpload : http://shy.jsphr.net/upload/img/ups23948.7z
130名無しさんの野望:2011/03/06(日) 18:28:15.16 ID:ta0kkFJ6
>>129
そのnifで構造的には問題無いと思いますよ。
Exportして適当なTextureを指定したら絵も出てヒンジも動いてるみたいです。

で、まずExportですが、この場合「Use bhkListShape」指定は不要です。
一度「RestorDefaultSetting〜」を押してから例えば「Clutter」→「Cloth」を押せば
OKです。

Boneの親子関係ってラグドールの場合は関係無く、各BoneはそれぞれSceneRoot直接
の子供で問題無いと思います。
その際Exportの順番って多分Blenderの内部的な都合かなんかで決まると思うので、
NifSkope上でどうなっていても動けば多分それでOKな気が。
NiNodeの順番を変えるのであれば、例えば「Main」を選んでCtrl+カーソル上下で位置を
他のNiNodeの例えば「R」とかの上に移動、一度Saveすると順番を変えられるかもです。

ヒンジ位置はConstraints→RigidBodyJoint指定の「ShowPivot」を押し、「Ax X/Y/Z」の
調整で。
X軸がヒンジの回転軸だと思います。ただ、Exportするとヒンジ角は90度固定に。
多分YZ両軸正方向と反対側90度の範囲をブラブラ回ると思います。

あと、ヒンジの先のコリジョンが地面にめり込んだりの妙な挙動をする場合は
不定形のbhkMoppBvTreeShapeではなくBox/Sphere/Capsuleにすると改善するかもです。
131名無しさんの野望:2011/03/06(日) 19:54:08.02 ID:ta0kkFJ6
あれ、申し訳無い、「YZ軸正方向と反対」ってウソです。

ヒンジってその軸を中心に回る訳で、例えば天秤みたいな回転軸が中心にあるもの
なら正方向も反対方向も両方向共に回っている訳で。
なのでYZ軸正方向も同様に回ると思います。

こういうのって厳密にはなんて言ったらいいんでしょう。

YZ平面と原点を通って直交する平面がX軸を中心にY軸正方向を起点としてZ軸正方向に
90度の範囲を可動する、とか言えばいいんですかね。
なんか逆に訳わかんなくなりそうですけど。
132名無しさんの野望:2011/03/06(日) 20:21:02.95 ID:a6kTNHmW
CSで家を作りたいのですが家MOD製作の参考になるようなサイトが
あれば教えていただけませんか?

ググってみたのですがそれらしきサイトが見当たらず…
133名無しさんの野望:2011/03/06(日) 20:34:56.98 ID:Amxw4fh6
>>132
ttp://wiki.livedoor.jp/oblivion_jp/d/%bf%c2%bb%ce%a4%ce%a4%bf%a4%e1%a4%ce%b7%fa%c3%db%b9%d6%ba%c2
ここ見たら大抵の操作は乗ってる
あとはこれとかttp://tes4jpmod.wetpaint.com/page/%E5%BB%BA%E7%89%A9%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86
基本的にやることは全て同じ(オブジェクトから置く)なので、これが理解できてれば作れるよ
134名無しさんの野望:2011/03/06(日) 21:06:12.50 ID:a6kTNHmW
>>133
ありがとうございます!
135127:2011/03/06(日) 21:40:11.61 ID:Sbdke6sS
>>131
ありがとうございます。
回転が90°というのはちょっと寂しい感じですね。
あとモデルの作り方が悪かったのか、90°の回転範囲がRigidBodyJoint
での設定に沿わないですね。
(ゲーム内ではモデルのXY平面に対して鉛直方向固定っぽい挙動)
また時間が取れたら頑張ってみます。
136名無しさんの野望:2011/03/07(月) 01:23:42.11 ID:+zf3xGee

最近CSを使ってMODいじりを始めたが早速壁にぶつかった。

LoversRaperS で瀕死のやつに

1、同じしたいに何度でもかけられるようになりたい。
2、かけた時にでるコメントを変更したい。
3、判定をれいぷではなく、普通の行為に変更して自分で体位を選択したい。

以上ですが、どなたかやり方がわかる方居ませんか?
137名無しさんの野望:2011/03/07(月) 08:10:55.22 ID://0dZiG6
>>135
回転角はNifSkope上でなら変更は出来ますよ。
そのbhkLimitedHingeConstraint→Max Angleに適当なラジアン値を。
Exportするとそこが固定値(1.5)になるので例えば3.14とかにすれば180度に。

ゲームでの挙動はRigidBodyJointの座標軸指定に従うと思うのですがなんでしょね。
例えばこんなかんじにすれば羽(?)部分が現在位置から水平ぐらいまでの90度の間を
パタパタ動くと思います。

http://shy.jsphr.net/upload/img/ups23975.jpg
138名無しさんの野望:2011/03/07(月) 09:40:11.45 ID://0dZiG6
また申し訳無い、こっちの方が多分より正解です。
NifSkopeでのヒンジの可動範囲の表示も実際の見た目と同じになると思います。

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

見た目の動作的には上と全く同じ事なのですが。
もうね、Constraintとか指定がややこしくて。
139名無しさんの野望:2011/03/07(月) 20:39:40.92 ID:rPXyTEyL
バニラの街マップをコピーした特定の小WorldSpace(親World無し・Smallworld)において
普段は見えない城壁の外の野外部分に対するエリアロードの際に
草木の自動生成を行わないようにしたいと考えています

以下が質問です、ご教示をいただけましたら幸いです

(1)
CSのcell編集の画面にある"Hand changed" "Force Hide Land"チェックの意味がわかりません
前者は、草木を自動生成させず、手動で設置したもののみ反映という意味にも思えますが
設定しても草は生えまくりでした
後者もチェックしてもいまいち変化が不明です

(2)
他に非バニラの特定小ワールドスペース内において
エリアのロードや草木の生成を行わせなくする方法というのはあるのでしょうか?

また「草の生える土地」か否かを決めているのはどの要素("Landsacpe Edit"での地面の種類等?)で
CSやTes4editで見ると、どのあたりが記憶しているものなんでしょうか?

それとも必ずこの専用ソフトを使って編集することになるのでしょうか?
http://cs.elderscrolls.com/constwiki/index.php/Fractal_terrain
140名無しさんの野望:2011/03/07(月) 20:53:25.57 ID:rPXyTEyL
あ、すみません(2)については
前スレ736氏がおっしゃっていた

>LandscapeEdit中にRenderWindowに フォーカスして「I」キーを押すと
>そのCellを四分割した各部位のテクスチャ使用一覧 のリスト

にあるGrassの数が、その地形に生成される草の数ということですかね
141132:2011/03/07(月) 21:15:41.79 ID:T5hsjzpS
ttp://tes4jpmod.wetpaint.com/page/%E5%BB%BA%E7%89%A9%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86
を参考に商人NPCを作って配置したのですが売買アイコンが出ません…何を
見落としてるんでしょうか…

@NPCを作る、BaterGold10,000、Ingredientsにチェック、AIをWanderでoffersServiceにチェック
Aコンテナ作成、チェストにリスポーン有りでハムとパンを1個づつ入れる
BレンダビューでICの自宅にNPCとチェストをD&D
CチェストのOwnerShipをNPCに指定

はしょりましたが手順はこんな感じです。何か思い当たる節があれば
ご教授いただければ幸いですm(_ _)m
142名無しさんの野望:2011/03/07(月) 21:45:17.28 ID:reFL+mMg
日本語で書かれたnifskope初心者用チュートリアルって無いのでしょうか…
143名無しさんの野望:2011/03/07(月) 21:57:07.85 ID:8pqGuwLV
あったら寧ろ教えてほしいぐらいだ・・・
144名無しさんの野望:2011/03/07(月) 21:57:38.97 ID:rPXyTEyL
>>141
私も同じことを教えてもらったことがありますが
商人はPC連動レベルではなく、固定レベルにしないと駄目らしいのですが
それではないですか?
145名無しさんの野望:2011/03/07(月) 23:31:02.58 ID://0dZiG6
>>139
草木ってゲーム実行時の自動生成ではない気が。多分。

(1)
「HandChanged」はRegionによるCSでの草木類の自動生成を抑止するオプションです。
なのでゲーム実行時には関係無いです。恐らく。
「ForceHideLand」は謎です。

(2)
エリアのロードを抑止する方法は多分無いですし、あったとしてもこの場合の目的には
適切でない気も。
特定のCellの草木だけを表示しない方法も無さそうな気が。

「草が生える土地」はLandScapeEditで塗る地面テクスチャの種類で決定されます。
地面テクスチャの定義はObjectWindow→Misellaneous→LandTextureに。
またその「専用ソフト」は単に地形を作る一つの方法として紹介されているだけで、
草木とは関係無いです。


手っ取り早く地面に全く草を生やさない様にするなら、LandScapeEditのTextureで
「-NONE-」を選んで地面を塗り、「I」キーを押して出るテクスチャのリストから
「LAND_DEFAULT」以外を全部Delで多分。

あとバニラ町をコピーしたのなら城壁外には元々木や岩等は配置されていないと
思います。
もし配置されていたらそのオブジェをDelで。
146名無しさんの野望:2011/03/07(月) 23:40:47.05 ID://0dZiG6
>>141
手順的にはそれで合ってると思います。
@でIngredientをチェックした、という事はレベル固定なはずですし。

同じ手順で今IC自宅に実際に商人を置いてみましたが普通に売ってくれますよ。

そのNPCってバニラ種族ですか?
147名無しさんの野望:2011/03/07(月) 23:56:18.50 ID:slT2d9ws

nifファイル同士の合成について解説してるサイトとか知ってる人いたら教えて欲しい

1つのnifに別のnifにあるメッシュを加えたいんだが,blenderだとインポートまではできてもエクスポートができなくて悩み中
エラーメッセは「複数の骨組みを単一の骨組みに変更してリトライ」と出てるので,armatureの設定あたりがうまくいけばと思ってるんだが,助言頂きたい
148名無しさんの野望:2011/03/08(火) 00:22:41.78 ID:+hWFAiG0
>>147
サイトは知りませんが。
それって例えば鎧と篭手を一つにまとめる、とかそういう事ですかね。

だとすると、Blenderにまずskeleton.nifをImportし、そのスケルトンに鎧nifと
篭手nifをImportして全部をExportすれば多分。
149名無しさんの野望:2011/03/08(火) 00:29:33.70 ID:Db7NEXiX
Blender日本語化してないからエラー内容がよくわからんが、同一のboneにリギングできてないってことだろ
Parent指定してVanillaからウェイト貼り付けて出力するだけだ
取りあえずチュートリアル通りにTシャツでもいいから装備作ってみればいいんじゃね
150132:2011/03/08(火) 00:41:42.34 ID:80L9Zoqm
>>146
いえ、カスタム種族です。
151名無しさんの野望:2011/03/08(火) 00:54:30.77 ID:+hWFAiG0
>>150
じゃあバニラ種族で確認を。
あとAIパッケに余計な条件が付いていないかとか。Conditionsとか時刻指定とか。
152名無しさんの野望:2011/03/08(火) 01:43:09.77 ID:vU2Iimlh
>>145
ご教示ありがとうございます
検索していたところ、エリアのロード時に草木を生成しているため
重くなったりCTDの原因になったりするという情報を見かけたもので
そう思いこんでいたのですが、そうとは限らないかもしれないのですね

とはいえ、何もしないよりも軽くなるかもしれませんので
まずは教えていただいた草軽減を試してみます
153名無しさんの野望:2011/03/08(火) 03:26:01.17 ID:pbdUKuKN
>>148
返信thx
スマン,言葉足らずだった
例えば,mud crabを盾や鎧の一部の装飾品のように,nifファイルというだけで全く別のメッシュを一緒に扱いたいなぁと思い

>>149
エラーメッセは自分で和訳したやつが,こういうときは英文そのまま載せた方が良いのかな
parent指定云々は知らなんだ
調べてくるわ
154名無しさんの野望:2011/03/08(火) 08:57:59.64 ID:+hWFAiG0
それって「nifファイル同士の合成」というよりは、普通に装備類を作る、という事な
気が。メッシュを他所から持って来る、というだけで。

あと鎧と盾では作り方が違ったりするのでまずはチュートリアル類を。
155名無しさんの野望:2011/03/08(火) 09:56:39.16 ID:aqD4ssdf
確かに静的なオブジェだったらただのmesh合成でどうとでもなるけど
そうなると装備品のチュートリアルなんかを参考にしたほうがよさそうだな
156名無しさんの野望:2011/03/08(火) 18:33:16.32 ID:80L9Zoqm
>>151
バニラ種族でやったら正常に稼動しました…
現状カスタム種族に物を売らせるのは無理っぽいんですね、
何故なのか気になるので色々しらべてみます。

ありがとうございました。
157名無しさんの野望:2011/03/09(水) 09:01:24.71 ID:vtfFT4Oe
無理じゃないですよ
バニラ種族で設置したNPCの、種族のみを変更してみては?
158名無しさんの野望:2011/03/09(水) 09:26:11.34 ID:+52+0kRd
確かに種族がバニラでない事自体は恐らく関係無いと思うですよ。
例えばImperialを単にDuplicateしたRaceなら多分サックリ動くと思います。

本来Barterって種族とは無関係にNPCの指定だけで動く建前なのですが、他の隠れ要因
が無いとも言い切れないのでその辺調べた結果が結構気になってたりします。
159名無しさんの野望:2011/03/09(水) 18:28:02.08 ID:jKLQAYEX
>>154->>155
できた
レスthx

重複するboneがあったのが原因だったらしい
追加Objectのarmatureを全部消せばとりあえずできた

ゲーム上で表示するには追加ObjectのVertex Groupsを全消去して,weightの再設定
それから>>149の言う通り追加ObjectをメインObjectのarmatureにparent設定してやればいけた

わかれば成程なんだが,手間取ったなぁ
しかし,これでようやくヴァニラの人型以外のメッシュを流用できる

レスくれた人らthx
160名無しさんの野望:2011/03/09(水) 18:40:41.89 ID:KkI2LlWd
すみません、Activaterをmob扱いにしたいのですが、
そうなるとboneが必要になりますよね?

このアタリの基本的な作り方などが載っている場所はないでしょうか?

あるいは、元になるnifがあれば簡単に作る方法などがあったりしますか?
161160:2011/03/09(水) 18:42:45.25 ID:KkI2LlWd
補足:boneというよりオブリの場合skelton.nifファイルの作成といったほうがいいのでしょうか
162名無しさんの野望:2011/03/09(水) 20:12:38.53 ID:+52+0kRd
>>160
「mob」ってアクター(NPCとかクリーチャー)の事ですよね。

アクターにはskeleton.nifが必要です。他にも色々。
NPCの場合はややこしいので置いといて、クリーチャーなら作り方はここに。

http://cs.elderscrolls.com/constwiki/index.php/Blender/Custom_Creature

最低限作る必要のある部品はskeleton.nif、体のnif、idle.kfです。
とりあえずそれだけあればその場でじっとしているクリーチャーにはなります。

元になるnifというか、ネタになる単純なクリーチャーの部品セットがあれば改造で
ある程度簡単に行けるとは思いますが。
でも改造するにしろ装備作りやポーズ/アニメ作りの工程は全部必要なのでその辺
初めてだと操作手順的に大変かもです。

以前マーカー用途に簡略化したクリーチャーのサンプルをUPしたのですが、
もう消えてるみたいなのでまたUPしときます。
元ファイルが行方不明なので捜索に時間がかかるかもですが。

で、目的によっては特にアクターにしなくても別な方法があったりするかもですよ。
その辺も含めて必要でしたら。
163名無しさんの野望:2011/03/09(水) 20:36:57.21 ID:pfevl6BX
質問させて下さい。
晒しスレの方でクレイモアを矢扱いにしたMODをうpした者です。
現物→http://shy.jsphr.net/upload/img/ups24025.7z

今回背中が寂しかったので矢筒をつける事にしたのですが、上手い事いきません。
攻撃モーション自体は問題なく動作し、装備してる数によって背中の
クレイモアの数も増減するのですが、複数本を地面にドロップすると1本だけ
バラけてしまったり、1本だけ落とした時も起き上がりこぶしの様になってしまい
普通に地面に落ちてくれなくなってしまいました。
http://shy.jsphr.net/upload/img/ups24062.jpg
実際に作成したnif→http://shy.jsphr.net/upload/img/ups24063.7z

当方Blenderが上手く動かせないのでnifskopeのみで作成してるのですが、
何か上手い対処方があれば宜しくご指導お願いします。
164名無しさんの野望:2011/03/09(水) 22:28:13.06 ID:KkI2LlWd
>>162
ありがとうございます、
やはり、日本語のサイトはとりあえずないということですね。
NPC(Creature)判定にさえなってくれればいいので、
とりあえず形だけのidle.kfなりなんなりで少し思考錯誤してみようと思います。
165名無しさんの野望:2011/03/09(水) 23:15:18.85 ID:+52+0kRd
>>163
矢がバラけるのは「bhkPrismaticConstraint」が無いからで、起き上がりこぼしは
bhkRighdBody→Centerの座標がコリジョン中心から大きくずれているからです。多分。
166名無しさんの野望:2011/03/09(水) 23:17:21.21 ID:+52+0kRd
>>164
クリーチャーにすると勝手に位置が変わったりカーソルを合わせた時のアイコンが
出なくなくなったりしますよ。

その辺の挙動の違いがその目的用途に問題無ければ別にOKだと思うのですが。
でもなんか雰囲気的に他の方法もありそうな気も。
167名無しさんの野望:2011/03/09(水) 23:47:21.40 ID:KkI2LlWd
>>166
レスありがとうございます。
肝心な部分を忘れていました。
勝手に動いてしまうのでしたね。
どちらにせよ、ずっとblenderとにらめっこしてましたが、exportエラーがでてどうにもお手上げでしたし、
諦めたほうがいいのかもしれません。

なぜCreatureにしたかったのか?
ですが、
Activaterに被ダメ判定のようなことがしたかったのですが、
攻撃魔法などの判定が出せないため、困窮しておりました。
168名無しさんの野望:2011/03/10(木) 00:17:20.05 ID:zKYHYdBU
>>165
レスありがとうございます。
起き上がりこぼしの方はご指摘の通りの様で、とりあえず数値を全て0にしたら直りました。
bhkPrismaticConstraintの挿入が出来ません。
まだ「理屈はわかんないけど切った貼ったで何となくやったら出来た」レベルで
やってるのでこの辺の操作はさっぱりで…。
ここから修正する方法はあるんでしょうか。一から組み直さないとダメですかね?
169名無しさんの野望:2011/03/10(木) 02:33:58.43 ID:HCYmNKor
TESNEXUSに一度上げたファイルの
新しいバージョンを上げるには
どうしたらいいのでしょうか?
170名無しさんの野望:2011/03/10(木) 03:27:52.29 ID:cmy9Flns
Manage your filesで変更したいMODのFilesから古い奴をDeleteするかEdit fileで
カテゴリをold versionsにしてから新しいの上げればいいよ
ちょっと言い方が悪いけどこのくらいのこと解らないんなら無理にtesに上げないほうがいいんじゃないか
171名無しさんの野望:2011/03/10(木) 07:07:02.10 ID:F+U+JUkk
さわんなよ
スレチな上、エスパーが必要なんだから

つーか言葉足らずにもほどがある
172名無しさんの野望:2011/03/10(木) 09:47:28.03 ID:8c5IjXSy
>>167
Activatorに特定の魔法や矢が当たったかどうかだけならOnMagicEffectHitやOnHitWith
で行けるとは思うのですが。

でも打撃/魔法/矢の全攻撃が有効で、与ダメ量の累積が一定量を越えると壊れる、
みたいなものを作るとなるとどうしたらいいんでしょうね。
うーん、難しそうかも。

とりあえず簡略化クリーチャーの例です。

http://shy.jsphr.net/upload/img/ups24081.zip
173名無しさんの野望:2011/03/10(木) 09:49:10.27 ID:8c5IjXSy
>>168
とりあえずArrow:0の絵とコリジョンのShapeを入れ替えた例です。

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

元の矢のRigidBodyTは残してClaymoreのそれに指定を大体合わせ、ArrowQuiverの
コリジョン形状も大体調整してあるので後は残りの矢の絵の入れ替えで行けると
思います。

Constraintってリンクの参照の関係でnif上でのRigidBodyブロックの並び順が関係
したりするので、後から追加するとその辺で問題が出たりする事もあるみたいです。
174名無しさんの野望:2011/03/10(木) 22:40:44.61 ID:anc91p76
>>173
実例ありがとうございます。
コレについては矢の絵の入れ替えだけで出来ました。

自分でもお手本を元にいじってみたんですが、どうしても
コリジョンの設定が上手く作れません。

@Arrow.nifから 44 NiTriStrips Arrow:0を削除
Aclaymore.nifから 9 NiTriStrips Claymore:1をPaste Brunch
BClaymore:1をArrow:0にリネーム
Cclaymore.nifからbhkListShapeをコピーしてPaste Brunch
という風にやってるんですが、bhkRigidBodyTのツリー以下に挿入されません。
Block→Insertで新規に作っても同じで…。
自分がやり方を勘違いしているのだと思うのですが…orz
175名無しさんの野望:2011/03/10(木) 23:26:20.14 ID:8c5IjXSy
>>174
bhkListShape以下をPasteBranchしても多分どこにもリンクされずに孤立していると
思います。
その場合はbhkRigidBodyT→Shapeに手動でその番号の指定を。

PasteBranchって必ずしも全てのリンクを自動で適切に解決してくれる訳では無い
みたいです。
176名無しさんの野望:2011/03/11(金) 02:21:54.05 ID:FBJVOO24
既出かわからないんですけど、CSで坂道を綺麗に作るにはどうしたらいいでしょうか?
Landscape Editorで直接地面を上げるとデコボコしてしまいます。
Heightmap Editorでグラデーションするしかないのでしょうか…?

Heightmap Editorは過去ログを見ながら少し触れてみましたが使い方がよく分からず、
Landscape Editorだけでできたらいいんですけど…。
177名無しさんの野望:2011/03/11(金) 09:02:15.71 ID:nHTZUqaI
>>176
地面の凸凹を滑らかにする、という事ならにはLandscapeEdit→SoftenVerticesで。

LandScapeEditだけで地形を作る場合の全体の段取り的には、
各要所を盛り上げて目的の高さを出す→FlattenVerticesで地図の等高線的に同じ高さ
の場所を広げて階段状に→SoftenVerticesで段差を滑らかにする

そんなかんじで行けると思います。
178名無しさんの野望:2011/03/11(金) 10:00:12.67 ID:nHTZUqaI
179176:2011/03/11(金) 10:52:56.14 ID:FBJVOO24
>>177-178
画像付きでご丁寧にありがとうございます。
ちょっとだけ要領を得ました。

SoftenVerticesの使い方がキモみたいに感じました。
SoftenVerticesは確かに地面を滑らかにしますが、使う毎にどんどん地面を下げて
いってしまうのでやり過ぎると前の段階に戻って地面を上げないとならなくなる。

その辺りが非常に難しいですが、だいぶ地形の編集がスマートになりました。
ありがとうございました!
180名無しさんの野望:2011/03/11(金) 11:16:24.83 ID:nHTZUqaI
確かにSoftenVerticesってあまり広範囲を長押しするとどんどん突起部が低くなって
平坦になりすぎるかもですね。

EditRadiusを小さめにして要所を狙い澄ましてプチッと押す、ぐらいの感覚で行くと
いいのかもです。
181名無しさんの野望:2011/03/11(金) 12:34:02.39 ID:IJcfH1hk
新天地つくりとかやりたいけど広範囲の造成とか気が遠くなる
182名無しさんの野望:2011/03/11(金) 13:06:20.73 ID:lVG07HeG
島ひとつぐらいが最初はお勧め
木とコリジョンで囲ってしまえば張りぼてでなんとかなる
183名無しさんの野望:2011/03/11(金) 20:49:55.53 ID:h8RYZB6j
>>175
出来ました!こっち側の窓の項目をいじればよかったんですね。
目標通りの物が作れそうです。ありがとうございます。
184名無しさんの野望:2011/03/12(土) 00:17:02.25 ID:BB5yBwNu
質問板では回答がもらえなかったので、おねがいします。
visual2010 + SDkにてObseをコンパイルしているのですが、

>〜\Visual Studio 2010\Projects\OBSEv0019\src\obse\loader\Release\loader.exe) が
>Linker の OutputFile プロパティ値 (〜\Visual Studio 2010\Projects\OBSEv0019\src\obse\loader\Release\obse_loader.exe) と一致しません。
>このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、
>および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。


と、エラーになってしまいビルドが成功しません。

前者のloader.exeと
後者のobse_loader.exeが不一致なのはわかるのですが、
ファイルネームを変更したりしてみても上手くいきません。
どういう仕組みになっているのでしょう?
半日ずっとやってるのが解決できませんとです。
185184:2011/03/12(土) 00:18:27.91 ID:BB5yBwNu
ちなみにOBSEのバージョンは0019です
186184:2011/03/12(土) 01:36:31.24 ID:BB5yBwNu
申し訳ない。自己解決しました
187名無しさんの野望:2011/03/12(土) 22:03:12.14 ID:AgVTryIj
nifscopeでの操作の質問です
ある物体のサイズを変更した場合(例:ポテト)、NiTriStrips>Transformで変更するまではできたのですが、それだけではただ単にモデルのサイズのみが小さくなり、コリジョン?等はそのままになってしまいます。
コリジョン?のサイズ自体を縮小したい場合は、どの部分を弄れば良いのでしょうか?
ttp://shy.jsphr.net/upload/img/ups24145.jpeg
188名無しさんの野望:2011/03/12(土) 22:06:24.37 ID:8NzNK4U1
普通にCollisionって書いてあるじゃん
それでもわからないならちょっとアドバイスの仕方がわからん
189名無しさんの野望:2011/03/12(土) 22:55:20.47 ID:tkdTjKGA
>>172を参考に、PCの前方に浮遊する光源を出す、というものを作りました。
動きは、"透明なObject"AをFollowする"Creature型Object"Bに光源Cがsetposされ続ける、という感じです。
3つほど問題があるので修正方法があれば教えて頂けないでしょうか。

mod
http://shy.jsphr.net/upload/img/ups24146.7z
http://shy.jsphr.net/upload/img/ups24147.jpg

-光源がcreatureなので、まっさきに敵に殴られるのですが抑制手段が何かないか
 ・攻撃されない、殴られたときにPCに攻撃目標をかえさせるなど
-光源が地形に引っ掛かったり、戦闘後に照らす地形が固定化される。Actorはきちんと照らされる。(SSの状態になる)
 ・一度消して、再度呼ぶと直るのですが、出したままでなんとかならないか。
-skelton.nifのcollision消せば当たり判定がなくなると思ったのですが無くならなかったのでどうすればいいのか
 ・これができれば1番目の問題解決するかな…と。
190名無しさんの野望:2011/03/12(土) 23:05:59.82 ID:BiIp+N3W
>>189
MPCの前方追尾機能もねずみ使ってやってるんですけど、動作はあまり美味く行かないですね
PCの前方は指定できてもねずみがそこに行こうとするAIがあまり賢くないので変な動きになってしまうのが原因です

あとはFO3用で前方を照射する懐中電灯MODがあります、中身見れば参考になるかもしれない
ただしこの懐中電灯MODものすごい負荷が掛かるMODです
191名無しさんの野望:2011/03/12(土) 23:50:19.08 ID:tkdTjKGA
>>190
pathnodeに沿って動くから妙な感じになるんでしょうか。
たまに何処かにすっ飛んでいったりするんですよね。
もしかしたら負荷すごいと敵が行動できなくなるかもしれません。
最初は戦闘中も動く設定だったのですが、戦闘中も動かすと敵の移動idleがうまく動作せずに前に進めなくなりました。
MPCは戦闘になると処理をやめて戦闘始めるので同じく戦闘での処理はカットしました。

懐中電灯はdemoを観ると原理同じで、等間隔に光源を置いてるのかな?
残念ながらfalloutは持ってないのでちょっと中見れなさそうです。
192名無しさんの野望:2011/03/13(日) 00:25:02.75 ID:FzxuVAWT
顔のテクスチャを作成するために、oblivionのゲームに組み込まれた顔作成ツールで造った顔を
objなどの形式でエクスポートして、外部のアプリケーションに読み込みたいのですが、そういうことは可能でしょうか?
193名無しさんの野望:2011/03/13(日) 08:06:34.64 ID:5UOeXknL
>>187
NifSkopeだけで済ませるならbhkRighdBodyとbhkConvexVerticesShapeの間に
bhkTransformShapeの挿入で。
あとコリジョンの大きさはMassとかInertiaに関係するのでその辺の調整も必要に。

Blenderでコリジョンのスケールを直接弄った方が操作手順的には煩雑ですが
ややこしい話にはならないと思います。多分。
194名無しさんの野望:2011/03/13(日) 08:12:06.14 ID:5UOeXknL
>>189
敵に攻撃されない様にするにはSetGhostで。

SSみたいに光の当たり具合がおかしくなるのはLightをDisable→Enableで。
詳しくは過去スレのLightの移動の話を。場所は今ちょっと失念。

当り判定を無くすのは多分無理です。
Combat状態になるとPathを無視して相手目指して直進するのを止めたい、という事
でしたらSetGhostすればCombat状態にはならなくなると思います。

普通にFollowしている時に相手を押し退けたり地形に引っ掛かったりするのはそれで
いいんじゃないですかね。Lightなのに動きが有機的で面白い、という事で。

あとLightのCreature自体の動きがなんか変なのはkfの関係かも。未確認。
また移動先マーカーは特にCreatureでなくても。
過去スレの野次馬魔法の話とかその辺が多分参考に。
195名無しさんの野望:2011/03/13(日) 08:13:18.58 ID:5UOeXknL
>>192
簡単には行かないかもです。

で、CSでの顔作成って顔各部の「変形量」を操作するだけで、元になる頭モデルの形状は
変わってはいないです。
また顔テクスチャもその変形量に従って変形します。

なので仮に変形後の頭形状が出力出来たとして、それに合わせて顔テクスチャを描くと
ゲーム実行時にまた同じ変形が適用されてさらに変形して多分訳の分からない事に。

その辺ってOKなんでしょうか。
196名無しさんの野望:2011/03/13(日) 08:15:25.53 ID:5UOeXknL
今あまりレス出来ないので落ち着いたらまた。
197名無しさんの野望:2011/03/13(日) 13:00:15.06 ID:FzxuVAWT
>>195
ということはやはり基本の頭のメッシュ形状とUVを頼りにテクスチャを描くしか無いんですかね。
テクスチャを書いて、CS上で変形後のデータにテクスチャを当ててみて確かめる、と。
そういうやりかたが普通ですかね?

あと疑問なんですが、カスタムレースとか、頭のメッシュまるごと作り直してる?ようなMODはどうしているんでしょうか?
オリジナルのボーンからくるウェイトとか、アニメーションとかどうやって対処しているのかなと。

それと関係ない話ですが、オブリじゃないですが、Falloutだと、種族ごとの頭の基本形状のデータをみてると、
ある種族はテクスチャの歪みがないけれどほかの種族ではテクスチャがおもいっきりゆがんでいたりしたんですが、
ベセスダのゲームの設定はこのへん甘いんですかね。なんで種族ごとにテクスチャ用意しないんだろうと思ってデータ眺めてました。
となると、オブリでテクスチャを新しく書くにしても多少の歪みはしかたないのかな、と思ったんですが。
198名無しさんの野望:2011/03/13(日) 15:00:49.56 ID:VmtLnI9b
>>197
キャラクター専用でテクスチャー書くということはまず無理、基本メッシュのUVだよりです。
そのキャラだけにテクスチャーを適用させたければコピー種族を作るのが簡単でしょう。NPCの場合は非プレイアブルにすると喋らなくなるので注意です。

カスタムレースではblender等で変更後元のheadメッシュからデータを補完するやり方が多いようです。
頂点を移動するだけで追加しなければ変更可能です
以前拾ったヘッドメッシュの改変法
ttp://shy.jsphr.net/upload/img/ups24165.zip
なお自分は実践していないので質問には答えられないと思います

オークなんかもインペリアルのテクスチャー色変えてちょっと修正しただけですね
Vanillaだと人の鼻の穴のテクスチャーがそのまま残っているのでオークの鼻の下に黒い斑点があったりします
だた、結構少人数低予算で作られたゲームなのであまり突っ込むのも酷というものですよ

頭部の改変は失敗すると顔面が崩れて結構グロイ事になるので気をつけてください。

自分もしばらくはここを見る余裕無さそうですし、いつ停電になるかわからないのでPCを落とします、それでは〜
199名無しさんの野望:2011/03/13(日) 17:41:53.49 ID:z/3OmRi2
>>194
ありがとうございます!
setghostで戦闘がスムーズに行えるようになりました
lightの方式も参考になりました
交互に1フレームずらして入れ替えることでスムーズに表現できるんですね
同一処理にしたらうまく動きました
200名無しさんの野望:2011/03/14(月) 00:06:04.57 ID:HYHph5CZ
>>198
なるほどためになりました。
もう少しデータをみてみてから色々やってみようと思います。
地震で大変でしょうけど頑張ってください。どうもでした。
201名無しさんの野望:2011/03/15(火) 00:04:41.45 ID:lIVBFV8A
時間指定のイベントってどうやったら作れますか?
夜6時になると門が閉まる、みたいな…
202名無しさんの野望:2011/03/15(火) 01:22:09.82 ID:JGSfovK9
>>201
あくまでやっつけな簡単な例えみたいな感じだけど、参考になれば

if (GetCurrentTime == 18) ← PM18:00になったら
(ドアのID(例:doorRef)PlayGroup BackForward 1) ← これでドアの開閉アニメーションさせる事も可(当然アニメーションが設定されているもののみ)
ドアのID(例:doorRef) SetOpenState ← ドアを閉めた状態に(これもドアの開閉状態の設定があるもののみ)
ドアのID(例:doorRef).Lock 100 ← ドアに鍵かける
elseif (GetCurrentTime == 6) ← 今度はAM6時になったら
ドアのID(例:doorRef) SetOpenState 1 ← ドアをあいた状態にする
ドアのID(例:doorRef).Unlock ← ドアの鍵あける
endif

こんな感じでスクリプトに組み込めばいける。
多少雑だけど、流れはこんな感じ。
TES4_CS_Help_v1.1とかで必要なスクリプトを探して組みこむことになるから、
ゼロから学ぶとなるとだとけっこう大変かも。
203名無しさんの野望:2011/03/15(火) 01:29:04.02 ID:lIVBFV8A
>>202
おおお!!なるほど!
ありがとうございました!
難しそうだけどチャレンジしてみます!
204202:2011/03/15(火) 01:31:44.74 ID:JGSfovK9
ちょっと補足
ドアのIDっていうのは
実際にゲーム内に設置した該当オブジェクトのReferanceIDね。
CSのデータ一覧のIDの方だと使えないからね。
説明しずらいんだが・・・。
205名無しさんの野望:2011/03/15(火) 09:58:46.60 ID:7vzqaXDO
なんか仕様上できそうにないとは思うんですが、髪の一部だけ色を変えないという作り方は出来るんでしょうか?
たとえばヘアバンドやカチューシャは色を変えないけど、髪自身は色変えOKにしたい
という場合です
髪自身は1メッシュにしなければならないのでメッシュを分けるわけにもいかず・・・
1メッシュだとHair属性が反映されるのでヘアバンド等も色変更の影響を受けてしまいます

テクスでこういう書き方をすればOk等、何か方法があれば教えてもらえませんでしょうか?
206名無しさんの野望:2011/03/15(火) 17:06:52.50 ID:7mVfoN9b
むかしAmy Hairで髪飾りを作るときにA-Type2さまからこんなコメントをもらったことあります

--アクセサリの色について--

髪の色をスライダーで変更したときに、どの程度影響を受けるかは、髪メッシュのVertex Colorで決まります。白が影響大、黒が影響無しです。
髪飾りやマスクなど、色を固定したい部分はVCを黒にしておけばOKです。


ダメBlogの『巻き髪ってムズゥ〜(解決編?)』で一応記事にしたことがあります
それにしても原発のニュースが怖すぎて新ネタがつくれない・・・

207名無しさんの野望:2011/03/16(水) 10:31:37.82 ID:vUum/xNn
質問です
家具のスケールを弄りたいのですが
nifskopeの0ninode>右クリ>transform>editの中のscaleを変更し
saveしても反映されません
blenderで地道に変えるしかないでしょうか
208205:2011/03/16(水) 12:06:26.40 ID:m9f/HVPr
>>206
ありがとう!
おかげで思ってた髪ができました。
まさかバーテックスカラーで設定するとは・・・
まったく見落としてました。
209名無しさんの野望:2011/03/16(水) 12:09:51.12 ID:X1eiJA5R
NiNodeじゃなくてNiTriStripsのscaleを変更してみては?
210名無しさんの野望:2011/03/16(水) 13:16:47.35 ID:CtcjcwuP
>>207
何をしたいのかによるよ
モデルのスケールを変えると、既存の家具すべての大きさが変わるけどいいの?
新しく置いた奴の大きさだけを変えたいんだったら、
変えたい家具を置いてからRenderWindowの3Dモデルをダブルクリックして
縮尺(Scale) を変更すればいい
211名無しさんの野望:2011/03/16(水) 13:44:06.26 ID:0nU1kUVF
あ、時々ある大きさがおかしいオブジェクトはそれで演出してるのか。
212名無しさんの野望:2011/03/16(水) 14:51:11.70 ID:4Ag5DPqG
二種類ある
そもそものモデルであるnifを弄ってるのもあれば、CS上でサイズだけを弄ってるのもあったり

白金塔地下の巨大砂時計とか巨大クラブとかはもともと大きくて、悪夢の塔の家具とかはCSで、じゃなかったっけか
213207:2011/03/16(水) 15:34:03.26 ID:vUum/xNn
>>209
ありがとう
ただそのやり方だとcollisionのscalをが変えるにはどうしたらいいのでしょうか
>>210
ありがとう
既存の家具の大きさを変えたいのでnifでやりたいんです
214名無しさんの野望:2011/03/16(水) 21:25:50.94 ID:0rKUK4RC
失礼します。
既存のリソースをリテクスチャして、模様違いのアイテムを作ろうとしていますが、
実際にゲーム中に呼び出してみると、以下のようになってしまいます。
ttp://shy.jsphr.net/upload/img/ups24242.jpg
左端のきちんと表示されているのが元のリソースで、
他の黒く影に沈んでいるのが新しくテクスチャを作成したものです。
上がたいまつをつけた状態、下がたいまつを消した状態です。
nifskope上ではこのように普通に表示されます。
ttp://shy.jsphr.net/upload/img/ups24235.jpg

手順としては、ddsを画像編集ソフトで開いて編集→名前を変えて保存し、
nifskopeでnifを開き、テクスチャの指定を先ほど作ったテクスチャに変え、
他のところは触らずに別名で保存しました。
装備のリカラー等していた時はこの方法で上手くいったように思うのですが、
何処か設定を間違っているのでしょうか?
ゲーム中に普通の明るさで表示したいです。
解決方法解る方いらっしゃいましたら教えて下さい、宜しくお願いします。
215214:2011/03/16(水) 22:36:40.65 ID:0rKUK4RC
>>214です
追記します。テクスチャを保存する時の設定は
DXT1 ARGB 4bpp 1bit alpha と
DXT5 ARGB 8bpp interpolated alplaの両方を試しています。
共にGenerateMIPmapsにチェックをいれています
(use existingMIPmapsは試してみたところテクスチャがうまく表示されませんでした)

暗くて分かりづらいのですがとにかく暗くなっているということ以外、
うっすらと見えるテクスチャは作成したものと一致していると思います。
左端のように明るく表示させる方法が解る方、どうぞ宜しくお願いします。
216名無しさんの野望:2011/03/16(水) 22:37:44.96 ID:MYEpvwaS
>>214
ノーマルマップは作ってるよね?アルファー値は元のノーマルマップと同じくらいになってますか?
217名無しさんの野望:2011/03/16(水) 22:48:49.25 ID:KIr+ayXk
ノーマルマップをうっかりグレースケールやカラーのままセーブしたときにそうなった気がするような、しないような。
218名無しさんの野望:2011/03/16(水) 23:21:53.40 ID:0rKUK4RC
>>216,217
解決しました、ありがとうございます!自分の勘違いでした…
小さいものなのでノーマルマップは元のリソースと共有にしようとしていたのですが、
ひとつのノーマルマップを複数のnifで共有する時のファイル名のつけ方を
間違ってつけており、ノーマルマップが指定されていない状態でした。
勘違いでお手間取らせて失礼しました、ありがとうございました!
219名無しさんの野望:2011/03/16(水) 23:24:25.17 ID:MYEpvwaS
>>218
あーファイル名は自分もよくやりますwがんばってくださ〜い
220名無しさんの野望:2011/03/17(木) 10:21:23.49 ID:Sobj+P3w
>>213
bhkCollisionObjectの少し下にあるbhkPackedNiTriStripsの中に、
ScaleがXYZそれぞれにあるからそれをいじるといいかも
ただし、NifScopeでは対応していないようなので、NifScope上の表示は変わらないです
コンソールからTCGでゲーム中のコリジョンを確認できるからそれで

bhkPackedNiTriStripsが無い時(bhkBoxShapeとかシンプルな形の時)は
そのShapeを見れば大体見当がつくと思われ

スケール変更すると家具が浮いたりすることがあるから、その時は
NiTriStrips(表示メッシュ)、bhkRigidBodyT(コリジョン)で位置調整が必要
221名無しさんの野望:2011/03/19(土) 12:37:46.26 ID:KfiBFKlT
Apachiiの厚底ブーツは普通に履くと足が短くなってしまうため
少々手を加えvipcxjで美脚ブーツになるように設定を変更してみました

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

しかし歩くとふくらはぎが露出してしまう問題が発生しました

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

画像はイベントリ画面ですが膝が曲がると出てしまうようです
nifscopeでcalfをいじってみたりもしましたが少しいじった程度では収まらず、
大幅にいじるとブーツの形が歪んでしまいます

どのあたりをいじればよいのか助言をお願いします
222名無しさんの野望:2011/03/19(土) 13:24:46.83 ID:zJbFsyhC
>>221
たぶんウェイトの問題かなぁ
blenderとかじゃないと解決できないかも
223名無しさんの野望:2011/03/19(土) 13:27:27.56 ID:CaTqX0Jp
BlenderでWeightを修正して、
足首や脛の動きに連動してくれるようにするしかないねー
224221:2011/03/19(土) 14:40:46.90 ID:xEre70xh
>>222>>223
ありがとうございます
blenderに挑戦してみます
考えても見れば爪先へ向かうほど大きく動くわけなのではみ出るのは当たり前ですね
225名無しさんの野望:2011/03/19(土) 18:37:50.81 ID:DztW9iXg
>>138
亀で申し訳ないですが出来ました!ありがとうございます
作成方法にクセがあるのか手順の意味を理解していないのか 
安定して作るにはもう一歩検証が必要そうですが
随分と長い間試行錯誤していたので出来てホッとしました
226名無しさんの野望:2011/03/20(日) 01:05:46.72 ID:1cOnjl+E
Reznod MannequinsやReal MannequinのマネキンNPCをアクティベート
出来ないただの置物にしたい(例えばStatic)場合、スクリプトのみで
実現可能なものなんでしょうか?

227名無しさんの野望:2011/03/20(日) 23:38:26.48 ID:CRnt5Rv/
初歩的な質問で申し訳ありませんm(_ _)m

今、他の人が作ったパワーアタックモーションを弄ろうと思ってます
まず既存のkfファイルをkfextractorを使ってblenderやnifskopeで扱えるようにしたのはいいのですが
それからの手順がいまいち分かりません・・
↓こんな感じです

既存のパワーアタックモーションのnifを用意してみる

kfextractorを使ってnifskopeやblender扱えるように変換
(この時はnifskopeでモーション再生できてます)

blenderで少し弄ってみる
(とりあえずテストということでキャラを少し上にずらしてみました
ゲームで正しく動けばキャラが宙に浮いてモーションを繰り出す感じになるはず)

kfで出力

nifskopeでモーション再生できなくなってるし(†←こんな感じで突っ立ったまま)
しかもそのままパワーアタックモーションとしてオブリに突っ込むと
セーブデータのロードでCTD( ゚д゚)ポカーン

確かにblenderでそのまま吐いたkfは妙に容量大きいし
なんかヘンだと思ってたけど、でもkfで出力したあとの手順がよくわかんないですヽ(`Д´)ノウワァァァン!!

つくづく初歩的な質問ですが
どなたか詳しい方よろしくお願いします\(__ )
228名無しさんの野望:2011/03/20(日) 23:51:59.42 ID:CRnt5Rv/
あああ
ごめんなさい
色々間違えてへんな勘違いしてました・・

↑の途中からムシして下さい
正しくはこうです・・

blenderで少し弄ってみる

nifで出力(この時点でnifskopeで再生しても†←こんな感じに)

template_xxのkfとkfinjectorを使ってオブリで使えるはずのkfに変換

うまくいきませんヽ(`Д´)ノウワァァァン!!

template_xxのtemplate.kfを使って変換してみましたが
変換後のkfがtemplate.kfと同じ容量であれ?とは思いましたが
再びkfinjectorでnifskopeで再生できるように変換してみてもちゃんと動いてくれません_ノフ○...

もしかしてtemplate.kfの代わりに何か自分で用意しないとだめなのかなぁ・・
ていうかblenderで出力したやつもおかしいし・・

再び、どなたかお願いしますm(__)m
229名無しさんの野望:2011/03/21(月) 11:48:46.45 ID:ao2PPjHG
>>228
blender2.49と最新のnifscriptならkfinjector使わなくても行けなかったかな?
230名無しさんの野望:2011/03/21(月) 11:56:18.81 ID:ao2PPjHG
231名無しさんの野望:2011/03/21(月) 17:34:00.69 ID:6tlTj1sr
どうもです\(__ )
頑張ってみます
232名無しさんの野望:2011/03/21(月) 20:04:08.83 ID:Z9ZmRRXD
>>227-231
以下がインストールされていればkfextractorを使わずに弄れますよ。
・Blender ver.2.49b
・Python ver.2.6(か、それより新しいもの。ただし3.0以降は不可)
・PyFFI ver.2.1.5(か、それより新しいもの)
・Blender NIF Scripts ver.2.5.5

Blenderを起動してBlender_KF_SupportPackの「skeletonbeast.nif」をインポート、
その際は「Keyframe File」として編集したいkfファイルを指定して
↓のような設定で行ってください。ただし「Import Animation」はオンで。
http://life4oblivion.web.fc2.com/vehicle/img/blender02.png

そしたらカカシにアニメーションが付いているので、お好みの体メッシュを
インポートしてヒトとして見れるようにします。
その際の設定は↓のような感じで
http://life4oblivion.web.fc2.com/vehicle/img/blender04.png

ちなみに、kfファイルは動きのデータだけを持ちますので、どんなメッシュを
インポートしても成果物は同じですし、インポートしなくても影響ありません。

もし説明が間違ってたりしたらすみません。自分でわかることだったら何でも
答えますのでお気軽にどうぞ。
233名無しさんの野望:2011/03/21(月) 22:54:43.77 ID:6tlTj1sr
>>232
ありがとうございます( ´∀`)

インポートして弄ったファイルを吐いていざオブリで使ってみても
武器構えた瞬間CTDでうんうんうんうん唸ってたけど
nifskopeでkfファイルに「name attack○○power」て入れないとだめだったんですね('A`)

それでも、おかげさまで無事モーションを編集してオブリに導入することができました!
・・が、いざパワーアタックモーションを使ってみても、あれ?普通に地面に足ついてる?
(つまり編集する前となんにも変わってないです)

↓こんな感じにしたはずなのですが・・
ttp://shy.jsphr.net/upload/img/ups24433.png

もしかしてモーションの座標はまた別のところで弄らないとだめなのでしょうか?
実は少しだけ宙に浮いた感じのモーションも作ってみたかったりするので・・
度々申し訳ないです(m´・ω・`)m
234名無しさんの野望:2011/03/22(火) 12:43:51.76 ID:6ULMawYX
>>233
NifSkopeで見れる「NiControllerSequence」のValueはどうでも良さそうに見えて
重要みたいです。同じValueの他のkfファイルがあると誤作動することがあるので、
そういう時は拡張子をkfから変えたり、他の場所に移す必要があります。

私も試して試してみましたができましたよ。
http://moto4life.web.fc2.com/material/powerattack01.jpg

どこで高さを変えていますか? 私の場合、Bip01 NonAccumで変わりました。
キャラクターの位置を司るBip01だと高さは変わりせんでした。
同様にBIp01 Pelvisで変わるのかは試してないです。

あと私が以前陥った謎のバグとして、他でも発生するかわからないんですが、
Exportした後にBlendファイルとして保存すると、以後そのBlendファイルは
同じファイル名でExportしないと以前と同じファイルが出力されることがありました。

何言ってるかわからないかもしれませんが、Exportする時のファイル名は
export.nifとかで固定したほうが無難かもしれません。私だけかもしれませんが。。。

素晴らしいアニメーション楽しみにしてますね!
235名無しさんの野望:2011/03/22(火) 15:05:45.61 ID:7U2ZUgIS
質問です。
NPCに対して、containerを関連付けて、モノを放り込めば、それを着るようにしたいと思います。
ICEGHouseのスクリプトを参考に組みましたが、変数がうまく定義できていないとして、スクリプトが保存できません。
ちょっと全文晒します。

236名無しさんの野望:2011/03/22(火) 15:06:08.30 ID:7U2ZUgIS
【以下スクリプト】
scn TestClothChange01

ref C01;DrawersのReferenceID(この名前をつけてContainer配置)
short equip
short check
ref EquiopBox

begin OnActive;DrawersをActivateしたとき
set EquipBox to GetSelf
if EquipBox == Tansu01Ref;タンスにつけるReferenceID(Container配置済み)
aaaMaid01Ref.RemoveAllItems C01;aaaMaid01RefはNPCのReference ID
C01.Activate Player 1
set equip to 1
endif
end


237名無しさんの野望:2011/03/22(火) 15:06:22.11 ID:7U2ZUgIS
Begin GameMode

if equip == 1
C01.RemoveAllItems aaaMaid01Ref
set equip to 2
endif

if equip == 2
aaaMaid01Ref.AddItem aaaDummyRobe ,1
aaaMaid01Ref.AddItem aaaDummyNecklace ,1
aaaMaid01Ref.EquipItem aaaDummyRobe
aaaMaid01Ref.EquipItem aaaDummyNecklace
aaaMaid01Ref.RemoveItem aaaDummyRobe
aaaMaid01Ref.RemoveItem aaaDummyNecklace
set equip to 3
endif

[終わり]
変数EquipBoxが未定義だと出てきます。
どの変が悪いのか判らないので、教えてください。
238名無しさんの野望:2011/03/22(火) 15:54:28.67 ID:w1LYEBX7
? ref EquiopBox
○ ref EquipBox
239名無しさんの野望:2011/03/22(火) 15:58:49.37 ID:MruvHcIi
>>236
確認ですが、"C01"というReferenceIDを付けたContainerが配置されているのですよね?

ならば、本文中には、ref C01と変数宣言せずに使える
というか多分宣言してしまうと、想定通り動かない気がする

EquipBoxが未定義と言われるのは、宣言の所が誤字ってるからかな?
ref EquiopBox ;←ココ
240名無しさんの野望:2011/03/22(火) 16:46:18.19 ID:7U2ZUgIS
>>238
そこか?!
ありがとうございます。
>>239
ref C01 でなくてそのまま使って大丈夫ということでしょうか?
むしろ、Containerおかずに、そのまま宣言したほうがいいということになりますかね?
どっちも試してみることにします!
241名無しさんの野望:2011/03/22(火) 17:39:01.49 ID:DLi4WNUb
>>234
おおお!!
Bip01 NonAccumで試したら無事浮きました!!
ありがとうございます!!
頑張って改造してみます

ですが、一つ気になったのが
Bip01 NonAccumでの座標の変更が50フレーム分にも及ぶので
一つ一つ変更するのはなかなか大変でした(ヽ´ω`)
少しだけのモーションならまだしも、色々なモーションで試してみたいので・・

blender自体の質問になってしまうのですが、
座標の一括変更などの便利機能はなかったりしないでしょうか・・?
重ね重ねすみません<(_ _)>
242名無しさんの野望:2011/03/22(火) 18:18:52.37 ID:6ULMawYX
>>241
全フレームがキーフレームになってることって結構あると思うんですが、
複数のキーフレームを一気に削除する方法は知らないです。どなたか
Blenderに詳しい方で知っていらっしゃる方はいないかな??

ただ今回の目的が「Z軸の座標の変更だけ」で、キーフレームに座標の変更が
含まれない(回転・スケールだけ)の場合は、「Loc」で座標だけInsertKey
すればできますよ。

全てのキーフレームに座標の変更まで含まれている場合でも
IPOカーブエディターを使えばすんなりいく可能性があります。

IPOカーブエディターを出して、IPOタイプをPoseにしてBip01 NonAccumを選択。
Bip01 NonAccumのキーフレームが表示されるので、Tabキーを押して編集可能にし
右上のLocZ(Z座標)をクリックした後に<A>を何度か押して全選択にして、
<G>→<Y>で上下だけに動くようになるので、好みの高さで確定。

Blender全般の操作として、<G>は移動、その後の<X/Y/Z>は軸の固定です。

多分これで前キーフレームの高さを一括で変えられると思います。
IPOカーブエディターの操作はわかりづらいので、「Blender IPOウィンドウ」
とかで検索すると解説サイトさんが見つかると思います。
243名無しさんの野望:2011/03/22(火) 19:18:49.31 ID:DLi4WNUb
>>242
おおお!できました!
ありがとうございます!!
これならNonAccumだけでなく足とかの角度をちょこっと変えたいときにも応用できそうですねー

親切にどうもありがとでした(^^)/
244名無しさんの野望:2011/03/22(火) 23:44:55.09 ID:w628Mr7e
Nifscopeを開こうとしたら
「cygwin1.dllが見つかりません」と出て開けません。
どうすれば開けるようになるでしょうか?
245名無しさんの野望:2011/03/23(水) 04:56:05.36 ID:B6kWdg55
スクリプトに関する初歩的な質問なのですが、ある関数を(set to 1)のように固定値にセットするのではなく、
ある挙動をするたびにその関数を一定ポイント増減したい場合などは、どのようにすれば良いのでしょうか
246名無しさんの野望:2011/03/23(水) 05:14:37.77 ID:zLLNb2eJ
set x to x + 1
247名無しさんの野望:2011/03/23(水) 05:34:46.03 ID:B6kWdg55
>>246
どうもです
248名無しさんの野望:2011/03/23(水) 11:07:23.05 ID:CTUF6KiU
NPC美人化MODを作りたいんですけど
これはNPCに顔移植→esp作って別名で保存でOKですか?
249名無しさんの野望:2011/03/23(水) 12:50:37.25 ID:QwOM1mfU
>>248
それで合ってますよ。
注意するのは変更部分はフェイスデータ以外は変更しないことと、
キャラによっては種族を変更するとゲームに支障が起こる事がある場合があります。
配布の際はWrye Bashで「NoMerge」「NpcFaces」タグにチェックを入れておくと親切だと思います。


少し長くなりますが、アニメーションファイルについて質問させて下さい。

Sephs Hand to Hand Animation Replacer
http://planetelderscrolls.gamespy.com/View.php?view=User.EntriesListing&id=134492

こちらに添付してあるモーション速度変更について自分なりに訳してみたのですが、

モーション速度を1.3倍にしたい場合

1)Frequencyの数値を1.0→1.3

2)TextKeyののTimeを変更→例えばEndの方で数値が3.0667の時、1.3倍にしたい場合

 3.0667x0.3 = 0.92001
 3.0667 - 0.92001 = 2.14669
 四捨五入して2.1467    
→入力する数値は2.1467

3)Startの場合も同様の計算式。
  この場合導き出される解は1.4467だが、ゲーム上だと微妙に誤差があったので1.5467にしたら上手くいったよ!

…という事で合ってるでしょうか?
あと、速度を2.0倍以上にしたい場合は0.3の部分に幾つを入力してやれば良いのでしょうか?
素のまま2.0を入力すると解はマイナス以下になってしまうのですが…
250名無しさんの野望:2011/03/23(水) 14:18:44.04 ID:CTUF6KiU
>>249
了解です、ありがとうございます
配布とかはするつもりないのですが頑張ります!
251名無しさんの野望:2011/03/23(水) 14:31:59.84 ID:VrTZ1Gkn
>>249
間違っているところもあるかもしれませんが、自分の知ってる限りです。

まず、モーションの再生速度の決まり方は2通りあることを確認しています。
・idle,forward,attack等…アクターのSPEED
・SpecialIdle…Blenderで設定できるFPS

前者は、例えばキャラが強くなってSPEEDが上がれば走りが速くなるといった具合。
後者はSPEEDには全く影響されず、Blenderの設定にのみ影響されます。

それで>>249さんの書き込みについてですが、

1)Frequencyの数字を1.0から変更
これでモーションの再生速度を変えられるとは知りませんでした。勉強になりました。

2)TextKeyのStartとEndのTime変更
これはそのkfファイルに含まれるどこからどこまでのフレームをモーション
として再生するかの設定です。1フレームから31フレームまでとか。
再生速度には関係ないです。
それと、ここの数字の大きさはBlenderで設定したFPSの値に反比例します。

ということで、Frequencyをいじるのが良いと思います。
あと最後の計算ですが、引き算じゃなくて割り算のほうがわかりやすいと
思いますよ。
1.0→1.3倍:3.0667 / 1.3 = 2.359
1.0→2.0倍:3.0667 / 2.0 = 1.53335
252名無しさんの野望:2011/03/23(水) 15:05:44.38 ID:QwOM1mfU
>>251
おお、こちらの方がはるかに解りやすいですね。
StartのTimeの値を大きく、EndのTimeの値を小さくすると前後のモーションが
省略されるという事ですね。

余談ですが、>>249のMODは全体的にモーションが大きいので
技が出切った時に当たってる様に見せたかったらTextKeyもいじった方が
いいよと言う配慮だった様です。この計算式も多分「大雑把な目安として」という程度に
考えた方が良さそうですね。説明を受けてようやく気付きました。
ありがとうございます。
253名無しさんの野望:2011/03/23(水) 22:31:13.54 ID:YtaTi1ew
ある新規Cell内において、コンテナからインベントリに移動した専用アイテムを
Script上で判別し、あとでインベントリから削除できるようにしたいと考えています。
力技ならば見通しがあると思っていますが、もう少しスマートに出来ないものかと
調査と浅慮を重ねているところでして助言をいただきたく。
(力技→専用アイテム全てのObjectIDがインベントリにあるか無いかひとつひとつチェックして
ある場合はRemoveItemsで削除。ただアイテム数が多いと記述するのが辛い)

1)全アイテムのEditorIDを「aaa****」とし、先頭のaaaの部分を判別し
 インベントリから削除するコマンドはあるでしょうか
 (RemoveItemsなどのコマンドはEditorIDを全て指定しないとダメですよね?)
2)空のコンテナとアイテムの入っている専用コンテナを用意し
 専用コンテナ内のアイテムのEditorIDをScriptから参照し
 式EditorIDを付与して空のコンテナに格納することは可能でしょうか
 (上記「aaa****」のようにルールを持たせたEditorIDを付与出来たら
 手間がすごく減るのでありがたい)

毎度毎度聞いてばかりですみませんが、よろしくお願いします。
254名無しさんの野望:2011/03/23(水) 23:09:47.68 ID:AdbqM0HR
>>253
ゲーム中からEditorIDを参照することは出来ないんで、その方法は無理だと思われ
名前で判断することも出来るけど、誤爆が怖いかも
(そのアイテムがどのMOD由来かまでチェックすれば問題ない)

ある程度楽したいなら、標本を入れておくコンテナを用意して、その中に専用アイテムをあらかじめ入れておく
そのコンテナの中身をGetItemsで取得して、同じアイテムを持っているか調べて削除
(サンプルのrefからgetBaseObjectでbaseObjectを取得しなきゃいけないかも。未確認)

これなら、追加する時もスクリプトは変更せずに標本コンテナに放り込むだけでいいと思う
255名無しさんの野望:2011/03/23(水) 23:31:28.13 ID:zLLNb2eJ
>>253
予めアイテムのFormIDを正規化しておけるなら範囲で判定出来る

aaaItemA 000101
aaaItemB 000102
aaaItemC 000103
    :
aaaItemZ 00011A


インベントリをチェックするループ内で下記のような判定でおk

if itemRef >= aaaItemA && itemRef <= aaaItemZ
; 専用アイテムの場合
inventoryRef.RemoveItem itemRef 1
endif


FormIDの調整はTES4EDIT
256253:2011/03/24(木) 07:45:50.29 ID:ir2GI4MX
>>254,255
ありがとうございます。
目から鱗です。
色々試してみたいと思います。
257名無しさんの野望:2011/03/24(木) 19:56:22.95 ID:X/7/xsUU
オブジェクトアイテムについて質問です。
MOD等で良くある「壁に掲示してある新聞」が作りたくてStatic化してみたのですが、
一部の壁などに貼るとアクティベート出来ない不具合が出てしまいます。
現物→http://shy.jsphr.net/upload/img/ups24523.7z

見た目はおかしくないのですがどうも当たり判定が変みたいで…
武器のコリジョンについては既存の物を多少数値をいじる程度はやった事はあるので
手当たり次第に数字をいじくってみたのですが、今回はbhkCapsuleShapeもbhkBoxShapeも
見当たらないので見当がつかず、途方にくれています。
どうかご教授をお願いします。
258253:2011/03/24(木) 20:34:10.92 ID:RifQNYjd
CS wikiとにらめっこしてたのですが良く分からないですorz
参考になりそうなMODをご存知でしたら教えていただけないでしょうか。
ここらへんを勉強したいです→GetItems、GetInventoryObject、GetNumItems

>>257
詳しくないのですが、CSでActivatorに登録してないとか?
259名無しさんの野望:2011/03/24(木) 21:01:30.98 ID:pxPFaJY7
>>258
インベントリアイテムを順番にチェックする、ということなら以下が参考になるかと
http://cs.elderscrolls.com/constwiki/index.php/Walking_Through_Inventory_Items
260名無しさんの野望:2011/03/24(木) 21:54:20.29 ID:6XQjADWr
>>258
Book扱いにして壁に貼り付けています。
壁ではなく、床に置いた場合は大抵問題ないのですが・・・
261名無しさんの野望:2011/03/24(木) 22:03:09.85 ID:LKi5lsyy
>>260
解決とかできないけど
ドアとか傾けるとアクティベート判定がほとんどなくなったりするから
コリジョン以外にもなにかあるのかもね
262名無しさんの野望:2011/03/24(木) 22:14:22.58 ID:6XQjADWr
>>261
ちょうどそれと同じ感じです。
似たようなMODだとBlack Horse Courier Expandedでも掲示板の新聞を
アクティベート出来ない事があったので似たような症状かもしれません。
263名無しさんの野望:2011/03/24(木) 22:21:15.91 ID:/GgWhjHQ
壁のコリジョンは壁表面より手前にあることが多いから、
掲示板新聞のコリジョンを手前に厚くするか、
少しだけ新聞オブジェクトを手前ぎみに配置すれば
アクティベートできることがあるかもしれないけど…
264名無しさんの野望:2011/03/24(木) 22:35:59.61 ID:6XQjADWr
>>263
なるほど、他のオブジェクトのコリジョンの事を失念してました。

http://shy.jsphr.net/upload/img/ups24529.jpg
この場合は額縁のコリジョンに埋まっちゃってるのが原因ぽいですが
これだと壁に直接貼っても無理っぽいですねorz

>掲示板新聞のコリジョンを厚くする
その方向で考えていたんですが、武器とはコリジョンの仕様が違ってて
いじるべき数値が解らなかったので書き込ませて頂いた次第です。
265名無しさんの野望:2011/03/24(木) 22:47:30.77 ID://dyqzSg
いっそコリジョンボックスで覆って、そっちに新聞のアクティベト設定するとかな
ancient towerの剥製とかで使われてる方法だけど、狙った奴のサイズが小さかったりすると重宝する
266253:2011/03/24(木) 22:48:35.28 ID:RifQNYjd
>>259
ありがとうございます。熟読してみます。
探してるんですが中々見つからないもんですね。
他にもしかしてこのMODは使ってるかも?っていうのでもありましたら、お手数ですが是非。


>>264
コリジョンの位置はbhkCollisionObject>bhkRigidBodyTのTranslationで変えられますよ。
(ゲーム中で反映されるか未確認けれども)
267名無しさんの野望:2011/03/24(木) 23:04:56.16 ID:53SjoccV
オブジェクトメッシュとコリジョンが全然別の位置にあっても問題なかった記憶があるので多分大丈夫かと。

帝都の門番衛兵の頭近くにコリジョンメッシュを置いてオブジェクトメッシュは壁の中、
コリジョンメッシュに椅子の設定をしてアクティベートしたら肩車、なんて実験をしたことがw
268名無しさんの野望:2011/03/24(木) 23:08:36.47 ID:6XQjADWr
置くのはおkなら、机に置けばいいじゃない!
という事で急場しのぎしてました。掲示板のリソースが欲しい。とりあえず読めますが・・・。
http://shy.jsphr.net/upload/img/ups24531.jpg

>>264
このnifだとサイズが変更できず位置だけ変化しちゃうみたいですが、どの道
壁に埋もれるのでそれでも良いかもしれませんね。ありがとうございます。
269名無しさんの野望:2011/03/24(木) 23:28:52.72 ID:dUblcQLz
644 名前: 実況しちゃダメ流浪の民@ピンキー [sage] 投稿日: 2011/03/24(木) 23:23:56.99 0
規制されてる…MOD作成支援スレに頼む!

>>268
VanillaのStaticなBookオブジェクト(wantedposter02static.nifなど)を見てみてくれ
コリジョン情報の最下層にあるbhkNiTriStripsDataのVerticesでズラッと出てくる値を
一つずつNifSkopeの画面で確認しながら弄っていけば、
コリジョンそのもののサイズを変えられるハズ
確かにbhkRigidBodyTのTranslationだと位置しか変えられないけどね。
あまりに頂点が多いと死ねるけど、wantedposter02static.nifでも
25頂点くらいだったはずだから、根性出せばイケる!
まずwantedposter02static.nifからパクって、
それから頂点移動させてけばいいと思う。
俺がやったときは、それで上手くいった。
270名無しさんの野望:2011/03/25(金) 00:00:27.43 ID:Mv/QN/Lf
>>269
なるほど、そこをいじれば良いのか!
皆さんのお陰で何とか解決できそうです。ありがとうございます。
271名無しさんの野望:2011/03/25(金) 22:10:17.69 ID:V0z/NaNC
バニラの看板の、テクスチャ部分だけを改変してパス指定したものをCSでactivaterとして登録しました
すると、ゲーム内では毎回看板部分のみが触ってもいない状態で外れて落下してしまいます。どのような原因が考えられますか?
ttp://shy.jsphr.net/upload/img/ups24563.jpg
272名無しさんの野望:2011/03/25(金) 22:47:12.26 ID:ji7qHP5o
>>271
以前にも似たような話題がありましたが物によると絶対パスじゃないと落ちる看板があるそうな
残念ながら対処法はcドライブ以下にテクスチャーフォルダー作るしかなかったような
ひょっとするとテクスチャーをBSA圧縮すると行けるかも
273名無しさんの野望:2011/03/25(金) 23:41:36.25 ID:V0z/NaNC
>>272
なるほど・・・
雰囲気を無視して落ちない一体型の看板でやってみようと思います どうもでした
274名無しさんの野望:2011/03/25(金) 23:59:05.69 ID:jRLMAZl/
ちょっと考えが纏まらないので此方で
パートナーにおける衣装箱みたいなのを町全体で共有して日替わりで装備するみたいな事って出来るでしょうか?
他のMODで入れた装備をその箱にいれとけば次の日には誰かが装備していて街が華やかになると思うんですが
275名無しさんの野望:2011/03/26(土) 00:56:02.25 ID:d+VZRSrC
NPC全員にAI追加して衣装箱チェックさせてscriptで云々て手順で出来るんじゃないでしょうか
現実的には各家庭に衣装箱おいてチェックさせるとか…
ただ持ってる衣装を装備するかどうかはよくわかんないすね
装備の優先度的なものが、詳しい人お願い!
276名無しさんの野望:2011/03/26(土) 07:36:12.81 ID:zAfTMbLt
優先度はしらないけど
AI全員に追加って力技でいいなら、
RemoveAllitemsつかって
倉庫を一時的に持たせれば何か装備させて戻すとか?

AI全部追加する時点で競合とかおそろしいことになりそうだけどw
277名無しさんの野望:2011/03/27(日) 09:13:51.84 ID:ZGuYzOdL
サック作って絶対使わないセルにおいてファクションで所有する
PCがMOD装備入れるコンテナを用意して、Activateすると上のサックREFをactivateするスクリプトを張る
コンテナに装備品を入れまくる
まで思いつくけど、NPCって既存NPCだよね?
NPCにファクション追加して、なんらかのスクリプトか
AI張らないといけなくなるだろうからいい案思いつかないや。結構面白そうなんだけどw
クエストスクリプトで管理できないかな?



278名無しさんの野望:2011/03/27(日) 09:36:53.64 ID:ay+ZiZYq
箱から出す動作考えないなら、GetFirstRefでNPCサーチして
GetEquippedObject→RemoveItemで、その後にアイテム渡す
GetEquippedObjectで取得される装備によって、渡すコンテナの指定変えれば
ある程度幅広がりそう、更に広げるならGetRandomPercentで割り振りかな
279名無しさんの野望:2011/03/27(日) 11:20:04.50 ID:Bn0CIzpi
レオタード作ったんだが、どう見てもボディペイントにしか見えないです
マテリアルの設定とかテクスチャの書き方支援サイトってありませんか?
280名無しさんの野望:2011/03/27(日) 11:27:05.61 ID:+vro93Qe
マテリアルの設定は反射とか弄るトコです。テカテカにしたいとか
有名Modderさんのマテリアル設定を参考にすれば良いかと
ノーマルマップでも反射率は弄れますが、ちょっとだけ難度は高いかも
となさんチュートリアルとかサイトでの解説が詳しいです
簡単に言うと、ノーマルマップのアルファチャンネルが明るいほどテカります

Textureはオブリに限定するから見つからないんであって
普通にPhotoshopの素材描きテクニック的なサイトならいくらでもあるしょ
基本的に、半年、数年続けて上達していくものなので、一朝一夕にはいきませんが頑張って。
281名無しさんの野望:2011/03/27(日) 18:26:31.96 ID:2g2/WxC6
Natulal Magic skill Increaces を改変して Vanillaの使用回数+Modよるスキルの経験地上昇
の形にしたいのですが、スクリプトの中で
「GetSkillUseIncrement Alteration 1」 とは、Alterationスキルに関する何を参照しているのでしょうか?
要領を得ない質問で申し訳ありません
282名無しさんの野望:2011/03/27(日) 20:15:06.07 ID:BpNJbKVB
>>281
http://cs.elderscrolls.com/constwiki/index.php/GetSkillUseIncrement
例文見る限りでは、得るものは
「Gets the experience point increase for one use of a skill action. 」
なのでwhichAction:intに対応する個々のアクションに対応した経験値だと思う。
ただ、whichAction:intが指すアクションが何であるかの一覧は無さそう。
GetSkillUseIncrement Alchemy 1 だとポーション作成
GetSkillUseIncrement Alchemy 0 だと素材摂取
みたいなシステム内で対応付けられたアクションみたいだけどちょっと検索しただけでは分からなかった。
Forumあたりで聞いてみるか件のMODのスクリプトを見てそこから類推してみたら?
283名無しさんの野望:2011/03/28(月) 12:01:13.74 ID:zS/w7p8B
>>281
Alterration(っていうか魔法系統)の1のアクションは魔法がヒットしたときの獲得経験値ですね
ちなみに0は魔法の詠唱したとき
ここの指定値は、モノによって違う(たとえばAthketicsなら0が走ってるとき、1が泳いでるとき)
284名無しさんの野望:2011/03/28(月) 21:38:24.33 ID:ur0eun4A
>>282-283
ご返答ありがとうございます
SkillUseIncrement は各スキルのそれぞれの行動に対する経験地(メジャー、マイナーなどに影響を受ける)ということですね

ここからはチラ裏ですが、スクリプトの頭で
Set BaseAlt to GetSkillUseIncrement Alteration 1 と BaseAlt などに変数を取っているので
最後に BaseAlt を加算してやれば、Mod+Vanillaの経験地上昇を確保できそうです
また他の変数を取って、SkillUseIncrement Alteration 0 に当ててやれば呪文を唱えただけで、経験地が入りそうですね
285名無しさんの野望:2011/03/28(月) 22:06:27.73 ID:/gln+AjG
>>前スレ974さん
ありがとうございます、簡略化バージョンで
無事にコロルの酒場に入ってスープを頂くことができました

手動で食品登録しようと思うので宜しければ
そちらの意図したカロリー等教えて頂けませんでしょうか
286名無しさんの野望:2011/03/28(月) 22:15:26.82 ID:/gln+AjG
と、誤爆しました
MOD晒しスレにもう一度投稿し直してまいります
287名無しさんの野望:2011/03/30(水) 00:33:12.21 ID:i30BicaJ
supreme magickaのdestraction魔法の効果(よろめきetc)はどこで設定されているんでしょうか?
288名無しさんの野望:2011/03/30(水) 21:10:12.45 ID:deBwnSna
blenderで服作ってるのですが、シャツとパンツを結合してレオタード
にする・・みたいな事をするにはどうすればいいのですか?
289名無しさんの野望:2011/03/30(水) 21:19:50.65 ID:FwUegDyw
パンツとシャツをインポートして
ふたつ選んでctrl+JでMeshを統合して隙間を埋めてレオタードにして
一旦Weight削除して保存して
Nifskopeで素体の上半身と下半身をコピペして一体化したNifつくって
レオタードのBlendファイルにインポートして
Root以下にCtrl+Pでレオタードを素体Rootの子にして
素体を全頂点選択、レオタードを全頂点選択してWeightをコピーして
ペイントで調整して素体をAlt+PでRootから取り除いて
レオタードのマテリアル設定してエクスポートでNifに吐き出して
Texture描いてノーマルマップ作って
Nifskopeで調整してesp作ってゲームに登録してイヤーンてポーズ取って楽しむ
290288:2011/03/30(水) 22:04:18.32 ID:deBwnSna
>>289
ありがとうございます。とりあえず頑張ってみます。
291名無しさんの野望:2011/03/31(木) 08:03:38.52 ID:5ZmjdUfK
プレイ半年間の素人ですが質問させて下さい
Exterior_Actors_Have_Torchesで
松明の代わりにランタンを持たせる
ようにするには、どうしたらよいのでしょうか?

もしくはそのようなMODをつくることは
困難なのでしょうか?
よろしくお願いします
292名無しさんの野望:2011/04/01(金) 12:37:10.55 ID:GTa9d/A3
>>291
そのModは知らないんですがランタンのデータをすでに持ってるなら
ランタンのテクスチャーをそのまま導入
ランタンのnifの名前をトーチのものに変更、ランタンとトーチのnifを入れ替えでできないかな?
293名無しさんの野望:2011/04/01(金) 17:48:28.16 ID:c7WXFW2o
自分も入れてないから詳しくは知らないけど
確かそのMODってトーチのコピ一つくってNPCに持たせるんじゃなかったっけ?
294名無しさんの野望:2011/04/01(金) 18:13:03.01 ID:ZX+mmLFR
>>292
レスありがとうございます
CSでランタンを指定してあげたのですが
松明を灯してしまいます

>>293
はい
コピーを持たせるものとデフォルトのものを
持たせる2種類があります
洞窟内はともかく、街中で松明というのに
違和感を感じたもので
295名無しさんの野望:2011/04/02(土) 09:47:50.38 ID:mwxhRf44
見てる人少なさそうなので周知しときます
CSEが5.0にVerUpしたそうです
個人的にうれしいのはIdleのパスを編集するツールのバグが直ったこと
Specialidleを登録する作業が大分楽になりそう
296名無しさんの野望:2011/04/02(土) 16:30:20.14 ID:Jbm8Brlr
先日、ブーツを作成してみたのですが、
ゲームで動作確認すると
↓の画像の様にテクスチャが滅茶苦茶になってしまいます。
http://img135.imageshack.us/img135/30/ca113.jpg

Nifskopeでは問題なく表示されるのですが、どうすればテクスチャが
正しく表示されるようになるのでしょうか?

297名無しさんの野望:2011/04/02(土) 17:41:56.84 ID:BzgOSCeT
>>296
それだけではよくわからないけど、ノーマルマップは作ってありますか?他にはnifskopeでface normals、smooth normals、update tangent spaceかな
あと一応sageてね
298名無しさんの野望:2011/04/02(土) 19:52:42.30 ID:Jbm8Brlr

>>297
ノーマルマップは作っていたのですが、もう一度作りなおしたところ
正常に表示されました。
ありがとうございました。
299名無しさんの野望:2011/04/03(日) 19:08:26.13 ID:wAOCQbMe
blenderで防具作ってるんですが、一旦作業を中断しようとデータをエクスポートして
nifskopeで見てみたところ、各パーツNiTriStripsData以外全て消えてしまってました。
たぶんblenderにインポートする前にnifskopeでNiMaterialPropertyとNiTexturingPropertyを
消去して保存したことが原因じゃないかと思ってます。
これを復元することって可能なんでしょうか?
300名無しさんの野望:2011/04/03(日) 19:13:04.45 ID:x8wMCWf4
>>299
niskinなんちゃらが消えてるのはスキニング情報が消えてるから
blenderでボーンと親子指定してウェイトを塗るなりコピーするなりしないといけない
NiMaterialPropertyとNiTexturingPropertyはnifskopeもう一つ起動して適当な装備からcopybranch、pastebranchでいける
301299:2011/04/03(日) 19:17:49.79 ID:wAOCQbMe
>>300
復元可能みたいですね!ありがとうございます。
半日の苦労が水の泡にならずにすみます・・。
302299:2011/04/03(日) 20:00:44.55 ID:wAOCQbMe
度々すいません299ですが、NiBinaryExtraDataも復元できるんでしょうか?
よく読んでみるとふれられてないみたいなんでちょっと不安になっちゃいまして・・。
303名無しさんの野望:2011/04/03(日) 22:07:01.32 ID:x8wMCWf4
>>302
nifskopeでメッシュを右クリックNode→Attach ExtraData→NiBinaryExtraDataまあ、元メッシュからコピペで行けるかもしれないけど
304299:2011/04/03(日) 22:28:08.03 ID:wAOCQbMe
>>303
ありがとうございます。
やってみたところBinary Dataが0 bytesとなってますが大丈夫なのでしょうか・・?
305名無しさんの野望:2011/04/04(月) 01:29:35.41 ID:rSYE4xGF
ある対象のオブジェ(参照用editorID=xxxx)との距離150以内、でスクリプトを動かしたいのですが、
プレイヤーと対象の距離ならばif ( player.GetDistance xxxx <= 150 )で動くのですが、
これをあるNPCと対象の距離の場合、どのように表記すれば良いのでしょうか?
例としてAbhukiとその対象との距離ならば、if ( Abhuki.GetDistance xxxx <= 150 )かと思ったのですが、動きませんでした。
306名無しさんの野望:2011/04/05(火) 02:46:27.17 ID:6BmgL79c
>>305
自己解決しました・・・
307名無しさんの野望:2011/04/07(木) 06:54:44.53 ID:gHh5EHdJ
ヘッドメッシュを改変して専用の睫毛を用意しようと思ったのですが、
Blenderで目の輪郭に合わせてEyelashのメッシュを変形させ、ゲーム内で確認したところ
前髪と睫毛が被ってる部分だけ睫毛が消えるようになってしまいました

アングルを変えたりすると見えたりするので完全にダメというわけではなさそうですが、
何か必要な作業が抜けているということでしょうか?
前髪とかぶってない下の睫毛等はしっかりと表示されています
308名無しさんの野望:2011/04/07(木) 07:41:56.53 ID:TrRaM+Eo
透過テクスチャが重なった場合におきる3Dゲーム全般での仕様です
309名無しさんの野望:2011/04/07(木) 14:47:39.19 ID:t5xp93Xr
>>307
睫毛MODの話だと思うのですが、その睫毛nifのNiTriShape/StripData→Centerの「Y」を
「0(仮)」にするとどうなります?

それで改善するなら半透明オブジェのShape/Stripe単位での中心位置と描画順の
ソートとかその辺の話です。多分。
310名無しさんの野望:2011/04/07(木) 22:54:08.28 ID:gHh5EHdJ
>>308
言われてみるとそういう現象ってどっかでみたような…
>>309
アドバイスありがとうございます
試してみたところ、やはり睫毛がしっかり描画されるというまでには至りませんでした
斜めのアングルから見たときに妙にメッシュの形状が浮き出てしまったような
そんな感じになりました
311名無しさんの野望:2011/04/08(金) 00:47:12.85 ID:2LdlTzGN
>>310
もし後ろや下方向にボリウムのあるMOD髪型ならそこを例えばX:0,Y:-10,Z:-10とかに。

で、その場合も正面から見た時は多分睫毛が前髪より先に描画されて正常に重なって
見えると思うのですが、横から見て睫毛と側面奥の髪が重なったりすると今度は
奥の髪の方が描画されずに睫毛が浮いた様に見える場合もあるかもです。

これは構造上避けられないです。
312名無しさんの野望:2011/04/08(金) 00:56:41.18 ID:WiGZNxzs
ABCの順に透過は良いとして、
じゃぁBAに見える角度は?とか
CAは?とか、AがUの型のMeshの場合、ABCAだとどうなる?とか
お手上げですわね

何年も前からこの仕様だけど、根本的に3Dイメージエンジン側で対応出来ないスかねー
313名無しさんの野望:2011/04/08(金) 01:25:33.97 ID:2LdlTzGN
高精度アルファ描画のオプションとかあればいいんですけどね。
現状はゲーム用途という事で速度重視のオブジェ単位の描画順ソートになってるん
でしょう。多分。
314名無しさんの野望:2011/04/08(金) 07:54:16.21 ID:pxA3+FZF
人工少女が>311さんの書いてある方式だったかな
前髪とは一緒に表示できるけど、角度によっては背景が透けて見える
315名無しさんの野望:2011/04/09(土) 00:54:21.57 ID:EOTd4dFO
サラっとすごい事できるんだな。俺は髪と睫のメッシュくっつけてちまちまtriファイル作ってたよ
316名無しさんの野望:2011/04/10(日) 12:49:39.55 ID:Y+/P3B1g
スクリプトに関して質問させてください
現在、武器を抜刀した状態では表示され、納めている状態では消える武器を作ろうとしていて
スクリプトのSetscaleを使用して抜刀状態ではscale1、納刀時はscale0になるようにしようとしているのですが
武器を指定してSetscaleするにはどうすればいいでしょうか?
武器のID(aaPoleArmの様な…)を直接入力してaaPoleArm.Setscale to 0のように指定してみたのですがこの記述ではセーブ出来ませんでした
317名無しさんの野望:2011/04/10(日) 14:55:37.87 ID:IIyyix+h
>>316
装備中の武器はScaleを変更しても反映されないです
正しくは、持ち主のScaleがそのまま武器に反映されます
ミノタウルスあたりが持っていた武器は、ミノさんが持っている間は大きくても
拾って装備したら普通の大きさになりますよね? つまりはそういうことです

納刀時に消すのなら、TonaさんのMODやBlackLusterの2刀流MODあたりを参考にすれば出来るんじゃないかな
318名無しさんの野望:2011/04/10(日) 15:27:21.15 ID:Y+/P3B1g
なんとなくそんな気はしていましたがやっぱりそうですか…
ざっと見たところ今までより大分複雑になるようですね。有難うございます。頑張ってみます
319名無しさんの野望:2011/04/10(日) 21:13:22.75 ID:qVHgbMM/
>>316
OBSEを使っていいのなら、納刀時にTextureパス変更をする
コマンドの「SetMaleBipedPath」が使えるとこちらで伺いました。
透明なTextureを用意すれば出来そうに思います。
アンカライトはOBSEを使わないで何とか・・・ってことで少し苦労してます。
320名無しさんの野望:2011/04/11(月) 00:29:55.82 ID:3W0fY4GD
ンー…あんまりespをサイズ大きくしたくないのでOBSEは使いたくないかな
というかOBSE使っていいならグラドリエル剣の方のスクリプトを書き換えるほうが楽に作れそうですね

そこまで必須で欲しい機能でもないし当面実装見送ります…
ってかご本人!?
321名無しさんの野望:2011/04/11(月) 00:34:44.98 ID:zY1K0gPA
質問です
CSでNPCを追加して会話を作っていたのですが、Response TextのEmotion Typeが空欄のままでEmotionが選択できません
昨日CSを弄り始めた初心者なので、原因がわかりません
どうかご教授お願いします
322名無しさんの野望:2011/04/11(月) 03:54:32.90 ID:SbBo/9i7
OSの録音デバイスが設定されてないと何故か表示されない、とかだった気がする
323名無しさんの野望:2011/04/11(月) 14:12:59.67 ID:nRpd0ghT
あるぇー
剣って装備時の形状がドロップアイテムになるんだね
鞘作った意味は装備時だけなのか
ちょっと寂しい…
324名無しさんの野望:2011/04/11(月) 16:39:36.88 ID:zY1K0gPA
>>322
オンボードの録音デバイスを有効にしたら選べるようになりました!
ありがとうごさいます
325名無しさんの野望:2011/04/11(月) 16:43:59.29 ID:bUrmvkTo
>>323
コリジョン設定して別に作らないと駄目よ
326名無しさんの野望:2011/04/12(火) 18:49:38.64 ID:w8GtcUIE
CSで地形をいじったのですが↓のように遠景だと元の地形のまま表示されるのをどうにかすることってできませんか?
http://shy.jsphr.net/upload/img/ups25342.jpg

もう一つ地形のテクスチャを塗っているといきなり塗れなくなることがあります
ヘルプにはセルごとにテクスチャ使用数制限があると書いてあるのですが同じセル内でも塗れなくなります
これってどういうことなんでしょうか
http://shy.jsphr.net/upload/img/ups25343.jpg
327名無しさんの野望:2011/04/12(火) 22:54:36.04 ID:mf37god0
今からモーションを作ろうとしたら、BBBのskeletonbeast.nifを使って作った素体で
作るのが基本ですか?
328名無しさんの野望:2011/04/12(火) 23:08:58.03 ID:/nObZNUM
>>326
TES4LODGenは実行した? もしかしたら関係あるかも。

テクスチャがセルとの境界線できっちり塗れなくなるのは、
カメラ位置がズレてるからだと思う。
CSのレンダーウィンドウで表示されていたとしても、実際に
テクスチャを濡れるのはカメラの真下付近にあるセルだけ。
塗りたいセルに近づけば大抵は塗れるかと。
329326:2011/04/13(水) 00:18:00.47 ID:5H4sqstA
>>328
解決しました!ありがとうございます
330名無しさんの野望:2011/04/14(木) 19:57:07.57 ID:8GzRD5xU
基本的な質問で申し訳ないのですが
100G払うと付いてきてくれる傭兵のNPCを作りたいのですが、
どういったプログラムを組めば良いのでしょうか?
331名無しさんの野望:2011/04/14(木) 20:20:39.92 ID:JO/EENbc
既存の装備をrobert male body体型に合わせたいのですが
robert male bodyのメッシュをBlenderでインポートする→続けて別レイヤで装備をインポートする→
robert male bodyを覆うように装備のメッシュを変形させるでOKですか?
332名無しさんの野望:2011/04/14(木) 22:31:04.70 ID:FqKRq4Rv
>>330
どこまで機能を持たすかによるんじゃないでしょうか??

プレイヤーに追従させるだけならFollowのAIパッケージつければOKですし、
「話しかける→100G払う→Follow」の流れならTopicを使えばできると思います。

最小限の機能で良いなら、一般的にイメージするようなプログラミングは
無くても動くと思います。RPGツクールのように設定するだけでOKで、スクリプトを
カリカリ書く必要はないと思います。
333名無しさんの野望:2011/04/14(木) 23:35:02.03 ID:J5b+9X4r
>>331
blenderでボーン情報を含むファイル2つ以上インポートすると
ボーンの情報が滅茶苦茶になるから
自分はnifskopeで装備と体型をニコイチにしてからblenderで読み込んでる。
334名無しさんの野望:2011/04/14(木) 23:59:56.80 ID:JO/EENbc
>>333
回答ありがとうございます、なるほど
以前太くすればいいんじゃねと言う安易な考えで
nifskopeでscaleを弄ったものを差し替えたら壮大に体から装備がズレてしまって…、
よく考えれば当たり前の結果なのですが
差し支えなければ大まかな手順をご教授頂きたいです
335名無しさんの野望:2011/04/15(金) 00:59:12.30 ID:Ac2fAR03
>>332
ありがとうございました。
336名無しさんの野望:2011/04/15(金) 02:07:13.95 ID:Xwfpll3e
>>333
1つめの装備を普通にインポートしてボーンを選択した後、2つめをインポート時の画面で
"Import Geometry + Parent To Selected Armature"
(意訳:選択したボーンが親になるメッシュのみをインポートして、選択したボーンに関連付ける)というのも使えるぞ

前準備として、Blenderを起動、"a"ですべて選択して削除で空にする→
適当なSkeleton(SkeletonBeastあたりが良いかと)を読み込んでボーン以外を削除→
File-Save Default Settings としておくと、次回からBlenderを起動すると初めからボーンだけが読み込まれてるから、
後はボーンを選択→"Import Geometry + Parent To Selected Armature"でメッシュのみを追加できるからマージとか楽
337名無しさんの野望:2011/04/15(金) 03:47:49.82 ID:KZswVU0M
>>332
どうやってTOPICを書いたらいいですか?
338名無しさんの野望:2011/04/15(金) 04:41:27.29 ID:CbTQJqQk
さすがにそれは
とりあえずCSのヘルプよんでから出直してきたほうがいいとおもうよ

339名無しさんの野望:2011/04/15(金) 06:10:03.84 ID:STzwyJqq
横からですけど。

>>337
まず一度ここをやってみるのがいいんじゃないですかね。

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

書いてある通りにすればコンパニオンの雛型が出来ます。
Topicの作り方もそこに。

操作手順や概念的に不明な事があるのなら、その記事のこの部分の操作がわかんない、
この操作はなんの為に必要なんだ、みたいに具体的に聞いてもらえれば。

また、「お金を渡す」、みたいな独自機能の話はまず雛型を作ってある程度全体を
把握してからの方が良さそうな気が。
340名無しさんの野望:2011/04/15(金) 10:48:02.72 ID:iqYHxqqZ
>>339
なんか複雑ですね…挑戦してみたいと思います。
ありがとうございました。
341名無しさんの野望:2011/04/15(金) 20:22:28.63 ID:zA1FO7lO
miscitemを非playableにするにはどうすればいいんでしょうか?
プレイヤーに見えないようtoken化したいのですが
clothingのようにチェックを入れるところがないようなのですけど
342名無しさんの野望:2011/04/17(日) 15:20:48.46 ID:Vatv+oXI
blenderで髪を自分用に改変してエクスポートしnifskopeで見てみると
新しく追加したメッシュの部分のテクスチャ表示がおかしく(テクスチャ全体をメッシュ1枚1枚に貼ったように)なるのですが
何が原因なんでしょうか?
343名無しさんの野望:2011/04/17(日) 15:53:40.56 ID:zqyCThGb
>>341
Playableフラグがあるのは装備品だけじゃないの
344名無しさんの野望:2011/04/17(日) 16:03:22.57 ID:THjhChkV
>>342
新たしく作ったメッシュの各面がUV展開されていない
345名無しさんの野望:2011/04/17(日) 21:31:44.22 ID:iake5Ibl
>>326
亀だけど、地形弄ったらheightmapeditorでgeberateLODして地形メッシュ
作らないと変更した地形は遠景では確認取れないよ
木とかのオブジェクトはLodGenでおkだけど
346名無しさんの野望:2011/04/18(月) 00:36:01.87 ID:ZVWACKar
初歩的な質問ですみません。

NPCやCreatureを条件満たした時にPlayerの仲間にするのってどうしたらいいんでしょうか?
お供させて戦闘時に味方として戦ってくれたりするようにしたいんですが…

条件満たした時に
Actor.SetFactionRank PlayerFaction 0
をするのでは駄目ですか?
(付いてこさせるのはFollowのAI Packageを追加?)
347名無しさんの野望:2011/04/18(月) 05:13:40.13 ID:2fBevajD
出回ってるコンパニオンMODを参考にしたらいいんじゃない?
たぶんPCとコンパニオンを不可視のファクションに入れてfollowさせてると思うけど詳しくは知らない。
348名無しさんの野望:2011/04/18(月) 05:42:34.18 ID:J+ROK9aQ
それであってる
ファクションあわせてフォローパッケ入れるだけだよ
あとはパッケのコンディションだけ
349sage:2011/04/18(月) 08:57:08.85 ID:7ASB/S1n
blenderのことで質問したいんですが
服の袖をめくり上げてるみたいにすることって
できるんでしょうか?
350名無しさんの野望:2011/04/18(月) 16:13:03.36 ID:fJqoDmZC
誰かボスケテ(;´Д`)

ss: http://shy.jsphr.net/upload/img/ups25520.jpg
blend: http://shy.jsphr.net/upload/img/ups25521.zip

Pelvisで位置決めてNonAccumで回転させてます。
仰向けとか横向きの寝ポーズは3つ作って全部大丈夫だったんですが、
うつぶせポーズやったとたん首がグギギギギ…
351名無しさんの野望:2011/04/18(月) 16:35:36.80 ID:6s/rzrgK
>>349
最初からめくりあげてる形でいいならその形に作ればいいだけ。
リアルタイムでめくりあげられてない状態からめくりあげられるようにするには
めくりあがる用のboneを仕込んでめくりあがるアニメを作る必要があります。
>>350
首(Nack1)と頭のプライオリティ99にしてもだめ?
352sage:2011/04/18(月) 18:18:59.56 ID:UwD2v+Sj
>>351
質問に答えていただきありがとうございます。
353名無しさんの野望:2011/04/18(月) 18:20:44.86 ID:DB1mLObh
現在、あるactivaterをactivateすると そのactivaterの位置に参照EditorIDを付けたstaticなオブジェクトを呼び寄せるスクリプトを作ろうとしています。
そこでmovetoを使用するのかと思いCShelp日本語訳を見たのですが、「この関数はアクターに使用する時だけ確実なものです。他のオブジェクトタイプを移動するのにこれを使用すると、予期しない振舞いをするかもしれません。」とあります。

このようなstaticなオブジェを呼び寄せる場合には、どのようなスクリプトを書けばよいのでしょうか?初歩的な質問で申し訳ないです。
354名無しさんの野望:2011/04/18(月) 21:12:38.97 ID:fJqoDmZC
>>351
全部Priority 99にしてんだけどダメみたいだぬぅ。
355名無しさんの野望:2011/04/18(月) 21:16:35.06 ID:GCthPxS6
全力スレにも書いたけど、こっちが妥当っぽそうなので再ご相談を

武器に付与するEnchantmentに対するReflectSpellの無視設定があればご教授頂きたいのですが…

現状、ScriptEffectStartのGetSelf(This)で取得するTargetID(仮refID)に対して、
即死させるTargetID.ForceAV Health 0がReflectSpellによって自分に跳ね返ってくるのをなんとかしたいのですが…

とりあえず、OnHitにすると特定キャラだけになるし、OnHitWithは矢とかにしか効果がない(?)

とりあえず、ReflectSpellChanceを0にしてみても効果なし。
攻撃のHITした時点でTargetIDが自分になるためなのか(?)
そのため、TargetIDのReflectSpellChanceを0にしても、何か自分のReflectChanceを0にしてるだけのようなorz

何か打開方法があれば、教えてください
356名無しさんの野望:2011/04/18(月) 23:11:44.33 ID:hnXeEb+V
>>354
首の向きを変えた場合、Previsを逆の方向に角度つけて、
NonAccumで調整でいいと思うんだけど、それだとうまくいかないということかな?
357名無しさんの野望:2011/04/19(火) 04:44:57.68 ID:02XsFi7B
>>347
>>348
回答有難うございます。
まだ上手く仲間っぽく出来てはいませんが
何となくやり方はわかってきた気がします。
358342:2011/04/19(火) 06:14:55.14 ID:S4RG9Wl2
>>344
亀ですいません。どうすれば展開させられるのでしょうか?
Aで全選択してuvunwapでは無理みたいなんですが・・。
359342:2011/04/19(火) 07:02:44.50 ID:S4RG9Wl2
すみません。いろいろやってたらなんとか成功しました。
ありがとうございました。
360名無しさんの野望:2011/04/19(火) 09:37:54.39 ID:i5qZtJ4H
>>350
それって多分「Bip01 head」と「Bip01 NonAccum」の方向の不一致です。

頭の向きってゲーム実行時にはNonAccumの方向がニュートラル位置と見なされるので、
kfで頭向きだけを変更してもゲームには反映されなかったりします。

また頭にはシステムによる視線のトラッキングとそれに伴う上半身の自動的な捻りが
あったりで思った通りにはならない事も。
これってPriorityで視線のトラッキングを抑止してもkfで頭を回すとそれに伴って
上半身の捻りはやはり起きたりするのでPriorityだけでは厳密には解決出来ないです。

なのでBip01HeadとNonAccumの方向が揃う様に各部の辻褄を合わせればそれが頭の
ニュートラル位置になって頭はその向きを保持する様になるのですが、手順的に少し
ややこしいので詳しくは過去スレPart5の970以降と994を。
361名無しさんの野望:2011/04/19(火) 09:41:07.41 ID:i5qZtJ4H
>>353
静的なオブジェをMoveToする話はここを。

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

OBSEを使ってOKならDisable→Enableの代わりに「Update3D」で多分。

でも、Activatorの位置が決まっているなら特にMoveToしなくてもあらかじめその場所
にそのStaticなオブジェを配置して「InitiallyDisabled」をチェック、OnActivateで
そのRefをEnableすればOKそうな気も。
362名無しさんの野望:2011/04/19(火) 09:47:34.44 ID:i5qZtJ4H
>>355
武器EnchantのReflect抑止の指定は無いかもですね。

とりあえずはそのEnchantのScriptのGetSelfでPlayerを除外するのが手っ取り早いかも。
またPlayer決め打ちではなく厳密に武器の「持ち主」を除外する事も出来るかもですが、
多分少しややこしく。

あと、相手を単に一撃で倒すだけなら「Kill」が適当かもです。
「ForceAV 0」でも問題は無いと思うのですが、一般的にはActorValueの変更は
「ScriptModifier」とかその辺の関係で少しややこしくなる場合もあるかもなので。
363350:2011/04/19(火) 10:57:22.16 ID:Bmun86ZE
>>356 >>360
過去スレ5の970を見た上で、じゃあ具体的にどうすんのよ?ってのが分からなかった
ので格闘してたんですg、994にSUGOIのがあったんですn!

とりあえず我流で半解決は以下な感じですが、994のblend使ったほうが超良さそう(´ω`)

NonAccumとPelvisのrotationをとりあえず全部0.0にする。
Pelvisより上のSpineからHeadまでの全ての回転行列を掛け合わせる。
(Spine->Spine1->Spine2->Neck->Neck1->Head1)
オイラー角表現されているので全部足せばイイ(タブン
で、算出されたのがglobalのheadのrotationになる(ハズ
この符号を反転させたものをPelvisの回転にブチ込む。
計算結果が [10.1,-20.2,30.5] なら [-10.1,20.2,-30.5] をブチ込む。
(NonAccum基点の空間内でのHead01の方向合わせになるのかな?結果的に。
計算間違いをしていなければHeadのAxis MaxtixとNonAccumのAxis Matrixが
一致するハズ。(要は同じ方向を向くハズ(微妙に合わないかも?何か足りない?
この状態でNonAccumを回転させて元のポーズの向きに合わせて、
Pelvisで元のポーズ位置に戻してやると大体合う。

全然間違ってたらごめんなさい(´ω`)
あ、そうだ。ありがとう!
364名無しさんの野望:2011/04/19(火) 15:42:58.31 ID:i5qZtJ4H
>>363
過去スレPart5の話って大元はそのスレ960さんご質問の、

>解説サイトを参考にBip01 PelvisとBip01 NonAccumを回転させ頭の位置を調節する

てな手順の話がまずあって、それが前提になってます。

具体的には、まずNonAccumを一切動かさずにPelvisより上だけで頭の回転も含めた
最終的な姿勢を作り、それが出来たら顔が正面(Y軸正方向、NonAccumと同じ方向)に
正立して見える様にPelvisだけを回転し、今度は元の位置にPelvisは動かさずに
NonAccumだけを回転して戻す、みたいな手順だったと思います。

その結果としてHeadとNonAccumが同じ方向を向く事に。

(これって以前有名どころのポーズ解説サイト等に書いてあった方法だと思うのですが、
でも今探してみたら記事が更新されたりでなんか見つかりませんでした)

で、理屈的には仰る通りPelvis→Headまでの各関節毎のローカルなの回転変換行列を
順次掛け合わせ、その結果をNonAccumに掛けて今度はその逆変換をPelvisに掛ければ
同じ事になると思います。

でも毎回手計算だと知恵熱が出そうですし、真面目に正攻法で計算を自動化するには
スクリプトが必要になったりで多分大掛りに。
またこの場合オイラー角での加算、逆符号ではうまくないかもです。

なのでその辺の簡略化の為にPart5/994の.blendでは、ConstraintでHeadの
グローバル(WorldSpace)なRotationをNonAccumにまずコピーしてHeadと向きを常時同じ
にし、Pelvisは独立した新規ボーンの「PelvisControl」のRotation、Translationを
常時コピーする事でNonAccumの子供でありながらその移動回転の影響を受けず任意に
PelvisControl経由でNonAccumから独立して動かせる様にする、という事をやってます。

これ言葉で説明すると逆に非常にややこしいのですが。その辺はフォースの力で。
365名無しさんの野望:2011/04/19(火) 19:06:43.37 ID:Bmun86ZE
>>364
OH…そいや行列積って可換では無いのでオイラー角符号反転は
ちょっと乱暴でしたn正確にやるには逆行列をマジメに計算しないとなのかn

994blendに関しては、本来ならばNonAccumに対してHead01が倣うのが筋だけど、
ユーザ的に操作したいのはHead01なので、Constraint経由でNonAccumを
合わせてあげている。で、その際にPelvisで辻褄を合わせておきたいがPelvisがNonAccumの
子なので、影響下に無い独立したPelvisControlでバイパスしてあげてる感じですかn
くッ…フォースがたりないっ でもパズル的で面白いですn

なにはともあれ超勉強になりましたっ!
何故コレが起きるのか?というのと理屈的にどうすれば対処できるのか?
というのが理解できた(気がします(´ω`)
ありがとっ!
366名無しさんの野望:2011/04/19(火) 19:59:57.45 ID:zekRMNhy
>>355
まだ見てるか解らないですが、即死反射を避けたいだけなら
ヒットした相手の側に透明なActivatorをMovetoで呼び出して
そいつに即死魔法を唱えさせるというのはどうでしょうか。
これならプレイヤーには跳ね返ってこないし無機物だから死なないのでは。

参考になるかわかりませんが、Quest for DemonBaneというMODの表題名の武器で
同じ事をやってた記憶があります。
身近な所だとHumanTouchNPCの他者のヒールも似たような仕組みだった気が。
367名無しさんの野望:2011/04/19(火) 20:55:13.09 ID:F6rxmhVd
>>362
レスありがとうございます

Playerだけじゃなくて、コンパニオンとかその武器を拾ったNPCとかでも使えるようにしたいので、
できれば、「持ち主を除外」みたいなScriptを組めたらいいんですけどね…

ScriptEffectStartで、HITした時にその武器を装備している人のIDを取得、みたいなのがあればクリアできるのかな
で、HITしたIDと装備者IDが一緒ならReturnで返せばいいのか。
まぁ、その装備者IDを取得っていう関数が分からないのだが…orz

あと、「KILL」についてですけど、あえて「ForceAV」を使うのは、
KILLだと、自分が死んだ時にHPが残るのが不自然っていう、これだけの理由ですけどね。

変に他のScriptと競合するよなら変えた方がいいかもしれないですね。ありがとうございます。

>>366
まだ見てます、レスありがとうございます

ちょっと強引な対処法みたいで、
低脳にはScriptの組み方がイマイチついていけませんw

Activatorに攻撃がHITした即死させたいTargetに即死魔法を唱えさせる…
しかし、その攻撃をHITさせたIDをどうやって取得するんだろうか…みたいな。

Getselfだと、周知のとおりReflectSpellにすると自分にTargetされるから、呼び出したActivatorは
結局、自分に即死魔法を唱えてくるから、意味ないのかな?
他にTargetしたIDを取得する記述が、GetCombatIDくらいしか知らない低脳には理解できませんorz

言われたMODを見て、参考にしてみます。ありがとうございます!
368名無しさんの野望:2011/04/19(火) 21:16:28.99 ID:xihDoL5L
自分もmidasのエフェクトを使った必殺技武器を作っています
即死ではないので自分が食らうのもアクシデントでそれはそれで面白いですが)
私の場合、装備するキャラが決まっているので決め打ちで解決してます

以下は以前なんとなく考えただけで試してないんですが

1)on装備でダミーファクションに加入させて
on装備外しでダミーファクションを外す
ダミーファクションに加入している場合には無効

2)ON装備で病気spellを付与する
つまりエンチャントの効果を病気にふってしまう
(病気には魔法反射無効フラグをつける)
on装備外しで病気spellを外す

試してないんで病気特有の制限みたいのがあるやも?
同じ病気が何回も効果あったかは謎ですが
即死なら一回しかかからなくても問題ないかも
とりあえず近接攻撃しか駄目でしたっけ?
あと変なエフェクトがでてしまうやも
369名無しさんの野望:2011/04/19(火) 21:43:14.05 ID:zekRMNhy
>>367
なるほど、すいません。確かにActivatorがこっちに牙を剥く様な気がします。
考え足らずでした…。
DemonBaneは普段はただの武器だけど相手のFactionとAbilityを検知してDaedraクリーチャー又はドレモラと
判断すると超威力+まれに即死という武器なんですが、ディードラには魔法反射持ちが
基本的にいないので反射予防の意味もあるのかもしれません。
力になれず申し訳ないですorz


別の話になるんですが質問させて下さい。

いわゆる「フォースプッシュ」的な魔法を作っているのですが、
ちょっとした理由でこれを生きてるActorではなく死んでるActorに使いたいなと思ってます。

で、問題はPushActoraWayだと生きてるActorにしか使えないので
一度Resurrectして吹っ飛ばしてまたKillするというのを試してみたんですが(笑)
蘇生はするけど吹っ飛ばすに死に、しかもアクティベートも移動もできない物になってしまいます。

Resurrect 1
PushActoraWay
kill

という流れで合間に何のクッションも無いのが原因だと思うのですが、
何か良いお知恵を頂ける様でしたらお願い致します。
370名無しさんの野望:2011/04/19(火) 21:49:24.20 ID:i5qZtJ4H
>>365
そんなかんじです。
Headを任意に回転操作するとその結果が常時NonAccumにフィードバックされる、
みたいなイメージです。

またConstraintは描画時に常時実行されるので、NonAccum→Pelvis→Headの親子関係
がある所にHeadの回転変換を大元のNonAccumにフィードバックするとループが形成
され、変換/逆変換の誤差で妙な振動が起きたり、誤差の蓄積でどんどん変な方向に
回ったりする可能性もあり、その辺の予防の為にPelvisControlみたいなボーンを
入れて親子関係を切ってループしない様にしてたりします。

で、その辺考え方を変えて、Constraintを使わずにBlenderのスクリプトを書いて
kfをExportする前に一度だけ実行してNonAccumとPelvisに変換/逆変換を適用、
みたいな方法もあるかもですね。

スクリプトを一回だけ実行する形式ならループの心配は無いのでPelvisControlも
不要でボーン構成がすっきり、イメージ的にも分かりやすくなるかもです。

でもその辺の構造と操作方法って、静止ポーズ用途で一回だけ実行すればいいのか、
アニメ用途でキー毎に毎回実行が必要なのかでも変わってくるとは思いますが。

なんかもっと汎用なうまい方法があればいいんですけど。私もフォースが。
371名無しさんの野望:2011/04/19(火) 22:03:56.14 ID:i5qZtJ4H
>>367
真面目にEnchantのMagicEffectのCaster元のRefを検出するなら過去スレPart6/792の
話が参考になるかもです。
OBSEの「GetNthActiveEffect〜」関数群でそのMagicEffectを発生させたアイテムと
Casterを検出する例です。その時UPしたtxtの再掲です。

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

また>>366さんご紹介の方法でも行けるかもですよ。

その武器を振ったらその武器の持ち主前方にTriggdrZoneをMoveTo、OnTriggerで
交差した相手RefにそのTriggerZoneからTouchの反射無効な即死魔法をCastで。

TriggerZoneでうまくTouch魔法がCast出来るか、位置関係やタイミング的に
どうなのか、とかその辺は実際にやってみないとなんともですが。
でもうまく行けばスクリプトはそれほど複雑にはならない気も。

あと>>368さんのDiseaseも行けるんじゃないですかね。

なんか方法がいっぱいありそうなんで色々試してみると面白いかも。
372名無しさんの野望:2011/04/19(火) 22:26:59.39 ID:P4MfvFHB
>>367
その武器は自分で手渡す? 武器を拾ったNPCって事はLL等、適当に配置するのかな?
GetEquippedObjectで、装備調べてその武器を装備してたら除外じゃダメ?
相手側もその武器を持つことを想定してるなら、使い難いが
373名無しさんの野望:2011/04/19(火) 22:52:59.97 ID:tNhB2Q1q
これからオリジナルのMODを作ろうと思ってここのサイトを参考にさせていただいています
ttp://oblivionlain.blog111.fc2.com/blog-entry-62.html

オリジナルNPCを作ろう! 4.装備品の設定
オリジナルNPCを作ろう! 3.NPCの基本設定
オリジナルNPCを作ろう! 2.新規NPCを追加する

ここまではとても親切でわかりやすく、順調に出来たのですが

オリジナルNPCを作ろう! 5.NPCの配置〜AIパッケージの作成・設定

この「1.NPCを設置する」
の部分でわからなくなってしまいました
Cell View で場所を指定し、Render Windowにその場所を表示させることは出来ました
しかし、次の説明が「Render Windowにセルが表示されたら、作成したNPCをそこに配置します。」となっていて
どうやって作成したNPCを配置すればいいのかが端折られています・・・
きっとものすごい初歩なことなので省略されているのかも知れませんがそこがわからずに今躓いています

これはどうやって配置をすればいいんでしょうか??
この説明を詳しく書かれている初心者向けのサイトはありませんか?
よろしくお願いします。
374名無しさんの野望:2011/04/19(火) 23:02:22.66 ID:BNaQdCE9
>>373
オブジェクトウィンドウのリストから、
設置したいNPCをレンダーウィンドウへD&D
375名無しさんの野望:2011/04/19(火) 23:24:49.17 ID:tNhB2Q1q
>>374
出来た!!!
ありがとうございます!!
376名無しさんの野望:2011/04/20(水) 10:45:23.44 ID:H6Krrjxg
>>369
死体を飛ばす話ですが、透明なカタパルトをMoveToして、みたいなピタゴラ的手法
ではなくてもう少しスクリプト的な手法で、という事ですよね。多分。

同じフレームでその処理を連続して実行しても恐らくうまく行かないかもなので、
ScriptEffectUpdateで数フレーム(3〜5フレとか。恐らく最低でも2フレ以上)ずつ
間隔を置いて、

Resurrect 1
PlayGroup Idle 1
Player.PushActorAway 自分のRef 10(例えば)
Kill

とすればある程度はそれっぽく見えるかもです。

「PlayGroup Idle 1」は起き上がりアニメをキャンセルしてすぐにPushActrorAwayを
有効にする為。
またKillした時の「ウボァ」みたいな声を抑止出来るかは謎です。
377名無しさんの野望:2011/04/20(水) 18:42:15.77 ID:mpIakAMD
>>368
>>369
>>371
>>372
レスありがとうございます
本当に色々と参考になりました

とりあえず、自分にReflectしないってのが大条件だったので、
簡単に組めるGetEquippedObjectの方法で行かさせて頂きます
ありがとうございました

また、武器装備者同士でも発動させたい欲求に駆られたら参考にさせて頂きます
378名無しさんの野望:2011/04/20(水) 20:17:48.92 ID:i1xP6zjp
既出の質問かもで恐縮ですが、現在メインクエ含むNPC改変Modを作っておりまして、その際に
名詞もしとしん氏準拠になおしているのですがメインクエを進めてクラウドルーラーに到着した際
BrotherMartinからMartinに変わるタイミングのとこも日本語名詞にするのは何処を弄ればいいん
でしょう?

初めはマーティンのキャラ自体、他にストックがあって入れ替わるのかと思っていたらそうでない
みたいだし皆目見当がつかなくて何卒、お助けください。
379名無しさんの野望:2011/04/20(水) 21:00:33.68 ID:H6Krrjxg
>>378
クエストMQ04、Stage100のResultScriptに「MartinRef.setactorfullname "Martin"」が。
「Martin Septim」への改名はMQ12、Stage30です。多分。
380名無しさんの野望:2011/04/20(水) 21:22:25.48 ID:i1xP6zjp
>>379
解答ありがとうございます!
丁度、今そのあたりを見ておりまして、やはりメインクエストのスクリプト内ですか。名詞を入れ替えるだけとは
いえスクリプトその物を弄るのは初めてでドキドキ物です。念の為、確認を。これって""内を日本語にコピペする
だけでいいんですよね?
381名無しさんの野望:2011/04/20(水) 21:33:08.74 ID:H6Krrjxg
>>380
それでOKです。
改名前のMartinの所に行ってコンソールで「setstage mq04 100」とすると名前の変更が
確認出来ると思います。
382名無しさんの野望:2011/04/20(水) 21:54:02.88 ID:HQIc1dEX
>>376
レスありがとうございます。PushActrorAwayはいつでも発動できる訳じゃないんですね…
とりあえず組んでみて、対象がバグるのは回避できる様になりましたが、
ほとんど飛んでくれませんでした…
パッと見、格ゲー風に言うとPushActrorAwayキャンセルKillみたいな感じになります…。

実際のソース:http://shy.jsphr.net/upload/img/ups25584.7z

↑のソースの方では即死じゃなくてダメージで殺したらどうだろうと思い
1秒で即死する程度のDamage Healthを与えてみてますが結果は同じでしたorz
他にもタイマーつけたりしてみたんですが上手く動かず…

>カタパルトをMovetoして〜
上手くイメージ出来ないんですが、例になる様なMODってあるでしょうか?

邪魔な死体をどかしたいだけならダメージ魔法で対象を吹っ飛ばせば簡単な事なんですが、
それだと周囲に誤爆する危険があるのと、クリーチャーによっては中々飛んでくれないので
出来れば安全に豪快に吹っ飛ばせたらなぁと考えてます。
Disableすりゃいいじゃんと言われたら元も子もない話なんですが
383名無しさんの野望:2011/04/20(水) 21:55:03.26 ID:i1xP6zjp
確認出来ました、重ね重ねありがとうございました!
ttp://shy.jsphr.net/upload/img/ups25586.jpg
おそらくクエストを改変した為かクエスト名や説明文が英語に戻ってしまいましたが何となく要領が
解ってきたので、またどうしても解らなくなるまで自力で調べて対応してみます!
384名無しさんの野望:2011/04/20(水) 23:29:41.04 ID:H6Krrjxg
>>382
「間隔を置く」てのは各関数それぞれを一つずつ数フレームの間隔を置いて実行する、
て意味です。やっつけサンプルです。

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

Pushの強さ指定は少し弱くしてあります。
飛び上がる方向が一定しないかもなので、その場合は「Player.PushActorAway〜」と
すればプレイヤーの前方に飛ぶと思います。

カタパルトについてはこのスレ>>62を。
385名無しさんの野望:2011/04/20(水) 23:48:10.36 ID:HQIc1dEX
>>384
フレーム=ブロックて事かと思ってました。門外漢なもんですいませんorz
今まで「Setなんとか+なんとか」はほぼコピペで使ってたんで良く解って
なかったんですが、ちょっと掴めた気がします。勉強になりました。

>>62爆笑しましたw
据え置きと割り切るならこれも捨てがたいですが、ちょっと
頂いたサンプルの方で頑張ってみます。
386名無しさんの野望:2011/04/21(木) 11:16:39.49 ID:la5pUzmG
>>62のカタパルトみたいな静的なオブジェもゲーム中にMoveTo関数で任意の位置に
移動させる事は出来ますよ。

アニメでピュッと上に動く単なる箱型コリジョンだけのnifを作って適当なActivatorに
でも指定、Spellでそれを死体位置にMoveTo、PlayGroupでアニメさせれば任意位置の
死体をポンと射出する事が出来ると思います。
387名無しさんの野望:2011/04/22(金) 21:21:46.87 ID:lbHmHGsI
>>384
おおっと死体くん吹っ飛んだー!
何発打ってもでんぐり返りしかしてくれなかったのが嘘の様です。
ありがとうございます。

>>386
作れたら良いのですがBlederが鬼門で…
PushActorAwayとはまた違った味わいがあって面白そうですが。

家MOD用に作ってたのでカタパルトを何処かに設置して死体の方を
カタパルトにMovetoして飛ばすのも笑えそうだなと思ったんですが
設置スペースが思いつかなかったのでコンパクトに今回の成果物を杖にして使おうと思います。
見つけたら「お前か」と思って下さい(笑)
ありがとうございました
388名無しさんの野望:2011/04/22(金) 22:59:31.83 ID:YYaFCKLA
よ・・・ようやくnifファイル読み込めるようになった
何だ、tesnのセット使えばすぐなのかorz

自力で貧乳ボテを作ろうと思うのですが
ボディメッシュの胸や腹の編集方法が良くわかるサイトってないでしょうか?
389名無しさんの野望:2011/04/22(金) 23:49:32.37 ID:CZhvVxo9
駄目だorzポーズの一つも作成出来ない猿な私に助言をお願いします
かなり前に全力スレで似たような質問をして申し訳ないのですが…

使用中:Blender 2.49b, Python 2.6.5, Blender NIF Scripts 2.5.5, NifSkope 1.0.22, PyFFI 1.1.5
サポートパック0.4のベースファイルを読み込み、ポーズを一切変更せず一応A押しI押しLocRotで
確定後アニメーションオンリー、OBLIVIONに設定して出力
サポートパックのりどみ通りNifscopeでSpecialIdle、Cycle_Loopに修正してゲームで確かめたのですが
何度やってもポーズどころかスライムのようにキャラがグロく変形してしまいます

比較的最近のブログ等だと上記の手順以外にBlender等で必要手順は無さそうなのですが
いかんせんポーズを一切手をつけてない(案山子のまま)出力ですのでもう原因がさっぱりですorz
390名無しさんの野望:2011/04/23(土) 02:39:04.56 ID:EEimLE6E
全力スレで聞くべきなのかもしれませんが…
Damsels In Distressというmodの内容で質問です。
verup版であるDID3 - Double Troubleをいじっているのですが
難易度をあげる為に、捕虜へ自分の攻撃が当たるようにしたいと思っています。
wikiを見る限り、ゴースト属性がついているために攻撃無効なようなのですが
CSでどこをいじればゴースト属性が外せるのかわかりません…。
指南いただけないでしょうか?
391名無しさんの野望:2011/04/23(土) 08:53:21.47 ID:G3wwOVru
>>390
そのNPCの添付スクリプトで「SetGhost 0」とやればゴーストが解除されます。

Begin OnLoad
SetGhost 0
End

とやればシンプルに解除できるかもしれませんね。
392名無しさんの野望:2011/04/23(土) 09:11:27.66 ID:pAy50y4w
>>389
kfのexportが一瞬で終わっているなら、
もしかしたらObject Modeでbone選択しないでexportしてるかも?
393名無しさんの野望:2011/04/23(土) 10:40:07.74 ID:EEimLE6E
>391
ありがとうございます、ヒントもらえたおかげで
スクリプトの中からsetoghostの部分を見つけられました


しかし、敵に襲われないようにゴースト設定にしてるとスクリプト中で注釈がついてましたが
なんで敵に襲われないんだろう?
敵の攻撃は、実はきっちり当たるし
MPCとかとは普通に喧嘩して死ぬんですけど……
PCの攻撃が当たらないだけなんですよね
394名無しさんの野望:2011/04/23(土) 16:02:18.85 ID:ZP4FY1Lf
>>389
レスありがとうございます
一瞬では終わらないのでポーズモードのままbone全選択で出力出来てそうです

弄った結果あり得ない状態になったとかなら解るのですが
カカシ状態からノータッチでカカシにすらならないとなるともう何を疑っていいのやら
もう首から下が人として原形を留めないほどグチャグチャになったコンパニオン見るのは辛いですorz

395名無しさんの野望:2011/04/23(土) 16:03:19.43 ID:ZP4FY1Lf
間違えた…↑は>>392です
396名無しさんの野望:2011/04/23(土) 16:20:32.30 ID:QTUIbB0c
【質問です】

今 Blender(2.49b)を使っていて自作ポーズを作成中ですが
ポーズ作成後に export → NetImmerse/Gamebryo(.nif & .egm) って押しても
エラーが出てきて先に進めません。どうすればいいのでしょうか?

ちなみにエラーは2つ出ていて、内容は

PuFFI outdated,check console for details とマウスを少しずらすと
Python script error : check sonsole
397390:2011/04/23(土) 16:27:05.92 ID:EEimLE6E
結局、元からあるwait指示にsetghost 0を付け足して「自分でゴーストを外す」事にしました
出会って話しかけた直後に外すのを目指しましたが、無理っぽかったです
最初はゴーストじゃないと襲われるし、妥協ということで…

ありがとうございました
398名無しさんの野望:2011/04/23(土) 16:34:00.70 ID:EEimLE6E
761 名前:実況しちゃダメ流浪の民@ピンキー[sage] 投稿日:2011/04/23(土) 16:32:25.83 0
すみませんどなたか作成支援スレに転載お願いします。

>>394
pose modeじゃなくてobject modeでexportかも?
コレexportしたらどなりますかね?ウチだとちゃんとTポーズ立ちしまs

blend: http://shy.jsphr.net/upload/img/ups25667.zip
config: http://shy.jsphr.net/upload/img/ups25668.png

ちなみにウチの環境blender 2.49b+nifscripts 2.5.0-2みたいです。
微妙にバージョン違うのでその辺ですかねぇ?
399名無しさんの野望:2011/04/23(土) 17:55:04.44 ID:ZP4FY1Lf
>>398
転載ありがとうございます、そして返信してくれた方、ありがとうございました!

結論から言うと見事デフォのカカシ立ちに成功しました
決定打となったのは>>398の2枚目SSでした
何がイケなかったのかと言うと、Scale Correctionの値が10.00ではなく1.00になっていたのが
マズかったようです

何故1.00にしていたかと言うと初めてBlenderでヘッドメッシュ改変していた時に
10.00→メッシュがそもそもゲームで表示されない
1.00→まともに表示出来た(故にこの数値が正しいと思いこんだ)
ということがあったので、ポーズ作成において全く疑ってもみませんでした

皆さんのおかげでようやくスタートラインに立てました、新ポーズが出来たらスレにうpで還元しようと思います
本当にありがとうございました!
400名無しさんの野望:2011/04/23(土) 20:46:16.52 ID:dEZYeRYJ
Sims3の髪型をOblivionに移植する方法を詳しく解説してるところとか無いですかね?
Ren hairにobjをインポートするところまではいけるんですが、
足りてない部分を補ってやる方法がいまいちわかりません
401名無しさんの野望:2011/04/23(土) 21:18:04.33 ID:Y2I+AsxO
ScriptName xMilkSelfScript
Short Count
Begin ScriptEffectStart
if (Player.GetEquipped PSORing == 1)
return
endif
Player.RemoveItem xMilkBase,1
if (Player.GetItemCount xMilkBase == 0)
Player.RemoveSpell xMilkSelf
endif
Set xSelfMilk to 1
Player.PickIdle
Player.AddItem xBonyu01,20
endif

End
Begin ScriptEffectUpdate
Set Count to Count + 1
if (Count == 350 )
Set xSelfMilk to 2
Player.PickIdle
endif
if (Count == 650)
Set xSelfMilk to 3
Player.PickIdle
endif
End
と言った構文でモーション再製まではうまくいったのですが、この後通常のアイドル状態に戻すにはどこにどういった文をつければよいのでしょうか。どなたか御教授お願いいたします。
402名無しさんの野望:2011/04/23(土) 21:39:22.68 ID:G3wwOVru
>>401
通常のアイドルのモーションに戻すには「Player.Playgroup Idle 1」です。

状況説明も注釈も一切無いので何とも言いにくいのですが、とりあえず
それを試してみてください。
403名無しさんの野望:2011/04/23(土) 22:01:34.45 ID:4MKt7ahG
質問でっす。ホラー系のMOD作ってるんですが、志村!後ろ!後ろ!がやりたくて
スクリプトでtfcした後のカメラ位置って動かせたりするんでしょうか?
404403:2011/04/23(土) 22:04:03.04 ID:4MKt7ahG
ちょっと説明不足でした・・・手動で動かすんじゃなくて自動で、PCを前方から後ろに出現する
クリーチャーを映すような位置にカメラを飛ばしたいです。
405名無しさんの野望:2011/04/23(土) 22:41:02.06 ID:sjpNuPVj
今書けるかな?
406名無しさんの野望:2011/04/23(土) 22:47:49.34 ID:sjpNuPVj
失礼、書けますね。
S氏にお願いがあります。
A1HX
http://oblivion.z49.org/logs/dev/1269312819.html.gz#R561
で使われている skeletonD.nif を生成した Blend ファイルを頂戴することは可能でしょうか?
407名無しさんの野望:2011/04/24(日) 00:10:12.25 ID:KXhl0Qgh
>>402
ありがとうございます。
408名無しさんの野望:2011/04/24(日) 00:32:56.78 ID:Q6qIeWe1
>>406
SHYのups15150.zip(ORIGはa42.zip)の事ですよね。
これってSkeletonもkfもNifSkope上だけで手作業で作ったと思います。

Blenderでもある程度までは出来ると思いますが、Skeleton.nifをExportすると
コリジョンの種類やbhkRigidBodyの内容、Constraintの種類、動作角が固定になったり
するのでそのままではうまくないかもです。

なのでいずれにしろNifSkopeでの作業が必要に。
409名無しさんの野望:2011/04/24(日) 01:03:29.40 ID:GkfjL/7U
>>408
ありがとうございます。なるほど、了解です。
BlenderにImport時エラーが出たので一方通行ならBlendファイルをと思ったのですが
そもそもNifskope上のみでやられたのですね。
試してみます。
410名無しさんの野望:2011/04/24(日) 08:51:29.66 ID:SVtazwoz
質問です
CSで作業している時、クエストtopic上のスクリプトが消える時があるのですが
何かのバグでしょうか?

既出だとしたら対処法など教えていただけると助かります
411名無しさんの野望:2011/04/24(日) 09:17:09.52 ID:Q6qIeWe1
>>403
例えば、まずPCをSetAngle Zで後ろ向きに、Xを適当な仰角に→con_tfc→すぐPCの
Z向きを戻す→ToggleFirstPerson 0で三人称に→TapControl 1(Back)を適当なフレーム
数だけ実行してカメラを後方(=PCの前方)に移動、みたいにすれば行けるかもです。

でもこの場合カットつなぎ的な視点の瞬間移動ではなく、顔大アップからクレーンで
カメラをグーっと引く様な見た目の動きに。恐らく。

tfc以外にPCをクローンしても多分。その辺は演出のイメージに応じて。
412403:2011/04/24(日) 11:53:41.33 ID:VKgAKOqN
>>411
ありがとうございます。

あ〜そうか、PCクローンって手があるのか。でもコピー作っちゃうと色々大変そうですよね。
Deadly Reflexとか見てるとそう思ってしまう・・・
顔アップからのカメラ引き・・・そこまで高度な演出は考えてませんでしたw

待機アニメってしばらく放っておくとカメラ切り替わってPC中心にまわりだすじゃないですか?
ああいう感じで、特定の条件化で瞬時にカメラ移動出来ればいいなぁと思っておりました。
413名無しさんの野望:2011/04/24(日) 12:00:20.47 ID:KXhl0Qgh
たびたびすいません、うまくいかないもので。
呪文を唱えると三段アニメを取るというようにしたいのですが
Begin ScriptEffectStart
Player.RemoveItem xMilkBase,1
if (Player.GetItemCount xMilkBase == 0)
Player.RemoveSpell xMilkSelf
endif
Set xSelfMilk to 1//ここでグローバル関数1を取りモーション1を再生
Player.PickIdle
Player.AddItem xBonyu01,20
End
Begin ScriptEffectUpdate
Set Count to Count + 1
if (Count == 150 )
Set xSelfMilk to 2//ここでグローバル関数2を取りモーション2を再生
Player.PickIdle
endif
if (Count == 250)
Set xSelfMilk to 3//ここでグローバル関数3を取りモーション3を再生
Player.PickIdle
endif
if (Count == 350)
(ここでモーションをリセットしディフォルトに戻したい)
endif
End
最後のモーションをリセットするというところのやり方がわかり申さず。
具体的にはHTCLの「水を飲む→モーション→ディフォルト」といった流れを作りたいのです。どなたか御教授お願いいたします。
414名無しさんの野望:2011/04/24(日) 12:39:35.06 ID:6jEqbjEV
先人がどうやっているかをチェックしてみるのが早道かと
415名無しさんの野望:2011/04/24(日) 13:49:52.08 ID:yjQVUI5D
MessageBoxExで文章をセンタリングさせたいけど方法ってあるっけ?
CS wikiでは最初のサンプルの表示例がセンタリングされてるけど、あの表示例が実現できない。
それともmenuのいずれかのxmlとか弄れば行けるのかな?

選択肢だけ勝手にセンタリングされるのでバランスが悪い…。
416413:2011/04/24(日) 14:00:49.85 ID:KXhl0Qgh
余りスマートではないやり方ですが何とか解決しました。板汚しすいませんでした
417名無しさんの野望:2011/04/24(日) 14:10:15.91 ID:3xPhS7+z
アンヴィル灯台の地下などにあるDead〜という死体NPCなんですが、これを新たにマップ上に置くにはどのようにすれば良いのでしょうか?
そのままコピーやD&Dでは棒立ち死体になってしまうのですが・・・
418名無しさんの野望:2011/04/24(日) 15:08:52.00 ID:Q6qIeWe1
>>412
Vanityモードが使えればいいんですけどね。

Rキー長押し/無入力両方とも関係するGMSTの再指定で状態の切り替え自体はある程度
コントロール出来ると思うのですが、肝心のカメラ向きを任意に指定する手段がやはり
無いかもです。

あとkfで体とカメラの相対位置を動かす方法もあるかもです。

三人称kfはCamera01自体を動かしてもカメラ位置は変化しないのですが、Bip01は
そのままでNonAccumから上で体だけを動かしてBip01方向に正対したkfを作り、
再生時に体が元の位置から見た目に動かない様にPCの位置/向きの方を動かせば
理屈の上ではカメラが動いた様に見えるかもです。

でもkf再生切り替えのタイミング的に色々試行が必要そうな気も。
419名無しさんの野望:2011/04/24(日) 15:36:00.32 ID:Q6qIeWe1
>>417
Dead〜なアクターをD&Dしたらツールボタン中央右よりの「HK」と書いてあるボタン
をONで。
そうするとRenderWindowで選択中のオブジェだけにHavok動作が有効になって死体の
場合は体がグッタリ倒れます。
Ctrl+Altで体各部を掴んでドラッグ出来るので好きな姿勢にしてHKボタンをOFFして
SaveすればOKです。
420名無しさんの野望:2011/04/24(日) 16:08:53.08 ID:3xPhS7+z
>>419
おぉ ぐにゃりました
有難う御座います
421名無しさんの野望:2011/04/24(日) 16:11:34.99 ID:RSJpTKGV
性別変更魔法のような物を作っているのですが、
OBSEのSetFemaleかcon_SexchangeでNPCの性別を変更すると棒立ちになり、インベントリにアクセスできる状態になってしまいます
ですがコンソールで調べても死んでいる状態でも抑制されている状態でも無意識な状態でもないと表示されます

おおよそ、魔法を使ってこの状態になって、同一フレーム上キャラクタの性別を
変えてしまったため、AIがおかしくなっているのでは?とは思うのですが・・・
(Resurrect 1をすれば元にもどる)
性別変更(SetFemale)を取ればそういったことは起こっていません
無論一端別セルに飛ばして性別変更し、元に戻すと言う事は行っています

どうしてこうなったか?というより、この状態を通常の会話もできるような状態に戻すにはどうすればいいのでしょうか?
422名無しさんの野望:2011/04/24(日) 16:34:11.50 ID:Q6qIeWe1
>>421
>無論一端別セルに飛ばして性別変更し、元に戻すと言う事は行っています

SetFemaleの問題というよりはこの辺の処理による不具合の可能性も。
スクリプトではなくコンソールでその辺のNPCを単にDisable→SetFemale 0/1→Enable
とするとどうなります?
423421:2011/04/24(日) 16:50:41.47 ID:RSJpTKGV
>>422
こちらは問題ないです
ちゃんと動くし、会話もできる通常の状態です
また、先に挙げた変な状態になっても、ゲームを再起動すれば普通に会話できる状態に戻ってるのでどうもAIぽいんですが、どうやって解決したものか・・・・・
424名無しさんの野望:2011/04/24(日) 16:57:16.68 ID:Q6qIeWe1
>>423
でしたらスクリプトでコンソールと同じ事をすれば多分OKでは。
一般的にDisable/Enable等の表示に関わる関数の実行には間隔が必要です。
魔法のスクリプトでしたら>>384の例が多分参考に。
425名無しさんの野望:2011/04/25(月) 08:34:35.63 ID:RYfaTVRD
>>412
カメラ位置を変える話の続きですけど。

瞬間的なカメラ位置の切り替えですが、tfcの場合も>>411みたいに特にTapKeyで
カメラを引かなくても、予定のカメラ位置にPCをSetPos/SetAngleしてcon_tfc→
PCを元の位置に戻せば行けるみたいです。

あとVanityモードとは少し違いますが、GMSTの「fChase3rdPersonXYMult」を使う方法も。

この指定は三人称時にカメラがPC背後に自動的に移動する際の応答速度で、大きければ
移動は速くシャキッと、小さければ遅くフワッとしたかんじに。デフォは「4」。

これを「0」にするとカメラが移動しなくなる≒カメラ位置固定、になるのでその利用で。

具体的には、fChase3rdPersonXYMultを1000とか大きな値にして三人称に切り替え→
PCを前方にSetPos→fVanirtyModeWheelMax/Minに同じ値(カメラとの距離になる)を指定
→2フレぐらい待つ→fChase3rdPersonXYMultを0にしてPC位置を元に戻す、みたいに。

また、この方法だとGMST類をデフォに戻して復帰するとカメラが今の位置から通常の
三人称背後位置に自然にピューと戻るので、客観から操作がプレイヤーに戻った事を
知らせる演出みたいで少しオシャレかも。

という事で方法や作り方は結構色々ありそうですし、見た目の挙動もそれぞれなので
お好みで。
426403:2011/04/25(月) 10:11:20.64 ID:yOtEqimA
>>425
カメラ揺れを防ぐMODで使ってるやつでしたっけ。なるほど・・・
さっそく色々試してみます。完成に至るかどうかはわかりませんが、結構いろんなとこで
応用(導入はしていませんがLoversなんかでも)ききそうな気がしますので、アイデアを共有でき
たらいいなと思います。ありがとうございました。

話は変わりますが、MOD晒しスレでパリィ(攻撃弾く)系のエフェクトで、弾いたときのエフェクトを
vaniilaで出る金属叩いたときの火花(正確ではないですが、戦士ギルドの人形の鎖とかに武器が
当たると再生される)出るように出来ないかな?と聞いたのは自分なんですが、あれの制御はどう
やっているんでしょうか?effectshaderではテクスチャしか使えないんですよね。

火花がメッシュ自体のパーティクルなのはわかるんですが、それをどうやって再生させてるのか
な〜と。かなり限られた状況でしか起きないエフェクトですが、パリィ系にも使えるし、鍛治屋なん
かがコンコンと武器をたたくような演出の時にも使えそうだなと思って。

メッシュパス:meshes/effects/metalsparks.nif
テクスチャパス:textures/fire/FireSparkParticle01.dds
427名無しさんの野望:2011/04/25(月) 12:34:48.28 ID:RYfaTVRD
>>426
カメラ位置変更って演出的に色々使えそうですよね。

で、パーティクルnifの話ですが、システムがそのnifをゲーム中で実際にどう扱って
いるかは謎なのですが、とりあえず全部のNiPSys〜CtlrのFlagsを「9」にして、適当な
EditorMarkerを付ければ常時アニメするオブジェとしてCSで指定/配置の操作が出来る
様にはなると思います。改造サンプル品です。

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

以前何かに使おうと思って作った血がピュ−ピュ−常時出るbloodspray.nifの改造品
もオマケで入ってます。

スクリプトから使うのでしたら必要に応じて適当な位置にMoveToしたり、鍛冶屋なら
金床の位置にあらかじめ配置してEnble/Disableとかでしょうか。
428403:2011/04/25(月) 14:07:37.27 ID:yOtEqimA
>>427
おお!すごい。サンプルまでありがとうございます。でもこれはちょっと武器同士の接触で
再生するのは難しいかも・・・?パリィは諦めて鍛治屋MOD作ってみるか・・・
429名無しさんの野望:2011/04/25(月) 17:51:37.56 ID:BvsoP6mA
先生方 質問です!

最近始めた者ですが、今のキャラの髪型がどうも気に入らないので
ゲーム途中ですがこのまま髪型を変更できるMOD等があるのでしょうか?
430名無しさんの野望:2011/04/25(月) 17:58:13.11 ID:u4/sjs1Q
1 名前:名無しさんの野望[sage] 投稿日:2011/02/14(月) 21:00:04 ID:HgygDct/           
OblivionのMOD作成におけるスクリプトやモデリングの相談や質問、自己解決の独り言などを書き込んでいくスレです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
読めた?理解できた?
431名無しさんの野望:2011/04/25(月) 18:45:43.12 ID:W1LnFaw9
MODがなんなのかも理解してないだろう。
全力で答えるスレってのがあるからそっち行くといい。

質問スレ(上級)へ行ってこんな質問したらwiki読めって袋叩きになるから注意な。

>>427
>血がピュ−ピュ−常時出るbloodspray.nif
あのMODの名前忘れて探せなかったんだ!助かる。
432名無しさんの野望:2011/04/25(月) 19:51:49.26 ID:L9a7m6Ga
>>429
コンソールでShowRaceMenuでよくね?
433名無しさんの野望:2011/04/25(月) 22:27:22.39 ID:4I1RZKm9
>>427 >>428
オブジェをクローニングできるようにすれば不特定に発生するイベントにも対応できそうですね
実は某パリィMODで斬撃エフェクトとか打撃エフェクトとかを実装予定だったけれど時間とれなくて放置中です('A`)

ですので、ひとまずアイディアだけ置いときますね

○メッシュアニメ管理プラグイン摘要
新しくプラグインを用意して、そこにエフェクトに使用するオブジェを登録
コールされたときにそれらオブジェのクローンを任意の位置に生成
GameMode内でクローンの再生時間をチェックして、再生終了していたらクローンを破棄する

他のプラグインからは管理プラグインをコールすればいいだけで、
呼び出し側プラグインで残骸データについて心配する必要はなし

・・・管理プラグイン作るのはいいけれどBlenderがナァ('A`)
434名無しさんの野望:2011/04/26(火) 10:52:05.88 ID:gMp8nCzz
質問させて下さい。
Indigo Armor の Braの方をBBB化しようとBBB化のチュートリアルを見ながらやっていたのですが、
他のMODの装備と違って上半身と下半身の間に隙間が出来てしまいます。
おかしいと思い、NifSkopeでみたらNinodeの構造?が他のとは違うのでこれが原因だと思うのですが、
どうすれば良いのかさっぱり分かりません。 よろしくお願いします。
435名無しさんの野望:2011/04/26(火) 12:27:28.73 ID:RjDkzP7M
>>434
blenderのversionが古いものでexportすると微妙に素体が変形したからそれかな
version2.45使ってた頃、そういうことあったよ
方法は幾つかあると思うけど、2つ書くと

1.nifscopeでブラをBBB修正してexportしたものを、import前のものに移植する
2.body上下をnifscopeでつないで、blenderで読みこみ、blenderでbodyを結合させる。ただ、この方法だと首のつなぎ目に隙間ができたりするかもしれない。
436名無しさんの野望:2011/04/26(火) 17:43:53.38 ID:lPIJ34dt
>>433
エフェクト用みたいに一定時間経ったら消えて欲しいオブジェをPlaceAtMeで個数や
後処理を気にせず出現させるなら、例えばそのnifをAcivatorに指定して下みたいな
スクリプトを付けると簡単だったりしますよ。

float Tmr

begin GameMode
set Tmr to Tmr + GetSecondsPassed
if ( Tmr > 1.0 ) ;----1秒(仮)経ったら
Disable
DeleteReference ;----自分を消す
endif
end

で、DeleteReferenceは本来Disableした後1フレ以上待ってから実行する必要がある
ので上の例だと一見なんかマズそうですが、この場合は問題無く動きます。多分。
理屈は少しややこしいので必要でしたらまた聞いてください。
437名無しさんの野望:2011/04/26(火) 22:20:55.45 ID:jUK9TKYs
>>436
おk−、これならループ処理いらないですね
ほんとオブリのイベント駆動は地獄だぜー・・・
Disable 〜 DeleteReferenceの挙動もクセがあるんですね。注意しときます

実験してみてヽ(`Д´)ノウワーンってなったらまた来ますNE!!
438名無しさんの野望:2011/04/26(火) 23:06:04.66 ID:8gwEJc1B
Beginブロックで確か「ゲーム開始時(セーブデータロード時)」に1回実行
というのがありましたよね?? OnLoadは3Dデータ読み込み時なので違くて、
ニューゲーム、またはセーブデータのロード時に1度だけ走るスクリプトを
書きたいのですが、その書き方を失念してしまい、見つけられませんでした。

どなたかご存知でしたら教えていただけないでしょうか?
よろしくお願いいたします。
439名無しさんの野望:2011/04/26(火) 23:19:35.34 ID:BrRA5azA
Begin GameMode

;ゲーム再起動時
if GetGameLoaded || GetGameRestarted
;適当な処理
endif

end
440434:2011/04/26(火) 23:29:22.61 ID:gMp8nCzz
>>435
レス感謝です。
教えてもらったとおりにしたらバッチリ出来ました!
本当にありがとうございました。
441名無しさんの野望:2011/04/26(火) 23:32:25.61 ID:lPIJ34dt
>>437
確かにシステムがユーザーに期待しているのは、オブジェクトまずありきのイベント
駆動的な構造なんでしょうね。

あるオブジェが何かをするとそれに反応して別なオブジェが動いて〜、みたいな
いわゆるピタゴラ的な仕掛けなら非常に簡単に出来たりしますし。

それに逆らって集中管理的な事をしようとすると非常に大変だったりしますし。

なので例えば武器の当たったエフェクトを出す、みたいな場合なんかでも、スクリプト
のループで常時状態を監視して〜、みたいにするよりは、OBSEのEventHandlerのOnHit
で武器が当たったタイミングや誰が誰に攻撃したか、みたいな状況をイベントとして
ハンドルする、みたいな手法の方が構造がスッキリしたりするかもです。
442名無しさんの野望:2011/04/26(火) 23:40:32.23 ID:n/0fDgWw
アイテム追加系のMODで、導入してゲームを始めたらすぐにプレイヤーの所持品に追加されるようなものがありますが、あれはどのようにすればできるのでしょうか?
443名無しさんの野望:2011/04/26(火) 23:54:12.45 ID:lPIJ34dt
>>442
方法は色々あると思いますが、一例としては、適当なクエストを一つ作ってその
QuestScriptのGameModeで、Player.AddItem→StopQuest [そのクエID]、とすれば
そのespを初めてロードしてゲームを起動した時に一回だけ実行されます。
444名無しさんの野望:2011/04/27(水) 01:19:40.99 ID:etMsyp8P
>>439>>440
それだと、Retrun Title→New Gameのときに実行されないバグになるので、

short doOnce

Begin GameMode

if doOnce==0 || GetGameLoaded || GetGameRestarted ;←ちなみにこの場合GetGameRestartedは実質的に無意味なんで無くてもいいけど一応
set doOnce to 1
;
endif
end

とかにしないと駄目
皆同じサンプル元を使ってるのか、既存のModでこのバグ持ってるの多いんだよね…
445名無しさんの野望:2011/04/27(水) 01:33:45.55 ID:r5vWBluT
それってReturn TitleからNew Game時の対策だったのか
存在は知ってたけどobseない頃の名残だと思って消してたよorz
446名無しさんの野望:2011/04/27(水) 06:42:46.13 ID:xZX389nq
>>439,>>444
大変参考になりました! 今夜早速試してみたいと思います!
ありがとうございました!
447名無しさんの野望:2011/04/27(水) 06:45:14.45 ID:xZX389nq
>>442
宣伝になっちゃってだらしねぇですが、良かったらここを見てください
http://life4oblivion.web.fc2.com/modmemo/questscript.html
448名無しさんの野望:2011/04/27(水) 08:22:03.18 ID:1qRpmvmR
横から申し訳無いのですが。

「Retrun Title」ってなんの事ですか?ゲーム中のEsc→Quit→MainMenuの事ですか?

ゲームのロードや再起動検出って、こうすればどんな場合も必ずOK、みたいな一つの
決まった方法がある訳ではなく、目的によってどの関数/変数/組み合わせが最適かは
変わって来るのでちょっと気になって。

>>438
>ニューゲーム、またはセーブデータのロード時に1度だけ走るスクリプトを書きたい

これってNewGame/Loadをする度に「毎回」一度だけ実行する、て意味に取れたのですが、
もしそうなら単に「GetGameLoaded」の判定だけでOKですよ。

でもこれが例えばOBSEのSavdされない変更を再指定したり元に戻す為、とかが理由だと
状況によっては話が少し変わって来たりするかもです。

なのでその処理が必要な理由がまず分かると多分最適な方法が見つかる気が。
449名無しさんの野望:2011/04/27(水) 09:17:25.51 ID:r5vWBluT
>>448
444と445、448の情報が合わさると混乱すると思ったので整理しま。ちょっとエスパーっぽくて申し訳ないけど

444ではobseを導入していない環境での対策のことを言っていて、
445(自分)はGetGameLoadedなどがobseの関数だったことを忘れていて(´・ω・`)
448ではGetGameLoadedで値を再設定するだけじゃなく、残したままにする必要あるかもと言っていて

ってことじゃないかと
APIドキュメント見てきたら書いてました・・・ね!
ttp://obse.silverlock.org/obse_command_doc.html#GetGameLoaded

GetGameLoadedとGetGameRestartedについて、ドキュメントに書いてない部分以上を疑う必要ないと思うんだけど('A`)
450名無しさんの野望:2011/04/27(水) 09:22:10.38 ID:r5vWBluT
しまったなんか言葉足りない、

OBSE導入してる環境でも念のためdoOnce入れた方イイかなーと思った次第ですorz
451名無しさんの野望:2011/04/27(水) 10:22:56.59 ID:1qRpmvmR
うーん、なんかよくわかんないんですけど、結局検出の目的ってなんでしょね。
何をどう判定するかはそれ次第なんで。

とりあえずゲームのロードや再起動検出の細かい話を。

まず、「GetGameLoaded」の「Load」って特にセーブの「ロード」の意味ではなく、
SaveのLoad時に限らず、Ob起動直後のNewGameでも、ゲーム中にEscしてNewGameでも、
とにかくゲームが始まると毎回必ず真になります。確か。

なので>>444さんの「バグ」というのがどういう状況かちょっと気になって。

で、「GetGameRestarted」の方は、一旦Ob自体を終了→再起動してLoad/NewGameに
関係無く起動後最初のゲームが始まった時に一度だけ真に。
OBSEによるSaveに保存されない/される変更をゲーム再起動時に設定し直す必要がある
場合の判定に使ったりします。

また、良く見かける「doonce」て変数は、>>442さんの例みたいにそのスクリプトを
初めて実行した時に初期化等を一度だけする為の判定用としてバニラでもよく使われて
いる変数です。
「doonce」という名前には特にシステム上の意味は無く、単なる慣習上の名前です。

あとOBSEのEventHandlerの「LoadGame」、「OnNewGame」もまた意味が少し違います。
こっちの「Load」はセーブの「ロード」の事で、「NewGame」はまんまNewGameした時です。

てなかんじでそれぞれ意味が違うので、目的によっては全く別な方法になる事が
あったりするですよ。
452名無しさんの野望:2011/04/27(水) 13:22:04.16 ID:uTRzdjag
>>451
>まず、「GetGameLoaded」の「Load」って特にセーブの「ロード」の意味ではなく、
>SaveのLoad時に限らず、Ob起動直後のNewGameでも、ゲーム中にEscしてNewGameでも、
>とにかくゲームが始まると毎回必ず真になります。確か。

GetGameLoadedがその仕様になったのはOBSE0020からです。

OBSE0019以前はその名の通り「ロード時」だけ真になり、
ゲーム中にESC押してタイトル戻ってから新規ゲームした場合偽になる仕様でした。

OBSE0020でその場合でも真になるように変更になりました。


よってゲーム開始時に1回走らせるというような処理は
OBSE0020以降のみをサポートとする場合はGetGameLoadedだけで問題有りませんが、
OBSE0019以前も考慮する場合は、doonceのような変数の併用等もしないと網羅出来ません。

OBSE0019以前の時代に、ゲーム途中でタイトル戻ってから新規ゲームした場合に
本来で追加される初期スペルやアイテム等が追加されないバグが発生するModは
大抵は上記理由による初期化漏れが原因です。
453名無しさんの野望:2011/04/27(水) 14:51:21.95 ID:1qRpmvmR
>>452
おー、ありがとうございます。仰る通りです。OBSE0020で変わったんですね。
知らなかったくせに偉そうに書いて申し訳なかったです。

GetGameLoadedって使いどころの謎なほとんどいらない子状態だと思ってノーマーク
でした。

今回の話で改めて確認してみたらNewGameでも動いたので仰る状態が何の事かよく
分からなかった、という経緯です。

で、Spell/Itemsを最初に一回Addするのって本来バニラだけで出来ますし、
GetGameLoadedをその目的に使うのってなんかそもそも違う気もするのですが
それって一般的にはよく使われてる手法なんでしょうか。
454名無しさんの野望:2011/04/27(水) 15:16:38.61 ID:S0+UbWqY
起動後に毎回コンソールコマンドみたいなものをある設定にするとか
また違う感じの用途なのでは?
spellやitemだけなら>>443のようにクエ使った方がよさげですよね
gamemodeって、doonce付けてもonceかどうかのチェックまでは
ずっと行い続けることになっちゃいそうですし
455名無しさんの野望:2011/04/27(水) 16:23:08.21 ID:1qRpmvmR
ゲームをロードする度にリセットされてしまう何かの状態を再指定する、みたいな
用途なんですかね。

で、ちなみに少し気になったので自分の過去を調べてみたのですが、大昔に私がUP
したサンプルでも例えばOBSEのModelPath変更の再初期化なんかで本来は
GetGameRestartedできっちり処理すべきところをGetGameLoadedで適当にやっつけてる
のがあったりしました。

まさかGetGameLoadedの適当な使い方を流布したのって私にも責任が?
どどどうしよう。
456名無しさんの野望:2011/04/27(水) 20:40:00.12 ID:xZX389nq
>>439,>>444,>>448-455
大変ありがたいお話、本当にありがとうございます。
なかなか複雑な事情の事柄だったのですね。

無用に混乱させてしまって申し訳なかったのですが、NewGame/Loadの検出の
目的はOBSEによる状態変化を適用・リセットするためです。

↓は個人的な話なのでスルーしてください。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/ 拙作バイクmodにおいて、乗車する際に「DisableControl」を使っているため、
_/ 乗車中にセーブして、再起動した後に同データをロードすると乗車がないために
_/ 「DisableControl」されずおかしくなってしまいます。
_/
_/ 逆に、乗車中に街の中にファストトラベルすると自動的に降車しますが(中身は馬なので)、
_/ 「EnableControl」は降車する際に行うようにしているため、Disableのままになって
_/ しまいます。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

なので、NewGame/Load時に毎回1度行うスクリプトとして、プレイヤーの状態を
矛盾がないか確認する、そんなものを作りたくて質問いたしました。街中へ
ファストトラベルした場合はまた別に判定する必要がありますが…。

OBSE0020以上を要求するmodにする必要はないので、「GetGameLoaded」を
使おうと思います。今思ったら、今回のケースではNewGameのチェックは必要
なかったですので。

大変参考になるお話ありがとうございました。
457456:2011/04/27(水) 20:44:33.44 ID:xZX389nq
>OBSE0020以上を要求するmodにする必要はないので、
これ書き間違いです。要らない文でした。
458名無しさんの野望:2011/04/27(水) 20:56:32.80 ID:r5vWBluT
OBSEのドキュメント類、whatsnewを覗いてみたら
> 0020 beta 4:
> (中略)
> -GetGameLoaded now returns true when the player starts a new game

あ、書いてあった
ドキュメントはちゃんと読もうねって奴でした('A`)

ベータでの変更点を把握してる人は、ベータの更新を追っかけていた人くらいしかいない思うので
こういう話はちゃんと情報として上がってきて良かったと思うデス
自分みたいに安定版狙いでメジャーバージョンしか使ってない人もいるとは思うので(´・ω・`)

>>456
ブログ拝見させていただいてますよ! 検索したときによく行き着いてましたので^^; がんばってくだし!
459名無しさんの野望:2011/04/27(水) 21:26:11.25 ID:uTRzdjag
>>453
>で、Spell/Itemsを最初に一回Addするのって本来バニラだけで出来ますし、
>GetGameLoadedをその目的に使うのってなんかそもそも違う気もするのですが
>それって一般的にはよく使われてる手法なんでしょうか。

そのSpell/Itemを最初に一回Addするという目的でGetGameLoadedを使う手法って、
実態を勘案せずいくつかのキーワードと自分自身の想像力だけを元にあなた自身が勝手に設定したものですよね?
その想像の産物を題材に一般的によく使われてる手法なんでしょうか?にまで飛躍されても、
使われる使われない以前にそもそもその目的で想定するあなたが変だと思います、としか
他人にとっては答えようが無いです…。

ですので、以下はエスパーで…多分知りたいのはこういう話?という憶測で書きます。

GetGameLoadedが使われる状況は単純にロード時の初期化ブロックの判定のためというのが殆どだと思います。
ただし、フロー的に、クエスト初回時も結局ロード時と全く同じ初期化が必要になる事が多いため、
実際のコードでは、ロード時/初回時共通の初期化ブロックとして1箇所に集約されているパターンをよく見ます。
コードメンテナンス上もその方が好ましいと思いますし、きちんと正しい論理式になってさえいれば別段問題なかったのですが、
何故か if GetGameLoaded || GetGameRestarted という判定の仕方だけが広まってしまった?みたいで
>>452のような状況での初期化漏れが発生するModがいくつか散見される事になりました。

憶測ですが、GetGameLoadedがOBSEv0020で仕様変更されたのは、これらGetGameLoadedの使用実態から、
不具合救済のために変更されたという、逆説的な理由によるものではないかとも思っています。
当然「ロード時にだけ走らせる(クエスト開始時には走っちゃ駄目)」という意図でGetGameLoadedを使っていたModは、
この仕様変更によって逆に不具合を起こす事になる可能性がありますが、実態としてそっちの影響は少ないと踏んだんでしょう。
460名無しさんの野望:2011/04/27(水) 22:33:56.29 ID:1qRpmvmR
状況がはっきりしたので非常にいいネタですよ。

>>456
やっぱOBSEによる変更をゲーム再起動時に再指定するのが目的ですか。

>>455でも白状しましたが、その目的の為に「GetGameRestarted」が用意されているので
真面目に作るなら本来はそっちを使うのが筋なんだろうと思います。

でも例えば、「構えると形の変わる装備」をOBSEのSetModelPathで実現した場合なんか
だと、再指定が必要なのはその装備を着て構えた状態のSaveをゲーム再起動→Load
した時だけで、NewGame時は確実にまだその装備を着ていないので再指定の判定の
必要は特に無かったりします。

なのでGetGameRestartでなくGetGameLoadedでも場合によっては実用上全然OKだったり
します。

OBSEによるSaveされない変更っていつまで有効かが少しややこしく、再起動ではなく
単に再Loadした場合はリセットされずにまだ有効だったりするので、本来はLoadの度に
再指定ではなく再起動後に一度だけすれば良かったりはするのですが。

でもイメージ的にはGetGameLoadedの方が分かり易いんでそれでOKな気も。
461名無しさんの野望:2011/04/27(水) 22:38:53.42 ID:1qRpmvmR
>>459
なんか気に障ったのならごめんなさい。
462名無しさんの野望:2011/04/28(木) 00:31:30.44 ID:+4Ajivr4
>452 〜するとバグが発生するMODもある

>453 へぇ、〜する人もいるんだ?それって一般的なんですか?

>459 どこのだれがそんな事言ったって?妄想するのやめてくれない?変態。

話題の外のいる俺からすればこんな風に読めるんだが、
どっかのSSスレじゃないし煽らなくたっていいだろ…
463名無しさんの野望:2011/04/28(木) 00:46:36.21 ID:zKf0xB1g
>>462
そんな話じゃないだろ
荒らしは巣に帰れ
464名無しさんの野望:2011/04/28(木) 00:50:54.45 ID:+4Ajivr4
俺にはそれ以外に見えないな。
もっともほじくり返すのも荒らしと一緒だったかね。
悪い事をした。すまん。
465名無しさんの野望:2011/04/28(木) 01:05:40.40 ID:7K171G15
・丁度日付が変わった頃出現
・話題の外からと強調
よくある話だよ
466名無しさんの野望:2011/04/28(木) 01:14:15.04 ID:gj+o9P+o
別に自演でもなんでもいいです。
なんか面白いMODネタを織り交ぜてくれさえすれば。
467名無しさんの野望:2011/04/28(木) 15:05:27.51 ID:vtd+61Nz
全く空気を読まずに。

サクラエディタ用の強調ワードファイルです。
自分用に作成したものですが需要があればということで。
既に誰かがやっている事なので二番煎じもいいところなのですが、OBSE関数周りを
色々強化したんで枯れ木の賑わいということで。
売りとしては、強調ワードだけではなく、キーワードヘルプ機能を利用した関数Syntaxの
表示も行えるようにしたことです。
色々粗も有ると思いますが、叩き台にして各自カスタマイズに使用してもらうと良いかと思うです。
http://oblivion.z49.org/files/sakura_tes4_setting.7z
468名無しさんの野望:2011/04/28(木) 15:36:11.26 ID:JmPkcE8+
>>435
ありがとうございます!物凄く助かります。
469468:2011/04/28(木) 15:37:42.34 ID:JmPkcE8+
専ブラが不調で安価間違えた・・・
>>467です。
ありがとうございます。
470名無しさんの野望:2011/04/28(木) 18:36:13.99 ID:E3cBuphV
すこしお尋ねします。
chainbeastの服を脱がせるスクリプトはどの項目なのでしょうか?
服を脱がないようにしたいので、教えていただけませんか?
471名無しさんの野望:2011/04/28(木) 19:33:51.67 ID:pZB3mtIy
ちょっと単発ナ内容なのですが
特定の目的地にだけファーストトラベルを禁止する方法ってありますでしょうか?
472名無しさんの野望:2011/04/28(木) 20:16:55.02 ID:5Q568D7A
クリーチャーのモーションに関する質問です
宜しければお願いします

1点目)
クリーチャーの吹き飛びモーションに該当するのは、どのkfファイルでしょうか?
(pushactorawayでも再生される、ダウンのアニメです)

よろけモーションはstaggerで
起き上がりモーションなどは各クリーチャーフォルダの
更にidleanimsフォルダのgetupfacedownというあたりはわかるのですが
吹き飛びに関してはいまいちどのkfファイルなのかわかりません

例えばstormatronachあたりは、全身がバラバラの石になる特徴的なダウンアニメですし
全キャラ共通というわけではなく、何らかの個別ファイルがあると思うのですが
nifscopeでstormフォルダの中を再生しても、該当ファイルは見あたりません

2点目)
リッチやレイスなど、飛行系のクリーチャーの多くは
pushactorを喰らっても決してダウンしないようになっていると思いますが
このように吹き飛ぶ/吹き飛ばないというフラグはどのあたりで管理されているのでしょうか?
473名無しさんの野望:2011/04/28(木) 20:18:49.97 ID:5Q568D7A
>>471
目的地がわからなくなってしまってもいいなら
単純にマップマーカーみたいなものを消してしまうという手が
474名無しさんの野望:2011/04/28(木) 22:24:48.05 ID:pZB3mtIy
さすがに既存マップマーカーを消すのはさけたいとです

レスありがとう
やっぱりまともな手段ではむずかしそうですのう
475名無しさんの野望:2011/04/29(金) 08:25:56.45 ID:tNa3HFTY
>>471
OBSEの「SetCanTravelToMapMarker」でそのマーカーを未発見状態にすれば個別にFT不可
にはなると思います。
FT出来ない理由表示の辻褄合わせが必要ならGMSTの「sMapMarkerNotFound」の変更で。
476名無しさんの野望:2011/04/29(金) 08:52:07.22 ID:tNa3HFTY
>>472
一点目、PushActorAwayでの動きってkfアニメではなくて物理演算です。

二点目、死体をそのままの形で残さないクリーチャーには体各部のコリジョンが
無かったりするので物理演算が無効な事も。
477456:2011/04/29(金) 10:29:12.51 ID:H1y0j4yh
気になったので冗長気味に検証してみました。ただしOBSEは0020正式版です。

■GetGameRestarted
・1回目のNewGame:○
・NewGame→タイトルに戻る→NewGame:☓
・1回目のLoad:○
・2回目以降のLoad:☓
・Load→タイトルに戻る→NewGame:☓
・Load→タイトルに戻る→Load:☓

ゲーム初回起動時だけ検出するようです。判定の限定に使えるかも。

■GetGameLoaded
・1回目のNewGame:○
・NewGame→タイトルに戻る→NewGame:○
・1回目のLoad:○
・2回目以降のLoad:○
・Load→タイトルに戻る→NewGame:○
・Load→タイトルに戻る→Load:○

OBSE0020なので全て検出します。しかし>>452さんによればOBSE0019以前では
・NewGame→タイトルに戻る→NewGame:☓
・Load→タイトルに戻る→NewGame:☓
になるようなので、利用者のOBSEバージョンに挙動が依存するということは
利用者にも作成者にも混乱が生じる可能性がありますね。

DoOnce変数との併用が必須になりそうです。
478名無しさんの野望:2011/04/29(金) 17:29:26.84 ID:ihJ4SF4Y
>>475
ありがとうございます!
OBSEにそんな機能がありましたか。
OBSEは想定していななかったのですが、ちょっと考慮してみます。
479名無しさんの野望:2011/04/29(金) 20:40:08.67 ID:tNa3HFTY
>>477
おー、検証乙であります。

で、>>456さんの状況なら条件はそれでOKだと思うのですが、OBSE(一部バニラ関数も)
での変更って種類によっては有効範囲が違ったりする場合もあるですよ。

例えば、>>475の例が丁度いいのですが、SetCanTravelToMapMarkerのマップマーカー
発見状態の変更と、SetStringGameSettingEXでのGMST文字列の変更なんかはリセット
の条件が違い、前者は再Loadした時のCellのキャッシュの状況(多分)によりリセット
したりしなかったり、後者はゲーム自体の再起動でリセットします。

その辺少しややこしく、「目的で方法が変わる」という所以だったりします。

とりあえずはとにかくdoonceやクエできっちり初期化+GetGameLoadedで毎回確実に
上書きすれば大体の場合OKだとは思うのですが、指定によってはGetGameRestarted
だけでOKだったり、もっと細かな手当てが必要だったりします。

変更が保存されない/再Loadで残る問題って実はOBSEに限らずSetPosなんかの
バニラ関数でも起きたりしますし。

その辺もし詳細に御興味ありましたらまた聞いてもらえれば分かる範囲で。
480名無しさんの野望:2011/04/30(土) 03:52:26.88 ID:O6SUcMFa
MODと言うかツールの使い方と言うか微妙な質問なのだけど、
WryeBashからBOSS(1.65、NEXUSにある最新版)を実行して正常にtag付けられてるのだろうか?

試しにBOSSで付けたはずのtagがBashから見るDescriptionでもBash Tagsでも確認できない。
BOSSのログでは
 ?Bash Tag suggestion(s): {{BASH:NpcFaces, Hair, Eyes, Graphics, NPC.Race, R.Ears, R.Head, R.Mouth, R.Teeth}}
と出てるけど(種族を変更するespなので実際にtagに相当する中身もちゃんと入ってる)
BashではなぜかFilterとStatsの2つがBash tagのところに表示されてる。

念のためDATA\Bash Patches\taglist.txtも削除もして試してみたんだけどダメだった。
481名無しさんの野望:2011/04/30(土) 04:11:44.42 ID:Znpm1fnG
>>480
他に付けてあるtagが内部的にはそれに相当しているという可能性もあると思う。
tagのツリー構造みたいな?

あと、個人的にはespの最大容量軽減のためじゃないかなーとか思う。
パッチ作るときに処理力が問われるし。
482名無しさんの野望:2011/04/30(土) 12:05:43.21 ID:7HrjWn14
>>480
質問は質問スレで
483名無しさんの野望:2011/04/30(土) 13:57:02.77 ID:WQfeDU5m
屋内に土を敷きたいのですが、
屋内に地形編集で地面(床)にテクスチャを塗り塗りは出来ない・・・ですよね?

土テクスチャを貼った平たいオブジェクトを置いて、それっぽく見せようかなと思っているのですが
他にはどんな方法がありますでしょうか。
484名無しさんの野望:2011/04/30(土) 14:38:49.12 ID:Du2EnQkb
>>476
遅れましたがありがとうございました
参考にします
ストームアトロナックの分裂もアニメではないとは
485名無しさんの野望:2011/04/30(土) 16:43:34.13 ID:omfJHxbU
>>483
Interiorで地表の塗り塗りは出来ないです。

土の地面オブジェで行けるのでしたらそれでOKだと思いますが、もし土の範囲が
ある程度広かったり塗りにもこだわるのならWorldSpaceにしてしまう手も。

時刻で変化しないClimateとWeatherを作れば見た目はInteriorと同じになります。
また移動出来る範囲をあるCellの中心から2x2Cellの距離内に留めておけば、移動に
よるCellの読み込みや遠くなったオブジェの消失は起きないです。恐らく。
486456:2011/04/30(土) 20:18:58.54 ID:6GwKXBRk
>>479
なるほど、関数によってリセットのされ方が違うわけですね。これは難しい。
それなりに負荷に違いが出るならともかく、基本的には「GetGameLoaded」で
全部検出して修正するほうが楽そうですね。

個人的には、ライトのサンプルなどであった「SetPosは毎フレーム、MoveToは
0.2秒に1回」あたりが気になってたりします。MoveToを毎フレーム行うとマズイ
のは過去ログで読みましたが、SetPosだけだとセルをまたぐ時に問題があったり
するんでしょうか? バイクMODのライトでは、MoveToがないとセルをまたぐ際に
SetPosが効かなかったりしました。


あとこれは難しいところだと思いますが、関数ごとの負荷の違いがわかったら
いいなぁとよく思います。例えば、「毎フレーム行う必要はなく、数フレームに
一度の実行で十分」という1〜3個の関数があったとして、それは毎フレーム
「GetSecondsPassed」でカウントして数フレームに1度やるのがいいのか、
少量の関数だったらわざわざ「GetSecondsPassed」でカウントする負荷を考えれば
むしろ毎フレーム実行のほうがいいのか、それともクエストスクリプトを使って
実行間隔を変えるほうがいいのか…。

開発者に聞けという感じですが、何かアドバイスいただけたら幸いです。
自分は面倒な場合はGameModeブロックで毎フレーム実行にしてしまいますが、
「GetSecondsPassed」+タイマー判定って実は軽い処理だったりするのでしょうか?
関数のリセットタイミングについてでなくてすみません。


あと遅くなってしまいましたが、
>>458
実はブログじゃなくてサイトだったりしますが、そんなことはどうでもいいですね。
ありがとうございます。大手個人サイト様には到底かないませんのが、マイナーでも
中身の濃い使えるサイトにしたいと思ってます。読者は少ないですが頑張ります(汗)
487名無しさんの野望:2011/04/30(土) 22:58:24.35 ID:omfJHxbU
>>486
SetPos/MoveToってオブジェ毎に挙動が違うので少しややこしいですよね。

アクター以外のオブジェの場合、一般的にはSetPosはグラフィックの表示位置だけを
変え、MoveToはDisable/Enableと併せて内部データも含めて位置を移動します。

例えばその辺の岩をSetPosすると、見た目位置は変わるのにコリジョンは元の位置の
ままですし、MoveToだけでは何も起こらず、Disable→Enableして初めてその位置に
コリジョンも一緒に移動したりします。

あと、SetPosだけでずーっと移動していると、そのオブジェの元の位置がPCから遠く
なってそのCellがパージされ、オブジェの内部データ的に表示しない事なって急に
消えたりします。

Lightの場合はそれ以外にも、SetPosでは光源の位置は変わっても、光源の有効範囲
は変わらず、SetPosだけで移動しているとそのうち光の当たり具合が変になったり
します。
これはDisable→Enableで直ったりします。その辺の話はPart5/172,190にも。

なので静的なオブジェを連続的に長距離移動させる場合は、二つのオブジェを用意して
交互にMoveTo→Enable→SetPos→SetPos…→Disable、みたいにしたりします。
488名無しさんの野望:2011/04/30(土) 23:02:40.71 ID:omfJHxbU
続き)
あと、そのサンプルMODの場合、MoveToの周期はデフォが1.0秒だったと思います。
それってPCが歩く/走る速さでテストして決めた大体の値なので、それ自体にあまり
特別な意味は無いです。

またその構造だと、毎フレーム「装備しているか」を条件にLightの状態を決めている
ので、再Load等でEnableやSetPosの状態が食い違っても放っておけば状態が復帰する
と思います。多分。
なので特にLoadのチェックはしていなかったと思います。


関数の負荷はどうなんでしょうね。

一般的には関数そのものの実行時間と言うより、Scriptのコード自体を実行する時間
(=中間コードの長さ)を節約すると負荷軽減になる、みたいな話は聞きますけど。

あと関数の場合、種類や場合によっては毎フレーム連続して実行するとクラッシュ
したり妙な事が起きたりする事があるので、その辺が怪しい場合は安定動作させる為に
フレーム間隔を置いて実行する、みたいな事の方がむしろ重要かもです。

その両方の意味で、毎フレーム実行する必要が無いなら、QuestScriptにしたり、
タイマーなりカウンタで処理を間引き、実行しない場合はすぐReturnさせる、てのは
有効かもです。
489名無しさんの野望:2011/05/01(日) 00:39:51.29 ID:OaflYenA
StartConversationに関してなのですが、この関数を走った状態で使用することは可能ですか?
NPCが走った状態でPCに近づく→PCと会話、というふうにしたいのですが。
490名無しさんの野望:2011/05/01(日) 00:58:44.02 ID:C25BI4Ti
閑話+抽象的な話になりますけど
beginブロックによっても負担って結構違いますよね
gamemode以外の話では

個人的な事情でNPC20人程に
似たようなスクリプトを持たせたことがあるのですが
戦闘しない限りは負荷がかからないだろうと
ある動作をOnStartCombatにしたら
何故か妙に重くなって
tdtのスクリプト負荷も高い値を示していました

結局延々戦闘が起きないかどうか監視してるのかなー?と
(の、わりにbegin Onhitの方がまだ軽かったのが謎)
その時は結局begin Onloadで誤魔化しました
491名無しさんの野望:2011/05/01(日) 01:32:43.50 ID:+qQFgYBC
>>489
StartConversationでも出来ると思いますが、なんか複雑になりそうな気が。

そのNPCにPCをFindするAIパッケージを付ければ自動的に話しかけて来ると思うの
ですが、そういう動作の事でしょうか。
その場合はTargetをPlayerに、「AlwaysRun」をチェックで。Conditionsは適当に。

クエMS23の「RalsaNorvalo」のAIとGREETINGのInfoの指定が多分参考に。
「Pardon me〜」が最初に話し掛けてくるセリフです。
492名無しさんの野望:2011/05/01(日) 05:13:32.42 ID:Si6/mW7x
>>486
関数の重さは個々でかなり違うから、同じ関数や特定の処理ブロックを数十万回実行させて時間を計測するような
ベンチマーク用のModを1回作っとくと調べたくなったときにすぐ実験できて便利だよ
・OBSEのGetFirstRefみたいな関数はイメージ通りすんごい重い
・単純な代入式ではLetはSetに比べたら大分(2倍近く)重い
みたいなのはすぐ実験できる

あと関数ではないけど、オブリ特有ともいえるパフォーマンス関連の謎では、ifブロックで処理対象にならないブロックも負荷がかかる
のでifブロックの書き方でパフォーマンスが変わる(おそらく、未処理ブロックでもアドレスジャンプではなく、1 opずつスキップする処理になってる)
Begin GameMode
 if abc == 0
  ;希にしか実行されない処理300行
 endif
; 毎フレーム実行する処理
End
↑これだと毎フレーム300行分のコードのスキップ負荷がかかるのでパフォーマンス的にはあまり良くない。
この無駄なスキップ負荷を回避するには、下記のように順序を逆にするか、
Begin GameMode
 if abc != 0
; 毎フレーム実行する処理
  return
 endif
 ;希にしか実行されない処理300行
End
又は、下記のようにブロック内を関数にして外出しにする等した方がパフォーマンス的には有利
Begin GameMode
 if abc == 0
  Call xxxx  ;希にしか実行されない処理数十行を別関数にしてブロック内のop数を減らした
 endif
; 毎フレーム実行する処理
End
まぁ、数十行程度ならそんなに大きな負荷じゃないけど、巨大ブロックを書くときは、コーディングスタイルなんかとも相談しつつ、考慮した方がいいかもしれない
493名無しさんの野望:2011/05/01(日) 10:04:03.45 ID:20hc5Z9O
たくさんのとても有意義なお話本当にありがとうございます!

>>487-488
SetPos/MoveToについての詳細な解説ありがとうございました。おかげさまで
完全に理解できたと思います。Lightに照射されるObjectは、そのLightの
照射範囲内にあるもの(SetPosではこの範囲は移動しない)というのも重要ですね。

自分が体験したクラッシュは、AIパッケージ切り替えタイミングでした。
フレームをずらしたりする手間が少々面倒ですが、これはもう仕方ないですね…。


>>490
GameMode以外のBeginブロックのスクリプトって、実行していない時も負荷が
あるのか疑問に思っていたのですが、あるものはあるのですね。「普段は実行
されないから」と油断できないですね…。


>>492
ベンチマーク用のMod、これは便利そうですね。今度作ってみます。
If文の処理しない行をスキップする際も負荷がかかるというのは困った仕様ですね…。

負荷を低減するための方法を簡単にまとめてみると

1.「この条件なら実行せずReturn」といった無視判定を先にやる
2.実行頻度の低いスクリプトは、スクリプトの後ろの方に書く
 (普段はそれより上の行で条件判定→Returnされるため実行されない)
3.実行頻度の低いスクリプトは別スクリプトにして、必要な時に呼び出す
 (ユーザー定義関数やクエストスクリプトなど)

これらを頭に入れておくといいのかもしれませんね。勉強になりました。
494名無しさんの野望:2011/05/01(日) 14:09:23.11 ID:JyB4LxJB
>>483
ダンジョンの地面を使ったり、植木の地面部分を使ったり、かな
495名無しさんの野望:2011/05/01(日) 14:53:39.60 ID:m+MNItXR
リペアハンマーが便利すぎるのでもう少し制約をつけられないかと思い

補助ツールという2つの新規アイテムを追加

これらがない状態で修理メニューを開くと、「あなたは疲労を感じています」
というメッセージボックスが表示されステータス減退のアビリティが追加
される。

ステータス減退のアビリティは時間経過で直る。
以下繰り返し。
(座っているとボーナスが発生する)

というMODを作成したのですが、ステータス減退のアビリティを追加する
のではなく、新規追加アイテムなければ修理メニューが開けないという仕様
にしたいのですが、こちらは可能でしょうか。

上記が無理ならば、ランダム値を発生させる関数等を教えていただけないで
しょうか、よろしくお願いします。

496名無しさんの野望:2011/05/01(日) 15:46:49.31 ID:FJpF5Dci
>新規追加アイテムなければ修理メニューが開けないという仕様にしたいのですが、こちらは可能でしょうか。
少なくともコマンドでは無理。メニューのxml弄るのまでは知らね。
OBSEありでいいなら修理メニューを開いた瞬間にリペアハンマーを取り除いて使用不能にしたり、
無理矢理修理メニューを閉じる事は出来ると思う。

>ランダム値を発生させる関数等を教えていただけないでしょうか
さすがにそれぐらいは調べろと言いたい。
OBSEのマニュアルをrandomで検索だ。
497名無しさんの野望:2011/05/01(日) 16:26:59.99 ID:m+MNItXR
>>496
>さすがにそれぐらいは調べろと言いたい。
OBSEのマニュアルをrandomで検索だ。
失礼しました、確かにその通りです。
まだ軽くしか見ていませんが、obseVer20によさそうな関数を見つけたので
こちらを試してみます、
ご返信、ありがとうございました。

498名無しさんの野望:2011/05/01(日) 18:44:53.37 ID:OaflYenA
>>491
遅れましたが上手くいきました 感謝
499名無しさんの野望:2011/05/03(火) 05:35:31.59 ID:SQHiM/dU
どんなものか使ってみたくてConstruction Set Extenderを入れてみたが、
導入が結構面倒だったので作成支援にメモを書き残しておく。
(!)はCSEのreadmeを読む限り重要な所。

前準備:OBSE ver20を導入し、CSEの中身をそのままoblivionフォルダにコピーする。

1.cs.elderscrolls.com から Construction Set の 1.0 と 1.2Patcher を入手する。
2.とりあえず CS1.0 をインストールし、TESConstructionSet.exe のコピーを作りそれを TESConstructionSetOld.exe と改名する(!)。
3.CS1.2Patcher を使って CS を 12404 にしたら一旦普通に起動して ConstructionSet.ini を作る。
4.My Games\Oblivion の ConstructionSet.ini を開いて bAllowMultipleEditors を検索し =1 にする(!)。
5.obseからCSを起動して Console Window が表示されれば導入成功。


使い心地はこれからなのでアレですが、日本語化+αパッチを当てていてもとりあえず起動を確認。
が、日本語入りスクリプトを書いてみないことにはどうなるか判らない気がするんだぜ・・・
500名無しさんの野望:2011/05/03(火) 11:42:26.41 ID:MM5Ejaxu
bAllowMultipleEditorsは知らなかったよ
501名無しさんの野望:2011/05/03(火) 12:17:34.55 ID:TgWOrU3a
CSE入れて既存のModをリコンパイルするとif〜endifの数が合わないでエラーになるModとか結構あったりする
502名無しさんの野望:2011/05/03(火) 12:21:36.87 ID:2Kmal1wj
それならオリジナルにも数合わないでエラー出るのが
アレは修正すべきなのかしら
503名無しさんの野望:2011/05/03(火) 13:36:03.45 ID:ZK5VZtLt
CSE・・・なんという.Net、これは導入するしかなかった(゚∀゚)
>>499の影響で入れてみたけど、スクリプトに関して言えば警告レベルのメッセージがちゃんと出てくれてありがたいな
504名無しさんの野望:2011/05/03(火) 13:38:59.26 ID:ZK5VZtLt
参考までに、CSE導入で自分がこけたところは
OblivionEAXのプラグインを入れているとCSE起動時にエラー吐いて落ちる
導入してるOBSEのプラグインが原因で落ちる可能性もある
ってところでした
505 ◆Obli.bmjp. :2011/05/03(火) 14:10:45.85 ID:AsjXRY1Z
>>504
CSEは確かに、入れてるプラグインによってはコンソールが出る直前で落ちますね。
「落ちる」ことが確認できたのは以下のプラグインです。
単体が相性悪いのではなく他のプラグインとの組み合わせが原因かもしれないので断言はできませんが、
“うちでは”、このプラグインを「起動完了するまで」別の場所に隔離しておけば起動させられました。
一旦起動したらobse\pluginsに戻しちゃって大丈夫なんですけど。
・algohol.dll
・NifScript.dll
・NifSE.dll
・OBSE_Kyoma_MenuQue.dll
・refstuff_plugin.dll

なお、他に入れてるプラグインはこんな感じです。
・ConScribe.dll
・Elys_USV.dll
・OBGEv2.dll
・obja_12416.dll
・OBSE_Elys_Pluggy_HUD.dll
・OBSE_Elys_Uncapper
・sr_Oblivion_Stutter_Remover.dll
・SystemDialog.dll
・TSFC_1_2_0_416.dll
506名無しさんの野望:2011/05/03(火) 18:45:11.41 ID:3KqE5KxS
CSEは翻訳関連でimportするときに勝手にタグ入れちゃうのがちょっと困り物。
設定でOFFにできるのかな?
それ以外はスクリプトコンパイルもespの中にあるのだけやってくれたり、
esp出力時にちゃんとespのマスターも保持してくれたりしてくれてかなり便利。
BSAマスターのファイルも選択できたりとかね。
507名無しさんの野望:2011/05/04(水) 03:44:56.40 ID:r+VAqQuu
武器のエンチャントに応じてエフェクトが掛かるMOD(Visual Enchantments)を弄ろうと思っています。
そこで少しお伺いしたいのですが、エンチャントに応じたエフェクトはどこで弄れるのでしょうか?
初心者丸出しな質問で申し訳ありませんが、よろしければお願いします。
508名無しさんの野望:2011/05/04(水) 10:44:09.72 ID:GGkI47h0
TES4EDITなりWryeBashかCSでdetailsなり見れば弄ってる個所がわかるよ
509名無しさんの野望:2011/05/04(水) 13:22:39.45 ID:r+VAqQuu
>>508
ありがとうございます!
TES4EDITでどこを弄ればいいか無事わかりました。
510名無しさんの野望:2011/05/04(水) 14:50:02.06 ID:15HJe24w
stringの受け渡しについて質問です。
scriptAでセットした文字列を
scriptBでメニューに表示するにはどのような書き方が適切でしょうか

--
scriptname NameLael

string_var str

begin function {}
set str to sv_Construct "ほげほげ"
sv_destruct str
return
end
--
こんな感じで文字列を入れて、
Bから呼び出してメニューに表示したいのですが
Bでは
--
string_var str

let str := Call NameLael
messageBoxEx $str
;解放
sv_Destruct str

--
こんな感じにしてみたのですが、エラーが出てしまいます。
どこに何を付け足したり削除したりすれば良いのか教えてください。
511名無しさんの野望:2011/05/04(水) 15:26:19.33 ID:ae+ZnSNo
>>510
scriptname NameLael

begin function {}
SetFunctionValue sv_Construct "ほげほげ"
end

--

string_var str

let str := Call NameLael
messageBoxEx $str
;解放
sv_Destruct str
512名無しさんの野望:2011/05/04(水) 15:38:22.98 ID:15HJe24w
>>511
レスさんくすです
さっそくやってみます!
513名無しさんの野望:2011/05/04(水) 16:36:45.71 ID:15HJe24w
>>511
できました!
メニューとして立て並びにしたかったので、
--
string_var str
string_var str2

let str := Call NameLael
let str2 := Call NameLael
messageBoxEx "ほげほげ|%z|%z|" str str2
;解放
sv_Destruct str str2

で望んだ形にできました。ありがとうございます。
514名無しさんの野望:2011/05/06(金) 21:21:35.66 ID:SmOueObQ
スクリプトの働いた対象(NPC)から、特定のアイテム(ToriageItem)を持っている分すべて
取り上げたいのですが、実際には1つしか取り除けません
メッセージでは数がちゃんとはいてるようなのですが・・・
ご助言お願いします

scriptname toriage

ref me
short mak

begin scriptEffectStart
set me to GetSelf
set mak to me.GetItemCount ToriageItem

if me.IsActor
if mak != 0
me.RemoveItemNS ToriageItem mak
MessageEX "%g個、%nから取り上げた" mak me
else
MessageEX "%nは持っていない" me
endif
endif
End
515名無しさんの野望:2011/05/07(土) 02:18:37.38 ID:cw7mNBZw
スマートじゃなくてもいいなら
removeitemの数を現実的にありえる上限にしてしまえば?
99や999とか
実際に持って無くても別に問題は起こらないと思う
もし問題あるなら識者の方、ご指摘願いします
516名無しさんの野望:2011/05/07(土) 09:22:10.14 ID:vihS0gQI
removeitemは複数個のアイテムを消そうとするとうまく動かないバグがあるよ
たしかcs wikiで解説されていたと思う
517名無しさんの野望:2011/05/08(日) 00:25:32.75 ID:HPTC9Udc
>>515.516
ありがとうございます
OBSE関数のremoveitemNSでも時々バグが起こるみたいので
0になるまで何度も行う方法でやろうとおもいます
518名無しさんの野望:2011/05/08(日) 03:02:01.02 ID:oAD+LP4p
obmm scriptについて伺いたいです。

OBMMからのインストール時に、OMOD内に必要なファイルが揃っているかチェックを行いたいのです。
具体的な処理としては、オプションのファイルがないなら導入をスキップするという処理を行いたいのです。

Dataフォルダ内に既にファイルが存在するかをチェックする関数はあるのですが。。。
OMOD内のチェックを行う方法がわからず、途方にくれています。

どなたか方法をご存知でしたら、御教授ください。
519名無しさんの野望:2011/05/08(日) 06:46:20.89 ID:jEWSyS6C
>>518
どういうことをしたいのだろう。
例えばmain.omodという物の中身が完全な状態かどうか調べたい、とか?
でもomod化するときに全ての必要なファイルを含めないというのはおかしな事なので、
そういう処理は無さそうな気がするんだが・・・
520名無しさんの野望:2011/05/08(日) 07:15:36.60 ID:JN0qMOuw
ヴァンパイア種族の目だけ独立させて個別に使いたいのですが
どうすればいいでしょうか?
521名無しさんの野望:2011/05/08(日) 07:23:59.05 ID:jEWSyS6C
>>518はもしかしてこうか・・・?

A.esp・B.esp・C.espのmodをomodで導入するとき、C.espはA.espとB.espが両方無いと動かないが、
B.espとC.espのみを選んで導入した場合、A.espが導入されないのでC.espは導入されないようにする。

という事ならば、とりあえず最初に「DontInstallAnyPlugins」「DontInstallAnyDataFiles」で一度止めて、
if DialogYesNoの選択式で、質問を最後まで答えたらまとめて導入するとか、
SelectでCase分けした先にSetVarも配置して、C.espの選択時にチェックするとか、
そんな感じのやり方があるかな。
522名無しさんの野望:2011/05/08(日) 07:45:04.86 ID:qTWGeXzz
>>521
WACのOMODスクリプト作成の事じゃないかな
OMOD化に必要なMODがユーザー側で変わるのでそれをスクリプト側で対応したいって事だと思う

・本体WAC
・itemrootFix(FCOM用含む)
・MOBS
・TIE用Patch
・OWCND用Patch
・WAC用EVE
・UL用Patch
知ってるだけでもこれだけあるので導入者が全部そろえる必要の無いMODまである
523名無しさんの野望:2011/05/08(日) 07:59:44.91 ID:rxj51JX3
>>520
独立させて個別に使いたいっていうのが
具体的にどう使いたいのか良く分からないけど、

目を複製したりとか、直接いじりたいならCSの
キャラクラー>目 の項目
NPCごとに使いたいなら、目の項目があるので
そこから個別にヴァンパイアの目を指定すればできます。
524名無しさんの野望:2011/05/08(日) 08:00:56.46 ID:rxj51JX3
誤字訂正…
×キャラクラー
○キャラクター
525名無しさんの野望:2011/05/08(日) 08:12:55.06 ID:jEWSyS6C
>>522
なんというか、そこまで導入の自由度があるなら普通にバラバラにomod化したほうが安全な気がスルヨ・・・
巨大すぎるomodは環境によっては処理中フリーズしたみたいになるしね。
526518:2011/05/08(日) 09:48:37.36 ID:oAD+LP4p
>>519
確かに普通に考えれば全部揃ってるはずなんですよね。
Script.txtだけ作成して配布しようと考えたがために、
作成されるOMODの中身が完全かわからない。
じゃあチェックしなきゃって考えました。
やっぱり無いですよね。

>>521
基本的な考え方はそのとおりです。
やりたいのは、A.espがOMOD内になかった場合、A.espの導入をスキップするということです。

>>522
まさにその通りです。
エスパー!?

>>525
パッチ関係を後から導入するとOMODの数が増える。直接入れると何を入れたか判らなくなる。
などなどあったので、スクリプトで選択しながら一括で入れられれば出し入れ楽なんじゃない?と思いました。
確かに安全面を考えると大きく複雑なOMODは怖いですね。


とりあえず、一括でまとめないでバラバラにした状態のScriptを作ってみます。
何か良い案があれば御教授願います。
皆さん、ありがとうございました。
527名無しさんの野望:2011/05/08(日) 10:13:11.50 ID:qTWGeXzz
>>526
導入難易度下げるにもOMODスクリプトは非常にありがたいと思うのでがんばって欲しいと思います。
しかしWACの場合本体自体にTES4editなどでプラグインを修正しなければいけない場所が数多くあります。
フォーラムに無許可で全部修正したプラグイン集はあるんですけどね

あとBSA化されたクリーチャーのヘッドメッシュの多くが光ってしまう現象の修正も必要です
こだわらないならしなくても良い所なんですが、するとなるとものすごい量NIFSkopeで修正が必要になります
BSAファイルが無圧縮で1.6Gもある点が結構大変かな、圧縮にしたほうが読み込み速い環境の人の方が多いでしょうし

このへんのファイル修正のハウツーも用意しないとダメかもしれません、情報だけなら提供協力は出来ますよ
528名無しさんの野望:2011/05/08(日) 10:21:55.71 ID:LgGUVuVA
眼帯に適正な属性ってありますか?
529名無しさんの野望:2011/05/08(日) 10:43:48.03 ID:oAD+LP4p
>>527
協力して頂けるというその言葉だけでも心強いです。

ご指摘されたように、現時点のWACは修正箇所が非常に多いことは認識しております。
しかし、今回のScriptにその対処方法のハウツーを掲載する予定はありません。
Scriptは提供するが、ファイルは自分で用意してくれというスタンスを取るつもりです。

理由は種々ありますが、私自身の知識と情報が追いついていない事が一番の理由でしょうか。
(例えば、BSAファイルの件は知りませんでした)

せっかくのご指摘ですが、対処できず申し訳ありません。
また、何かあったときには相談に乗ってください。
よろしくお願い致します。
530名無しさんの野望:2011/05/08(日) 21:11:01.86 ID:wtaMFPu5
>>528
AmuletかRightRing、もしくはLeftRingじゃないかな
Tailでもいいけど、尻尾有り種族は尻尾が消える
531名無しさんの野望:2011/05/08(日) 21:37:04.78 ID:WIYMkmGv
>>530
ありがとうございます。
装備した際に眼帯がちゃんと表示される種族と
textureが変な表示になる種族がいたので(眼帯装備のままshowracemenuが原因?)
初めてなのでわからないのがいっぱいですね・・・
532名無しさんの野望:2011/05/09(月) 01:38:11.43 ID:BzJqianR
>>523
ありがとうございました。
533名無しさんの野望:2011/05/09(月) 19:27:47.96 ID:/a213eSp
初歩的かもしれませんけどNPCごとのモーション割り当てについて、どうしても割り当てた通りにならないので
お知恵を拝借させてください

とりあえず、ぐぐってみた通りにSpecialAnimsフォルダにモーション(今回は通常パワーアタック)を入れてCSでNPCに動作させたいモーションに×チェック
プレビューを見ても適用されているのは確認

だけど、ゲーム内では適用されず…

数キャラだけなので、Mayu's Animation Overhaulを真似て動作させたいフォルダを新規で作ってNPCにSkeltonを指定して
動作させようと思ったけど、

Idle動作をしなくなるのは知っていたので、それに対応しようとIdleモーションを作ろうとしたが、
Idleモーションの新規フォルダ作成の仕方がわからず、頓挫…

Hentai ManiaのNPCはDMCモーションを使うけれど、特別どういう風にしてるのか分からず
ちょっと行き詰ってます…

Cotyounoyume Combat Animation Overhaulはまだちょっと覗いてないのですけど、
強引にOBSEでモーション指定させることができるのかな…?

何かアドバイスあればお願いします
534名無しさんの野望:2011/05/10(火) 21:13:05.46 ID:/Oc1QYfP
パワーアタックを食らうなどして吹き飛ばされ中を判定するにはどうすればいいか困っています。
のけぞりとかではなく続いてダウンするモーションです。
アニメと言うよりは物理演算してそうな感じの。

sdt 1でanimationを眺めていたところ吹き飛ばされ中のアニメはIdleに属するようなのですが
普通のIdleとまった区別がつきません。
535名無しさんの野望:2011/05/10(火) 21:40:17.18 ID:IPGH8a3x
GetKnockedStateはチェックしてみた?
536名無しさんの野望:2011/05/10(火) 22:11:03.16 ID:U5lZNYJE
>>534
この632〜665を見るとほぼ同じ話が出てきますのでご参考に
http://oblivion.z49.org/logs/dev/1288333470.html.gz#R632
537名無しさんの野望:2011/05/10(火) 22:22:56.48 ID:/Oc1QYfP
>>535
PushActorAwayと同様の状態のようで、
(明らかに空飛んでるのに)地上にいる/Idleを返す/ノックアウトしていないと返す、と言う不思議な状態のようです。
この状態で崖から突き落とされてもノーダメージでした。
PushActorAwayはCS1.2からの追加コマンドなので急ごしらえ的な何かがあるのかもしれませんね。

今は操作の可不可でどうにかならないか調べていました。

>>536
同様の話のようで大変参考になります。
試してみます。
538534:2011/05/10(火) 23:38:15.12 ID:F+SxDlil
先ほどのリンク先にあることなどを試してみましたが、AnimPathIncludesではダメでした。
player以外のラグドール状態は取れるのですが
playerに限ってはなぜかIdleが実行されていると言う結果が返って来ます。
コンソールでもそのように表示されます。
先に試したIsAnimGroupPlaying Idleで1が返ってくるのもこれが原因かもしれません。
(余談ですが吹っ飛び中もturnleft/rightが入力できるようです。吹き飛ぶ軌道に影響はしませんが。)

プレイヤーがパワーアタックなどを食らって吹っ飛んでる間は処理を止めると言う事をしたいと考えていました。
プレイヤーとその他で挙動が違うとは考えていなかったもので後だしになってすいません。

イベントなどに使われる操作できない硬直を取るGetPlayerControlsDisabledも試してみましたが、ダメでした。
期待はしてなかったけど残念。
539名無しさんの野望:2011/05/12(木) 02:58:58.77 ID:syxQP1q9
>>538
確かにPlayerだと挙動が違いますね
コンソールコマンドも知ってるものは試してみましたが、私も区別する方法は見つけられませんでした
(saコマンドやsdt 1の表示上もNPCのような差分はナシ)

後は自分が試してないジャストアイデアで申し訳ないですが…
・イベントハンドラのOnHitをPlayerに付けて、Playerがダメージを受けたら攻撃者のRefを取る
・攻撃者のアニメがパワーアタックか、そうならAnimpathを見てSkill3や4かをチェック
・気絶系パワーアタックなら攻撃者とPlayerの距離の監視を始めて、PlayerがStagger/移動などと無関係に距離が離れたら「吹っ飛び」と判断
…かなり無理矢理な感じですが

いっそ、OBSEのForumに「Actor.isRagdollコマンドを作って!」とお願いを出すとかどうですかね(もし出来たら私も使いたいッス)
540名無しさんの野望:2011/05/12(木) 08:16:15.85 ID:tM8O3mFd
>>538
少し限定的ですけど、「IsFacingUp」を使う手も。

これってIdleAnimationsで仰向け/うつ伏せを判定して起き上がりアニメの切り替えに使われている
関数ですが、通常時も使えると思います。
PowerAttackで吹き飛ばされて仰向け状態になると多分1を返します。

ただ、恐らく単にどこか特定のボーンが上向きになると1を返すだけっぽいので、アニメによっては
ラグドール状態でなくても1を返す可能性が。
PowerAttack吹き飛び状態だけを検出するなら多分他の判定との併せ技に。

また、直前の姿勢との繋がりや周囲の状況によってはラグドールになってから仰向けになるまでの
タイミングが変わるので、1が返るまでの時間は常に一定では無い可能性も。

あと、あくまで仰向け状態を検出するだけなので、前のめりの場合は判定出来ないかもです。
541名無しさんの野望:2011/05/12(木) 08:56:37.19 ID:xL22KbRI
おつかれさまです。こちらでも調べたことを書いておきます

前提:NPCの場合IsAnimPlayingで判定できるので、ここではプレイヤーについてだけ記述します

1.PushActorAwayを呼び出し〜getup系の起き上がりモーションが再生されるまでの間に
  Fatigueを0以下にしても、Paralysisを設定しても、ノック状態は 1 にならない
2.PushActorAwayを呼び出した際に、
  3人称視点の IsAnimPlaying が 0 になるフレームがあり、それ以降モーションはアイドル状態になる
  1人称視点のモーションはキャンセルされず、再生終了してからアイドル状態になる
3.PushActorAwayを呼び出されるなどしてラグドール化している場合、
  ToggleFirstPerson 1を呼び出し、1人称視点に設定しても、次フレームにて3人称視点に変更される

obseのソースも覗いているのですけど、Havok系メソッドはまだ発展途上って感じですねえ・・・
Unknown定義の部分や、定義だけして処理未実装な部分がありますね

自分は2の習性を利用して、ラグドール状態を検出しようと思いましたが、
たとえば、ジャンプしながら攻撃して着地、タイミング良くく攻撃モーションの再生が終わった場合でも、2と同じ状況になるので諦めました('A`)
542名無しさんの野望:2011/05/12(木) 09:39:04.41 ID:xL22KbRI
541です、後半部分について訂正します
2の習性については、アイドル状態の棒立ち状態でPushActorAwayを呼び出された場合に検出できません

メモ書きが多いとすぐ誤爆するんだごめんね('A`)
543名無しさんの野望:2011/05/12(木) 09:44:56.19 ID:xL22KbRI
もっかい訂正・・・省略しすぎてましたorz

PushActorAwayを呼び出された場合と、
アイドル状態でのジャンプ着地(たとえば少しの段差があって一瞬IsInAirが有効になる場合)の場合
2の法則ではPushActorAwayのみを検出することはできません
544名無しさんの野望:2011/05/12(木) 17:45:58.64 ID:XumQWLaD
避難所より転載
-−--------------------------------------------------------------------------------------------

809 名前:実況しちゃダメ流浪の民@ピンキー[sage] 投稿日:2011/05/12(木) 12:34:26.88 0
すみません、規制で書けないのでMOD制作支援スレへ転載おねがいできないでしょうか?

Idleポーズについて質問です。通常時は問題無いのですがNPCが側にいてPCがそちらの方向を見る
時に首の角度が少し上だったり下だったりします。MOD制作支援スレの過去ログで調べたところ、Bip01
headのプライオリティを高く変更した後、Bip01 TailRootのPriority値を変更することでヘッドトラックを解除する
ことができるということですが、TailRootのプライオリティは具体的にいくつくらいにすれば良いのでしょうか?
545名無しさんの野望:2011/05/12(木) 19:54:57.80 ID:tM8O3mFd
転載どうもです。

>>544
頭トラッキングの抑止だけなら「Bip01 Head」のPriorityを99とかの大きな値にすれば
それだけで行けると思います。

それよかNPCに向いた時の首の角度が合わない事の方が問題な気も。
可能でしたらその状態が再現出来る状況を教えて下さい。
5461/2:2011/05/13(金) 15:32:45.96 ID:4557EcLV
ちょこっとスレの趣旨とは違うかもしれないけどここに書かせてもらいます

SSスレでOBSEのダメ文字の修正パッチがありましたが、
あのままで本家に取り込まれることは無いと思います。というか取り込まれたら多分大変です
理由は「他の言語で問題が起こるから」です
キリル文字(ロシア語)では、普通にシフトJISの1バイト目のコードを使ってますし、
他の1バイト圏の言語でも、半角カナの様に0x80〜に各国独自の文字を当ててます

この辺はマルチリンガルな対応をしたことがないと分からないものなので、
投稿された方とかを責めるつもりはありませんが、
開発者に他の言語にも対応しろ、と言っていながら自国の事しか考えていない、と取られても仕方のない事なので、
もし皆さんが今後同じような事に出会った時のために心に留めておいてもらえると嬉しいです
547名無しさんの野望:2011/05/13(金) 15:41:10.61 ID:4557EcLV
これを踏まえての対応ですが、
1.日本語専用処理は本家ソースに入れるけど、設定ファイルなりでON/OFFできるようにする
2.問題の出る処理の部分に、例えば localize.dll というOBSEプラグインが読み込まれていたら
 そこの処理を呼び出すように変更しておいて、それをマージしてもらう
3.毎回日本語専用パッチを出すことにして、配布許可をもらう
4.OBSEのプラグインとして、日本語専用のコマンドを実装して、翻訳の際にはそれを使う

1.は開発側が対応部分の修正を行いたい時などに問題が出ます
2.は1.での問題はありませんが、新たに追加された関数などで問題が出るたびにマージしてもらう必要があります
3.はきちんとパッチを作成する人がいれば確実でしょう
以上の3つは、英語圏以外のMODでは不具合が生じる可能性が多分にあるのが難点です

4.はこと翻訳に関しては一番でしょうか。コマンドを変更しなければいけないので若干の作業が必要になります
 逆にMODを作る時に使用すると、他言語への変更の際にもコマンドの変更が必要なので外国にやさしくないです

エスケープ文字を使用できるようにするのが良いとは思うんですが、
「どの国でも使われていなくて、今までのMODでも使われていない安全確実なエスケープ文字」
という物を見つけてこないことには始まりません

結局、「ダメ文字はやっぱり使わない・使えないのが一番」という気もしますが・・・
548名無しさんの野望:2011/05/13(金) 20:56:10.14 ID:GBD+l9Y3
>>547
3が現実的ですかね…
多分日本のほとんどのユーザーは日本語/英語のModのみでしょうし。
少し手間をかけてもいいなら、別途設定ファイルでMod名毎に指定出来るようにしておくとか、
もしくはDescription部分にlocale=jaとか含まれてるesp/esmだけ日本語モードで動くとかしておけば、
日本語パッチ状態でロシア語のModを動かす場合等も困らないと思います。
549名無しさんの野望:2011/05/13(金) 20:56:59.69 ID:AAxhvYt/
>>546
作者じゃないけど
_mb系は実行環境のロケールに応じて処理されるから大丈夫かと思うんだけど
そうでもないのかな?
そもそも自環境で表示できない言語のMODを入れて不具合起きたとしてもそれは
しょうがないでしょ
550名無しさんの野望:2011/05/14(土) 14:28:32.75 ID:mRAZCj6b
馬の2人乗りmodを作っているのですが、斜面でグラフィックがズレる問題が
起こり、自分では解決方法が見つかりそうにありません。

大体はバイクMODの2人乗りシステムと同じで、同乗者を椅子に座らせて落下
ダメージを発生させないようにし、毎フレーム馬の後方にSetPosし続けて、
プレイヤーのすぐ後ろに位置するように座標を大きく前上にずらした
SpecialIdleでグラフィックだけを移動しています(コリジョンは馬の後ろ)。

しかし斜面で問題が出て、上りの場合は同乗者が前に出すぎて、下りの場合は
後ろに下がり過ぎます。馬の座標をGetPosして、そこから馬の後方の位置を
割り出して同乗者をSetPosしているのですが、起点となる馬の座標が恐らく
中央下となっていて、斜面だと馬が斜めになってしまうため、前後に短くなって
位置がずれてしまうのだと思います。

自分で解決案を考えてみましたが、「GetAngle」で上下角を検出するのは不可能
でしたし、地面のコリジョンに沿って…というのも、SetPosを使うとできませんし、
毎フレームXYZ座標を検出して、高度の変化を算出するというのも大掛かりですし…。

何かヒントがあればぜひともお願いいたします。

http://life4oblivion.web.fc2.com/double_mount_2011_05_14.7z
↑作成途中ですが、動作確認済みです。esp以外にもファイルがあるのでOBMMの
ご利用をお願いします。使い方は同梱のテキストファイルに書いてあります。
551550:2011/05/14(土) 14:43:07.68 ID:mRAZCj6b
座標合わせは「A1DMPassengerItemScript」の48行目の
「ElseIf (state == 2) && (Passenger.GetSitting > 0)」以降です。

;馬から座標と方向を取得
set x to Horse.GetPos X
set y to Horse.GetPos Y
set z to Horse.GetPos Z +15
set rz to Horse.GetAngle Z

;馬の状況によって同乗者の座標を決定
If (RunningSI == 1)
   set revision to (Horse.GetActorValue Speed / 6)
   set x to x - (sin rz) * (150 - revision)
   set y to y - (cos rz) * (150 - revision)
ElseIf (RunningSI == 2)
   set revision to (Horse.GetActorValue Speed / 3)
   set x to x - (sin rz) * (150 - revision)
  set y to y - (cos rz) * (150 - revision)
Else
   set x to x - ( sin rz ) * 150
   set y to y - ( cos rz ) * 150
EndIf

;算出された座標に同乗者をSetPos。馬の後ろに位置することになる
Passenger.SetPos X, x
Passenger.SetPos Y, y
Passenger.SetPos Z, z
Passenger.SetAngle Z, rz

この後にSpecialIdleを再生して、コリジョンは馬の後ろのままにグラフィック
だけをプレイヤーの真後ろまで一気に移動させています。でもこの方法だと
斜面でグラフィックが大きくズレてしまい、見栄えが非常によくありません…。
552550:2011/05/14(土) 14:56:53.57 ID:mRAZCj6b
何度も書きこみ申し訳ありません。

horseの座標算出位置を変更することってできませんでしょうか??
例えばちょうど同乗者が座る位置を中心に出来れば、GetPos/SetPosが非常に楽に
なるのですが…。

何か良い方法があればいいのですが…よろしくお願い致します。
553名無しさんの野望:2011/05/14(土) 16:58:18.43 ID:31mfON/n
午前5時から午後8時までの間だけ
門が開くスクリプトを書いたのですが
動作しません。
どこが間違っているのでしょうか?
書いたスクリプトはこんな感じです。
----------------------------------------
Scriptname aaaGateopen

begin Onactivate

if(gamehour>=20)||(gamehour<5)
 activate
else
 isActionref player ==1
   messagebox"Gate open am 5:00-pm8:00"
endif
end
----------------------------------------
554534:2011/05/14(土) 17:20:51.81 ID:aeCiKqYe
>>553
どうみても20時以降5時未満だが
555名無しさんの野望:2011/05/14(土) 19:31:15.68 ID:mRAZCj6b
>>553

>if(gamehour>=20)||(gamehour<5)
ここの部分がまずおかしいです。

if (5 <= gamehour <= 20)
で動くはずです。

>else
> isActionref player ==1
あとここも間違っています。

elseif isActionref player == 1
にすればOKです。

というより、ここに書いてあるスクリプトはコピペなのでしょうか??
>>553のだとバグで保存できないので、試すこともできないはずですが…。
556名無しさんの野望:2011/05/14(土) 19:36:00.52 ID:31mfON/n
>>554-555

ありがとうございました。
色々検討して訂正したら動くようになりました。
557名無しさんの野望:2011/05/15(日) 11:18:31.90 ID:xJiMnqm0
>>550
遅レスですけど。
その話って前スレバイクの時にも少し出たのですが、簡単な解決は難しいかもです。

馬の移動距離とZの差である程度は行けそうな気もしますが。

力技でやるなら、傾き検出用の透明アクターを別に用意して馬前後の適当な場所に
SetPosXYした結果のZの値との差で傾斜を求めて、みたいな方法も。
オブジェが増えたり少し大変そうですが。

他には、同乗者を椅子ではなく透明な馬に乗せ、SetPosXYだけでZ位置の制御をせず
傾きを成り行きに任せ、乗馬のIdle.kfで前方PC馬後部相当位置に移動させたり。

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

PC馬が斜面なら後ろの馬も多分斜面で同様に傾くので、乗員が傾いたままkfで前方に
移動しているのなら特に計算とかしなくても成り行きで少しは位置が合うだろう、
というおおざっぱな理屈です。

あとは逆に馬のコリジョン形状を人型と同じ円筒形にしてそもそも地面の傾斜で傾か
ない様にしたり。
でもこれだと全体の見た目が少し不自然でつまらなくなるかもです。

他にもSetPosの色々な不具合を避けるのに、馬と同期して同乗者をkfで自走させる、
みたいな事も試した事がありますが、多分制御が非常に大変になると思います。

その辺どれが一番効果的かは実際にやって比べてみないと謎ではあるのですが。
ほんとこの手の事をやるのにSetPos以外の方法ってないんですかね。

あと>>552ですけど、Bip01以外の別の個所の座標を直接取得する方法は多分無いです。
現状やはり計算は自前でする必要が。
558名無しさんの野望:2011/05/15(日) 19:38:18.45 ID:TG4oR23A
失礼します。同じアイテムを集めるというScriptで詰まっています。
以下が今のものです。オブジェクトIDを3個集めたら、次のStageへ、というものです。
これが起動しません・・・ご指導のほどよろしくお願い致します。

Begin Gamemode
if (GetItemCount "オブジェクトID" == 3)
setstage aaaAva17 15
endif
end
559名無しさんの野望:2011/05/15(日) 20:29:12.24 ID:Je6rElxt
>>558
どこに添付させてるスクリプトか分からないけど、
クエストスクリプトなら、Player.GetItemCountってしないとプレイヤーのインベントリのチェックにならないよ
560名無しさんの野望:2011/05/15(日) 20:44:08.70 ID:TG4oR23A
>>559
ご指摘有難うございます。
その通りでした。
561550:2011/05/15(日) 20:58:28.45 ID:WZNAfUOo
>>557
大変素晴らしいご助言本当にありがとうございます。

最初に、SetPosをXY座標にだけ使った場合の、Z座標の決まり方がまだ
わからないので(Z座標は変わらず時間をかけてコリジョンに調整される
のか、すぐにコリジョンに見合ったZ座標に変更されるのか)、ここから
試してみたいと思います。
Z座標の変更に時間がかかるなら、タイマーを使って間引けば何とかなり
そうですね。

馬のコリジョンを変更して傾斜しなくするのは、やはり見栄えがイマイチ
になってしまいそうなので今回はやめとこうと思います。

一番よさそうなのは、透明な馬に乗せてPC馬の後ろにXY座標だけSetPosですね。
急激な傾斜角の変化だと浮いたり沈んだりしそうですが、大抵はそれなりの
位置に落ち着きそうです。まずはこれを試してみたいと思います。

OBSEのバージョンアップやSkyrimではSetPosより便利な関数が出ると
いいですね。GetPosはBip01からしか無理ですか…うーん、残念です。

時間を見つけて色々試してみますね。本当にありがとうございました!
562名無しさんの野望:2011/05/16(月) 01:58:04.90 ID:9iJJMdEA
現在、鉱山の採掘アニメーションを素材として探しています。
ここで見たよ、ここで手に入るよ、という情報あればいただければ幸いです。
563名無しさんの野望:2011/05/16(月) 03:58:44.28 ID:4KpXZ9wD
>>562
DLC9 Mehrunes' Razor
の鉱山のNPCがなんか掘ってたきがする
564名無しさんの野望:2011/05/16(月) 04:45:39.50 ID:KXVFB3/Y
初めてMOD作ってみようと思い、小物をblenderでモデリングしました。
ゲーム内でちゃんと表示はされるのですが、グラッブできずドロップしたら空中に浮いたままになってしまいました。(コリジョンはちゃんと反映されてます)
おそらくnifに出力する部分じゃないかとは思うのですが、どうも上手くいかないので正しい方法があるなら教えていただけないでしょうか?
565名無しさんの野望:2011/05/16(月) 13:12:50.40 ID:bG1ynwdW
>>564
Export画面右上の「Clutter」ボタンは押してます?
566名無しさんの野望:2011/05/16(月) 19:52:56.45 ID:XAV8dkes
>>562
スキングラッド郊外で畑を耕している人はいるね
あとはSIの鍛冶屋でハンマーで叩いてる人とか
567名無しさんの野望:2011/05/16(月) 23:17:37.02 ID:9iJJMdEA
>>566
鍛冶屋や耕すアニメーションはあるんですけどね・・・採掘は見たことない。
568名無しさんの野望:2011/05/16(月) 23:22:47.56 ID:4KpXZ9wD
(´・ω・`)
569名無しさんの野望:2011/05/16(月) 23:25:39.80 ID:Tb9DW3d3
>>567
>>563に気が付かないのはかわいそうすぎるでしょう?
>>568になってるぞwww
570名無しさんの野望:2011/05/16(月) 23:54:15.74 ID:9iJJMdEA
DLC9 Mehrunes' RazorをCSで開いたけど、採掘モーションないっす
571名無しさんの野望:2011/05/16(月) 23:55:14.33 ID:6UghCd8y
まぁDLC9って
前提にするとMODとしての汎用性を狭めちゃう観はあるからね
かといってkfを転載するわけにもいかないし
572名無しさんの野望:2011/05/17(火) 01:14:40.46 ID:1TeYMj63
じゃあもともとどこかにあるのでは?
鉱山いけばわかるけど採掘してるのぜ(´・ω・`)
573名無しさんの野望:2011/05/17(火) 02:40:27.82 ID:rjbGXOGJ
>>572
調べたけど、AIをMeleeで場所固定して、Hoeを武器化してただけ。
同じことしたら、普通に岩に向かって攻撃してた。
574名無しさんの野望:2011/05/17(火) 02:48:49.59 ID:ZO9q3CKV
つまり縦振りのパワーアタックモーションを使えばいいということなのかな?
575名無しさんの野望:2011/05/17(火) 03:33:49.57 ID:HHYLlnK1
環境次第ではとんでもなくダイナミックな採掘になりそうだな
576名無しさんの野望:2011/05/17(火) 03:46:14.06 ID:1TeYMj63
パワーアタックかそりゃすまんかった
577名無しさんの野望:2011/05/17(火) 04:16:11.00 ID:rjbGXOGJ
報告すると、スレでヒントをもらい、以下の通り試した。

1:Vanillaのtwohandattackpower.kfをidleanimsフォルダに入れて、
 CSで待機モーションに登録
2:すると、いい感じで採掘ぽいモーションになった
3:そこで、つるはしをAnimobjectに登録し、MiscItemにも登録
4:AIでGetUseItemでそのつるはしを指定
5:ゲームに入ると、手には何もないまま採掘してた・・・

つるはしをまんま登録では無理なのかな・・・BlenderやNifが使えない私
 
578名無しさんの野望:2011/05/17(火) 04:31:34.41 ID:HHYLlnK1
ツルハシな武器なら探せばありそうだけど
579名無しさんの野望:2011/05/17(火) 04:46:05.99 ID:ZO9q3CKV
>>577
SIの箒で掃除モーションを調べてみては?
580名無しさんの野望:2011/05/17(火) 05:13:05.11 ID:pipzWXo6
ttp://elderscrolls.filefront.com/file/Improvised_Weapons;72944
シャベルとか鎌を武器化したmodあったぞい、もちろんつるはしも入ってる
参考にしてはどうだろう
581名無しさんの野望:2011/05/17(火) 08:13:45.82 ID:lCetlc5C
>>577
何かを持たせて一つのアニメを連続して再生するなら大体それでOKだと思います。

ただ、その「つるはし」というオブジェが元々nifに「Weapon」等の装備個所の指定がして
あるか、という事と、

>4:AIでGetUseItemでそのつるはしを指定

が少し謎な気が。
GetUsedItemの条件を指定するのはAIではなくてIdleAnimationsの方です。
AIではUseItemAtのTargetにその「つるはし」を指定します。

IdleアニメとAnimObjectの指定やそのnifの関係はAnvilの港で絵筆とパレットを
持って絵を描いている「AstiaInventius」が多分参考に。
582名無しさんの野望:2011/05/17(火) 08:32:26.26 ID:rjbGXOGJ
予想外のフォローレス、さんくすです

>>581
IdleAnimationsの方にもusepickaxeを作成し、AnimObjectで指定しました。

>>579
SEで調べてもSIの箒が見つからない…

>>578,580
ttp://www.tesnexus.com/downloads/file.php?id=37895
これつかってます。でも背中に背負ったままか、地面に突き刺さっている・・・
いずれにせよ、手には何もない感じ
583名無しさんの野望:2011/05/17(火) 09:05:10.81 ID:lCetlc5C
>>582
NifSkopeでそのつるはしnifのNiStringExtraDataが「BackWeapon」となっているのを
「Weapon」と直せば行けると思います。

「BackWeapon」ってそのnifを両手武器として指定する場合の初期装備位置(背中)です。
AnimObjectとして直接の装着位置を指定をする場合は「Weapon」とする必要が。
Weaponは右手の手の平にある武器を構えた時に武器nifが装着されるボーンです。
584名無しさんの野望:2011/05/17(火) 09:23:00.93 ID:rjbGXOGJ
>>583
できました!
Vanillaのtwohandattackpower.kfでつるはしをふるっています!!
後は音かなあ…無音は悲しいし
585名無しさんの野望:2011/05/17(火) 09:57:09.77 ID:ZD7rk4SG
効果音作成でぐぐってみたらVectorの音声ファイルエディタのカテゴリーで
単純な効果音を作れるフリーソフトとか既存の音のファイルを編集するのとかいくつかありますね。

KanaWaveってのを好奇心で試してみたらなんか面白いぞこれw
586名無しさんの野望:2011/05/17(火) 11:24:00.63 ID:lCetlc5C
>>584
動いた様で。
で、音ですが、もしPowerAttackのkfを使っているのなら、音はkfのNiTextKeyExtraDataの
TextKeyの中でValueが「Hit」という個所を例えば「Sound: A00Sound00」に書き換えれば
つるはしを振った時に土を耕す音が鳴ります。

音が小さい様ならCSでSound→例えば「NPCHumanHoe」のStaticAttenueationを少なく
(スライダーを左に)すれば大きくなります。

もっと凝るならwav自体を自分で新規に作ったり、または波形編集ソフトで
Data\sound\fx\npc\human\hoe\npc_human_hoe01/02/03.wavの「ザクッ」というアタック音
を生かして土をひきずる「ザザッ」という部分をうまいこと小さくしたりすると
多分つるはしっぽいいいかんじに。

その辺のやり方は色々だと思います。
587名無しさんの野望:2011/05/17(火) 11:28:05.79 ID:lCetlc5C
間違えました。

誤) 「Hit」という個所を例えば「Sound: A00Sound00」に書き換えれば
正) 「Hit」という個所を例えば「Sound: NPCHumanHoe」に書き換えれば

です。
588584:2011/05/17(火) 20:20:58.96 ID:rjbGXOGJ
>>586
いろいろ有難うございます!
これから試してみますー!
589584:2011/05/17(火) 21:00:50.85 ID:rjbGXOGJ
「Hit」という個所を「Sound: NPCHumanHoe」に書き換えたら、
変更前に比べて2倍のスピードでひたすらアニメーションしていました。

> kfのNiTextKeyExtraDataの
> TextKeyの中でValueが 「Hit」という個所を例えば「Sound: NPCHumanHoe」
> に書き換えれば・・・
上記をご指導通りにしたら、モーションが悪化したデス・・・
590名無しさんの野望:2011/05/17(火) 22:29:03.71 ID:DoeeW2uL
>>589
NiControllerSequenceのFrequencyやTextKeyのEndは変更されていませんか?
症状的にはそれが怪しいです。TextKeyのHitを他に変えて、再生速度が変わる
ことはないはずです。
591584:2011/05/17(火) 23:05:10.64 ID:rjbGXOGJ
いま、再度試しましたが、TextKeyの中でValueが 「Hit」という個所だけいじりましたが、
数倍のスピードでひたすらアニメーションしてました。
「Hit」は手打ちで直すでいいでしょうか?(そうしたのですが)
1つ気になるのは、いじってからsaveするときにnifでsaveしようとするので
kfの拡張子を選びなおして上書きsaveしています。
592名無しさんの野望:2011/05/17(火) 23:13:31.88 ID:6WGgn5JW
>>591
毎回思うけどさ、具体的に何が作りたいか書いた方がいいよ
ネタをばらしたくないとか思ってるなら、それこそ質問するべきではない
1個進展するたびにさらに追加で質問して無いか?スレはあなたの日記帳じゃないんだよ?
低姿勢だからって延々とスレ占領されると気分悪くする人も居るのを理解して欲しい
最初から何をどうしたいか全部書いたほうが早い
593名無しさんの野望:2011/05/17(火) 23:25:06.54 ID:lCetlc5C
>>591
うーん、なんでしょね。
通常は攻撃kfのHitだけを書き換えても再生速度に影響は無いと思うのですが。
SaveAsで拡張子が変わるというのも少し謎なので操作上の何かを取り違えている気も。

そのkfをUPしてもらえると話が早いかもです。
594名無しさんの野望:2011/05/18(水) 00:04:41.08 ID:e0z88C43
>>592
「具体的に何が作りたいか書いた方がいいよ」には同感だけど、
それ以降はあなたのエゴにしか見えないんだけど。
やりとりを見て勉強になってる人もいるんで、辺に言論封殺
みたいな事して欲しくないなぁって思うな。
回答してるご本人なら別だけど。

スレ汚しスマソ。
595584:2011/05/18(水) 00:05:51.48 ID:rjbGXOGJ
>>593

>そのkfをUPしてもらえると話が早いかもです。
upしました。Mine01が元、Mine02が「Sound: NPCHumanHoe」を行なったものです。

ttp://shy.jsphr.net/upload/img/ups26813.7z

よろしくお願いします!
596名無しさんの野望:2011/05/18(水) 00:34:07.75 ID:ZJ1o2Q7L
>>595
これって>>577の、IdleAnimations+AnimObject+UseItemAtのAI、の方法で実際に
動いているkfですか?

NiControllerSequence名が「SpecialIdle」ではなくて、CycleTypeが「CYCLE_LOOP」では
ないのでこのままではIdleとして再生されないと思うのですが。

ちょっと状況が謎なのでとりあえずこれで動作の確認を。こちらで作ったkfです。

http://shy.jsphr.net/upload/img/ups26814.zip
597名無しさんの野望:2011/05/18(水) 00:47:40.91 ID:ZJ1o2Q7L
あれ、なんか動く事もあるみたいですね。
でもMine02.kfの方は明らかに動作が異常です。
Mine01も一回再生する毎に一旦通常Idleに戻ったりでうまく繋がってないです。

上に書きましたが原因はNiControllerSequence名とCYCLE_TYPEです。多分
598584:2011/05/18(水) 01:02:09.51 ID:uL7ZXpED
>>597
shyのものの起動を確認しました!

PowerAttackのkfをそのまま使い回していたので、そのままだったのが
マズイかったのかもしれません。
あきらかにnifへの知識不足が原因ですね…これを機会に勉強します。

Mine01は私のほうでは起動しています…ただ指摘の通り、
瞬間的に一旦通常Idleに戻っていますが、こんなもんか…で済ましていました。

いろいろお付き合いいただき有難うございました!
599名無しさんの野望:2011/05/18(水) 01:22:55.98 ID:ZJ1o2Q7L
その辺ってIdleAnimationsで指定するIdle用のkfを作る時のお約束なんで
多分少し探せば方法はすぐ見つかると思いますよ。

具体的には、NiControllerSequence名が例えば「PowerAttack」とかになっていたら
「SpecialIdle」に書き換えて、そのNiControllerSequence→CycleTypeが例えば
「CYCLE_CLAMP」になっていたら「CYCLE_LOOP」に変更すればそれで原則OKです。
600名無しさんの野望:2011/05/18(水) 02:15:48.21 ID:f4Nwb4cQ
Unique Landscapes シリーズの SkingradOutskirtsで追加されるスキングラッド城の側の
鉱山で働いてるNPCがパワーアタックで掘ってるから参考にされてはどうでしょう
601名無しさんの野望:2011/05/18(水) 21:22:50.45 ID:++AEzJ6h
馬の2人乗りを製作しているものですが、途中報告です。難航してます。

椅子に座らせるのでなく、透明な馬をプレイヤーの馬の後ろにSetPosし続けて
kfファイルでグラフィックだけを前方に移動させる方法を試しているのですが
問題がいくつか出ました。

1.勝手に馬から降りてしまう
10秒くらい経つとなぜか勝手に馬から降りてしまいます。「SetRestrained 1」は
してますし、AIパッケージも馬がターゲットのFind、プレイヤーがLocationで
Radius1でUseHorseのTravelなどいくつか試しましたがダメです。
0.2秒毎に馬をMoveToさせてみても変わらず。勝手にDismountします。

2.思ったよりZ座標の移動量が激しい
馬をXYだけSetPosしてZはコリジョンに任せているのですが、結構上下動が
激しいです。まだダミー馬のkfがヴァニラのままですし「SetRestrained 1」
しているだけなので、工夫次第でもう少し何とかなりそうですが、少し不安。

2はともかく、1が謎です。バイクmodの椅子に座らせる方法では問題なかった
のですが、何が違うんだろ…??
602名無しさんの野望:2011/05/18(水) 23:35:56.66 ID:ZJ1o2Q7L
>>601
1.ですけど、SetRestrainedって元々その時のAIによっては勝手に動いたりする事が
ありますし、乗馬中は椅子とは違う挙動になったりするのかも。

SetRestrainedでダメなら、例えば乗馬動作が終ったら前の馬へのFollowパッケを
そのNPCにAddしたり。
Followで指定した距離が前の馬との距離より大きければ近付く動作は起きずに
その場でじっとしていると思います。
SetRestrained関係の少し似た話が過去スレPart4/27に。

2.は、実はそう言われそうな予感がしてました。

SetPosの宿命の前後のガクガクは置いとくとしても、多分ゆっくり歩いている時は
ある程度OKだけど、走ると上下にガクガクピョンピョン跳ねて特に上り坂で酷くなる、
みたいなかんじだと思うのですが。

生きてるアクターって何かの加減で地面にめり込むとシステムが自動的にzを正常な
位置に回復します。
でも毎フレーム即時反映する訳では無いので、常時XYをSetPosしていると上り坂での
zのめり込みがある時一気に回復してピョンと跳ねて見える事に。
下り坂の場合、自由落下は応答が早いのでそれほどピョンピョンはしないと思います。

対策は、前の馬のzを監視、上り坂でzが増えたらその時だけ同じ増分を後ろの
馬のzに加算してSetPosZすれば、上り坂でのめり込みが緩和されてある程度改善する
かもです。
603名無しさんの野望:2011/05/19(木) 00:37:59.13 ID:khz2kuIY
602ですけど。
今実際に透明馬方式を試してみましたが、乗員の位置がやっぱおおざっぱすぎかもです。
かなりの割合で前後馬の傾きが合わずに乗員が宙に浮いたり潜り込んだりしてます。

自分で言っといてなんですけど、別の方法の方がいいかも。
604名無しさんの野望:2011/05/19(木) 00:51:28.53 ID:khz2kuIY
うーん、後の馬を専用クリーチャーにしてコリジョンを小さい横円筒形にして
前の馬との距離も小さくすれば上下位置の誤差は少なくなる気もしますが。

でももっときっちり位置を合わせたくなった時にこの方法だと構造的に限界がある
かもですね。
605名無しさんの野望:2011/05/19(木) 14:38:23.12 ID:u/ekTdF4
現在ヴァンパイアの日光ダメージ無効の装備を作成しています。
少し調べてみたところ、ここの過去ログ(Part6)に同じような質問をされた方がいましたので
そちらのスクリプトを使って作り、無事動作するところまでは確認しました。

しかし確認用のスプリクトということで、改良等はまた別らしく、それ以上のレスもありませんでした。。
自分だとスクリプトのどこをどう弄っていいのかすらわからないので、皆様のお力を貸していただければと思い質問させていただきました。
以下過去ログにあったスクリプトを書かせていただきます。

scn A000AmuletScript

long EfcCod
long LopCnt

begin GameMode
if ( Player.GetEquipped A000Amulet == 0 )
return
endif
set EfcCod to GetMagicEffectCode SUDG
set LopCnt to Player.GetActiveEffectCount
label 1
set LopCnt to LopCnt - 1
if ( Player.GetNthActiveEffectCode LopCnt == EfcCod )
Player.DispelNthActiveEffect LopCnt
message "SUDG Removed."
return
endif
if (LopCnt > 0 )
goto 1
endif
end

どうかよろしくお願いします。
606名無しさんの野望:2011/05/19(木) 15:23:39.34 ID:msLKQQbC
ちょっと単発の質問なのですが、
コンソールからの
tgmモード(ゴッドモード)やTCLモードを検出する方法ってありますでしょうか?
607名無しさんの野望:2011/05/19(木) 18:54:54.95 ID:IACpu+1P
Sexlivionではtgm検出してたから方法はあるんだと思う
608名無しさんの野望:2011/05/19(木) 19:02:11.91 ID:khz2kuIY
>>605
それ私です。なんか酷いスクリプトでアレだったのですが。

で、まず、そのサンプルが出た経緯を見てもらうと分かると思うのですが、その質問を
した方のMOD環境でこの方法が行けるかどうかの確認の為だけの専用やっつけサンプル
なので、別な状況でそれを元に話を進めると少しややこしくなりそうな気が。

またもしこの方法で行くのなら、MagicEffect関係の少しややこしい部分にまで
立ち入る必要があります。
スクリプト自体も多分まっさらから作り直した方が早かったりします。

という事で、まずはそのサンプルの方法で行く必要があるのか、という所から少し
検討が必要かもです。

日光ダメ抑止MODは多分もうあると思うのですが、それではダメなんですかね。
自分で作る事が目的、という事でしたらもう少し取っ付きやすい別な作り方もあると
思います。
609名無しさんの野望:2011/05/19(木) 19:03:17.05 ID:khz2kuIY
>>606
tgmはOBSEに「GetGodMode」てのが。tclはよく分からんです。
610名無しさんの野望:2011/05/19(木) 19:19:12.42 ID:msLKQQbC
>>607>>609
ありがとうございます。
TGMはとりあえずあるのですね。
これからはやはりOBSEは必須ですか
611名無しさんの野望:2011/05/19(木) 19:37:43.20 ID:cKiEfrN+
というか「日本語化パッチ」自体がOBSEのプラグインで実装…ってのが主流になりつつあるから、
そう考えるとOBSEがない環境ってのもあまり考慮しなくていい気はするw
バージョン違いの不具合はあるだろうけどね
612名無しさんの野望:2011/05/19(木) 21:55:06.62 ID:msLKQQbC
>>611
言われてみればたしかにそうですが、それだけのためにOBSEもあれですし
さらになにかあるようならマタ考えてみますアドバイス感謝!
613名無しさんの野望:2011/05/19(木) 22:14:28.44 ID:u/ekTdF4
>>608
おお、本人さんでしたか!
そうですね、他の日光ダメージ抑止MODを元にしようと思います。
わざわざありがとうございました!
614名無しさんの野望:2011/05/19(木) 22:23:07.35 ID:ulaWn7dp
>>609
OBSEだとコンソールコマンドから移植されてないやつでも
RunScriptLineで食わせると動くコンソールコマンドが多いので
実装の選択肢が増えていい感じです。AFANとか。
http://cs.elderscrolls.com/constwiki/index.php/RunScriptLine
615名無しさんの野望:2011/05/19(木) 22:32:58.50 ID:ulaWn7dp
あ、間違えた
616名無しさんの野望:2011/05/19(木) 23:34:30.98 ID:RIwTatRa
質問です。
小規模な街を作っているのですが、初めは扉が開いていてオープンな街にするつもりでしたが、門をつけてバニラ
の街のようにしたくなりました。
外(Tamriel)に作った街をバニラの街のように***worldという別のCellに配置したNPCや木・岩・パスグリッドなど
の情報をそのままコピーして移すことは可能でしょうか?
617名無しさんの野望:2011/05/19(木) 23:51:10.01 ID:msLKQQbC
>>616
ブロックごとにコピーで貼り付けて合わせてくしかないって結論を大分前にみたきがする
間違ってもタムリエルコピーとかしたら落ちるし、データ量がやばすぎるとおもう。

もし何か画期的な方法できてるならむしろ知りたいくらいや。
618名無しさんの野望:2011/05/20(金) 00:02:35.61 ID:/MkTyYms
昼間にLightアイテムを装備させる事って何か注意点ありますか?
GameHour比較してEquipItemでLightアイテム指定してみたけど
完全スルーされて涙目です
619名無しさんの野望:2011/05/20(金) 00:12:56.23 ID:OcsBdmcJ
以前がんばろうとしたなぁ タムリエルコピー
一部でさえきつかった
タムリエルを親にしてワールドマップ作成、その街の部分をコピーペースト
元のタムリエルは該当の部分を城壁で囲んで、中のものを消す、lodオブジェに置き換える、ぐらいしか思いつかんね
パスグリッドやnpcのAIパッケなんかは作り直しになる可能性だが
620名無しさんの野望:2011/05/20(金) 13:59:43.75 ID:ZpW/aj9l
>>616
配置済みオブジェ込みでWorldSpaceを部分的にコピーする機能ってCSには無いので、
やっぱ皆さん仰る通り手作業になると思います。
どのぐらいの手間かはCellやオブジェの数によると思います。
621名無しさんの野望:2011/05/20(金) 14:04:43.79 ID:ZpW/aj9l
>>618
NPCのTorchの使用ってシステムの制御で条件も最適化されているので外部からの単純な
操作は難しいかもです。

見た目だけでOKならIdleAnimatinsにtorchidle.kfを指定してAnimObjectに松明nifを
指定すれば任意のタイミングで松明を手に持たせる事は出来ると思いますが。

でもそれだと実際の光源にはならないので、本物の光源が必要な場合はまたなんか
別な方法が必要に。
622名無しさんの野望:2011/05/20(金) 15:39:21.90 ID:qpHRUJCW
質問です。
Mod作成中にFormIDが2つに分かれてしまいました。「01〜」「02〜」
特に実害は出ていないので緊急性は感じていないのですが、これを簡単に修正する
方法は無いでしょうか?
TES4Editで修正する方法は判明したのですが、1つ1つ手打ち(IDが数万はある)なのと
新しいFormIDとしてどんなIDを振ればいいのかがわからないので詰まっております。

ご回答いただければ幸いです。
623名無しさんの野望:2011/05/20(金) 15:51:28.71 ID:ZC30EnNP
>>622
TES4EditでfoamID変えたい物全部ドラッグしてchangeFoamIDで一気に全部変えてくれますけど、それじゃだめ?
624622:2011/05/20(金) 17:22:35.05 ID:qpHRUJCW
>>623
有難うございます! 試したら一気に修正できました。
ただ、よく見るとFormIDが020と021からの2パターンありますが、これは
両方とも02〜で始まっているので問題ないですよね…
625622:2011/05/20(金) 17:36:44.66 ID:qpHRUJCW
>>623
modを起動したら壊れていました…おそらく「Select a single target file」
を間違えたのかもしれません…私は自分自身のmodをselectしていたのですが
親esmがあるなら、親にするべきなのでしょうか?
親はOblivion.esm/CUOの2つが存在します。
626名無しさんの野望:2011/05/20(金) 17:52:44.20 ID:ZC30EnNP
>>624
選ぶのはコピーしたesp側ですよ
装備MODマージするとすでに取得してる装備のIDも変わって消えてしまうので面倒です
そのためこのやり方でマージ用espにいつも新IDつくって毎回追加してるんですが特に問題おきた事は無いですよ
627622:2011/05/20(金) 18:07:36.84 ID:qpHRUJCW
>>623
>選ぶのはコピーしたesp側ですよ
ということは、FormIDを替える前に、替えたいespをコピーして以下の4つをTES4Editにてチェックを入れる
1) Oblivion.esm
2) CUO.esm
3) 自作mod.コピー.esp
4) 自作mod.esp

そして「4」のespでchangeFoamID、「Select a single target file」でコピーしたesp「3」を選ぶ

ということでしょうか。
628名無しさんの野望:2011/05/21(土) 01:22:41.90 ID:8X4lMZ7d
>>621
レスdです
色々試してみて、厳密に比較することで松明所持を操作することはできました。
用途的に光源としてではなくポーズとして使いたかったのでAnimObjectで結局使うようにしました。
模索中に分かったのですが、ポーズとして使うにも松明の効果音があるし
音設定は落下音のみで、システム側でがっちりつかんでる印象でした。

Aがやりたい!→BとCとDを調べろ
的な感じでなかなか難しいですね
629名無しさんの野望:2011/05/21(土) 09:56:06.22 ID:+iiODzNg
いろいろ自分で調べてみたのですが今一よく判らなかったので質問を
oblivionのmodを作る際にThe Elder Scrolls Nexusにupされている
Blender247と249bの利点や欠点、互換性などが知りいたのですが
詳しい方、おられるでしょうか?
630名無しさんの野望:2011/05/21(土) 13:48:31.84 ID:viQ/IqtD
>>629
こういうツール配布でバージョン違いが複数置いてある場合は基本的に、
1、OSの対応関係
2、過去の安定しているバージョンと安定度合いが不透明な最新版
3、ユーザーが作成したツール拡張の対応バージョン関係

という感じの理由が多い。
631名無しさんの野望:2011/05/21(土) 13:54:51.39 ID:LEJNEwKm
>>602-604
ご助言を元に、何とか使えるかもしれないレベルまで調整してみました。
http://life4oblivion.web.fc2.com/double_mount.7z
もしよかったらお試しください。

馬を勝手に降りてしまうのは、AIパッケージの「PCが近くにいる間持続」を
有効にしたらかなり改善されました。

斜面での位置ズレは、ご助言通り、同乗者の馬を小さめの細長いコリジョンに
して距離を近づけ、プレイヤーのZ座標の増加に応じて同様に増加させたところ、
こちらもかなり改善されたと思います。起伏があるところに行かない限り、
何とか見れるくらいのレベルになったと思います。

「全然使えねーレベルだろこれ」など、できれば皆様のご意見を伺いたいです。
632631:2011/05/21(土) 14:01:09.72 ID:LEJNEwKm
633名無しさんの野望:2011/05/21(土) 20:16:02.84 ID:R/ZwidEx
質問です
PlayerがNPCをアクティベートしても会話状態(ズームするやつ)にならないようには
どうすればいいのでしょうか?

NoRumorsにしてもGreetingだけは行ってしまうので、
Creature(Sheepとか)をアクティベートしたような、何も起きない状態にしたいのですが…
634名無しさんの野望:2011/05/21(土) 20:21:42.96 ID:Y+AhUd5G
>>633
scriptname aaatestNPC

begin onActivate
if isActionRef player == 1
 return
endif

こうだったかな
635名無しさんの野望:2011/05/21(土) 20:47:38.89 ID:WIcSOgu3
>>629
TESNにVerが色々あるのは今までの安定動作の実績がある組み合わせの履歴として
残してあるんじゃないですかね。

互換といっても一旦nifになればVerに応じてそれなりに読み書きは出来るので、
自分の環境上の理由でそのVerがどうしても使えない、とかいう場合以外は古いVerを
選ぶ必要は特には無い気も。

機能的な細かい変更履歴が気になるのでしたら各NifScriptのChangeLogを見てみる
のがいいかもです。
nifの場合はBlender本体よりNifScriptの方で機能が決まるので。

個人的にはIKが改善してるんでアニメを作るなら新しいBlenderがいいのかなー、
とは思いますが。
636名無しさんの野望:2011/05/21(土) 20:53:16.71 ID:WIcSOgu3
>>633
他に「SetDestroyed 1」でも行けると思いますが、Activateが抑止される副作用として
NPC同士の会話が起きなくなったりします。

その辺最終的に目指す状態次第で方策は変わると思います。
637名無しさんの野望:2011/05/21(土) 21:06:00.07 ID:WIcSOgu3
>>631
動作拝見しました。
椅子方式と比べると馬方式は逆に動きがダイナミックすぎてどっちがいいのか少し
判断に困りそうな気も。

椅子方式の場合でも、上り坂の時に後部乗員が前部乗員に極端にめり込む状況さえ
何とか出来ればそれなりに行けそうな気もするので、うまい事両方の良いとこ取りが
出来ればいいんですけどね。
638名無しさんの野望:2011/05/21(土) 21:46:20.10 ID:R/ZwidEx
>>634
レスありがとうございます

今試していたところ、OnActivateで制御してしまうとNPC同士が会話しなくなるうえに、
死亡後にもInventoryを覗けなくなってしまうようで…

>>636氏の言われる通り、もうちょっと状況を詳しく書けばよかったのですが

>>636
レスありがとうございます

ただSetDestroyedも試したのですけど、これだとNPCの名前まで見えなくなってしまうようで…


ちなみにやりたいことは、クエストで、
とあるCellに入る→NPC1とNPC2が会話をしに行く(結構距離がある)
会話後に、NPC同士が喧嘩を始めて、決着がついたらおしまいっていうクエストなんですけど、

NPC1とNPC2が会話をしに行くまでにPlayerがNPCに話しかけても無反応な状態を作りたいのです。

基本的に、自由にNPCへの会話以外へのチャチャは入れれるようにしたいので、DisablePlayerControlsでのPlayer抑制はなしの方向で行きたいと思ってます。
639名無しさんの野望:2011/05/21(土) 22:28:26.80 ID:Y+AhUd5G
>>638
なるほど、だったら、
> NPC1とNPC2が会話をしに行くまで
このシチュエーションがクエストステージなどで明示させられる場合、
(ステージが20の時に会話をしに行き、会話終了でステージ21に更新される…とか)

scriptname aaatestNPC

begin onActivate
if isActionRef player == 1
  if GetStage testQuest == 20 ;無反応であってほしいシチュエーション条件。上の例でクエストステージ
    return
  endif
endif

とすれば、「特定の期間のみプレイヤーのActivateに無反応、それ以外の時は通常の反応」
っていう挙動になるんじゃないかな
640名無しさんの野望:2011/05/21(土) 22:32:09.31 ID:Y+AhUd5G
あ、こうしないとマズいかなぁ

scriptname aaatestNPC

begin onActivate
if isActionRef player == 1
  if GetStage testQuest == 20 ;無反応であってほしいシチュエーション条件。上の例でクエストステージ
    return
  else
    Activate ;←それ以外のシチュエーションでは普通のアクティベート動作になるように
  endif
endif



isActionRef player != 1の場合も書いた方がいいのかもしれないし、
書かなくても大丈夫なのかもしれぬ。
641名無しさんの野望:2011/05/21(土) 22:34:23.98 ID:LEJNEwKm
>>638
scn aaatestNPC

Begin OnActivate
If (IsActionRef Player == 1) && (SenyouFlag == 0)
 Return
Else
 Activate
EndIf

これでいけそうな気がするのですがどうでしょう??
OnActivateを使ってしまうと、全てのアクティベートの際に、通常の
アクティベート動作の代わりとしてそのスクリプトが使われます。

>>634のスクリプトの場合、「プレイヤーだったらReturn」という内容でしか
ないので、プレイヤー以外からアクティベートされた際も何も処理されない
わけです。そこで「プレイヤー以外ならActivate」を付け加えればOKです。

多分そのアクターが死亡後もOnAcitivateの内容は有効なので、死体チェック
とかしたい場合は、専用フラグを用意して、それで管理すれば大丈夫です。

余談ですが、OnAcitivateを使わない場合は、OnAcitivateに↓のように
書いたのと同義です。

Begin OnActivate
 Activate
EndIf

自分でOnAcitivateを書いてしまうと↑が置き換えられてしまうので、Activate
をちゃんと書いてあげないと正常にアクティベートできなくなってしまいます。

以上、長々と失礼しました。もし間違ってたらごめんなさい、正解を教えてください。
642名無しさんの野望:2011/05/21(土) 22:43:00.38 ID:Y+AhUd5G
>>641
補足ありがとう
643名無しさんの野望:2011/05/21(土) 23:07:54.81 ID:R/ZwidEx
>>639-641
レスありがとうございます

OnActivate上では、Activateの関数が抜けると何も処理しないという動作が盲点でした!
Activateを入れるだけで、問題なく上手く動作できました

ありがとうございました
644名無しさんの野望:2011/05/22(日) 00:29:45.79 ID:ver7rsBF
>>637
お試しいただきありがとうございました。

もしかして椅子でもコリジョンを細長くすれば、斜めになったりします??
椅子をNifSkopeで開いても、コリジョンの設定場所がわからなかったので
挑戦していませんでした。

上下角が変わらない限り、斜面での位置ずれを回避することは非常に難しそう
に見えます。現状の透明馬方式は精度がまだまだですが、一応平坦な道を
ゆっくり流すくらいなら使えるかも…と思ったのですが、限定的すぎますね。

もしかして、まずプレイヤーの馬の後ろに同乗者をセットして、そこを起点に
前方にTriggerZoneを展開して、それがプレイヤーにOnTriggerしたら同乗者を
後ろにずらして、そのずれた量から大まかにZ座標を調整する…。

普段はプレイヤーの馬と同じZ座標にして、OnTrigger次第で座標の調整すれば
いけるのかもしれませんね。同様に、同乗者の馬からさらに前方へTriggerZone
を展開して、同乗者が後ろに下がりすぎたらプレイヤーにOnTriggerするので、
その際も座標を調整…調整がすごい大変になりそうですが……。
645629:2011/05/22(日) 06:15:57.52 ID:vxR4On5p
>>630
>>635
情報、ありがとうございます
とりあえず問題が無ければ4.29bを使っていこうと思います
646名無しさんの野望:2011/05/22(日) 09:30:52.26 ID:etJeIAlc
>>644
椅子のコリジョンを物理演算化する事は可能なのですが、座ったアクターは椅子の
傾きとは関係無く必ず正立するのでこの用途には少しうまくないかもです。

あとインベントリアイテムみたいな物理演算オブジェ自体はGetAngleで現在のxyz角が
取得出来るので地面傾きのセンサーに使えるかもですが、SetPosを連続した場合の
挙動が少し謎なのでその辺色々テストが必要に。

TriggerZoneでPC馬傾き検出はアリかもですね。
ただTriggerZoneもSetPos移動で前後にガタガタすると思うので感度や位置精度の調整
に手間がかかりそうな予感も。

他に「GetTerrainHeight」で現在位置近傍の地面高さをサンプルして傾きを予想する方法
もあると思うのですが、地表の上に配置されたオブジェ(橋とか)のコリジョンは検出
出来ないみたいなのでその辺が問題かもです。

本来はPC馬と乗員馬のコリジョンを全く同じXYにSetPos出来れば話は非常に単純に
なると思うのですが、どちらもTCLではうまくなさそうですし、他にアクター同士の
コリジョンだけを無視する方法があるかは謎です。

で、馬方式を追求するなら馬を後ろではなくサイドカーみたいに横に置くのもアリかも
ですよ。

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

これ今少しやっつけで試したのですが、後ろ位置よりPC馬との傾きの相関が大きくて
距離も近く出来るので乗員の傾きはより同期しやすいみたいです。

斜面傾き方向に対して横を向くとPC馬と横馬のzの差で乗員が上下に浮いたりめり込ん
だりしますが、乗員高さ違いのkfを数種用意してz差で切り替え、みたいにすれば
これはこれである程度までは行けそうな雰囲気も。
647名無しさんの野望:2011/05/22(日) 13:14:28.63 ID:1LFoeV1y
大きな透明馬でPC馬を上から跨いだらどうかしらと思ってみた
648名無しさんの野望:2011/05/22(日) 14:08:46.92 ID:vxR4On5p
コリジョンを極小に改造した新規馬メッシュを使ってみるとか
649名無しさんの野望:2011/05/22(日) 16:11:02.05 ID:ver7rsBF
>>646
透明馬を横に置くのが一番良さそうに見えますね。後ろより遥かに近く位置
できますし。Idle.kfやForward.kfを高さ違いにして、GetPosでZを比較して
見合ったものをPlayGroupすればいけそうです。SpecialIdleで合わせるのも
手ですが、やるやらないはともかく、違うポーズを登録できる余地を確保
しておきたいというのがあります。

そこで早速質問で申し訳ないのですが、ある場所から前後位置だけをずらす
場合は、以前教えていただいた
set x to x - (sin rz) * 200 ;200以降で前後位置を調整
set y to y - (cos rz) * 200
でできたのですが、前後位置は同じで横位置をずらす方法がわかりませんでした。
sinとcosを交換じゃできず、三角関数全然わからなくてダメでした…。
もしよろしければ教えていただけないでしょうか??

>>647
ナイスアイデア!と試してみたのですが、仕様なのか上手くいかず…。

透明馬のコリジョンの中心を右横思いっきり下にずらして、SetPosでプレイヤー
と同位置にする。コリジョンが右側にずれているためプレイヤーと干渉すること
はなく、しかも凄く下にあるために勝手に上に浮いたところで停止、だから
透明馬に乗っている同乗者も浮くことになり、こちらもプレイヤーと干渉しない。

しかしコリジョンのZ軸の中心をマイナスにしても無効のようです。そのため
浮かすことができず、同乗者のコリジョンがプレイヤーと被って動けません。
仕様なので仕方ないですが、実に惜しいです。TCLがもっと便利なら…。

>>648
コリジョンはいじってるのですが、コリジョンを小さくしすぎると斜面で地面
に沿って上下角が変わってくれないため、なかなか難しい問題となってます。
650名無しさんの野望:2011/05/22(日) 17:19:07.50 ID:qEcVJJNw
初歩的な質問で申し訳ありません
自作攻撃モーションを作ろうと思うのですがNifSkopeでの作業が解りません

Blenderでモーション作成後、ポーズMODとして導入することなら出来るのですが
バニラ等のkfを覗いてもどの項目が何を意味するのかが解りません

全体的な作業の流れのようなものがある参考サイト等ありましたらご教授ください
今やろうとしているのはOnehandAttackLeft等、CastTouch等です
651名無しさんの野望:2011/05/22(日) 17:45:01.54 ID:ver7rsBF
>>650
基本的には、「NiControllerSequence」のName、Cycle Typeを同じにして
最後の方にある「NiTextKeyExtraData」内のTextKeyを同様に設定すればOKです。

TextKeyのTimeはもちろんkfによって異なります。TextKeyはBlender上でも
設定しておけるので、その場合はExport毎にNifSkopeでいじる必要がなくなって
便利です。

実は「NiControllerSequence」のNameはExportファイル名で決まり、Cycle Type
もスクリプトのファイルを修正すれば初期値を変更できるので、うまくやると
Export後にNifSkopeを使う必要をなくすこともできます。
652名無しさんの野望:2011/05/22(日) 17:46:30.77 ID:etJeIAlc
>>649
今回乗員馬は独自クリーチャーなので乗員z位置を変えるのは以前出たアクターの
体各部のスケールを変える方法も使えるかもですね。

馬SkeletonのActorParent辺りのどこかに適当なボーンを挿入してその座標位置の
キー一つだけのCYCLE_CLAMPなごく短いkfを一回再生すれば位置変更がずっと保持
されると思います。
Skeleton自体は以前出たバイク用Skeletonの流用でも

PC馬座標がxyで向きrzの場合上から見て例えば右回り90度で200離れた位置の座標は
これで。

set rz2 to rz + 90
set x to x + ( sin rz2 ) * 200
set y to y + ( cos rz2 ) * 200
653名無しさんの野望:2011/05/22(日) 20:23:26.67 ID:cTUNRd8+
>>408
すみません、手作業でNifSkopeでConstraintを差し込んでいく方法が分からなくて、
少し手解き頂けないでしょうか?

やっている内容は(ファイル添付のメモを読む限り)、特定のボーン(ここだとBip01 Spine)にコピーのボーンを足し込み
オリジナルからコピー側へのCopy RotationのConstraintsを設定しているのだと思うのですが
NifSkope上でこれをやる手順が分かりません。
やりたいことは通常のSkeleton.nifなどのSpine以外の任意のボーンについてもコピーのボーンを作り
Copy RotationとCopy LocationのConstraintsを設定する、というものです。
Blender/Nifskopeにそれほど習熟出来てないので、もし基本的な話だったらすみません。
ご回答お待ちしています。
654名無しさんの野望:2011/05/22(日) 21:08:28.18 ID:qEcVJJNw
>>651
返信ありがとうございます
本当に申し訳ないのですがTextKeyを同様にするやり方がサッパリ解らんとですorz

今バニラのCastTouch見たらStart,EndのkeyのほかにHit,Blend:6とかいうValueをもったkeyがあって
これをStart,Endしかない試作モーションにどう設定したらいいのでしょうか

とりあえず1フレーム目に案山子状態のポーズから右手を挙げ
50フレーム目に右手を振りおろして終了なモーションで試してみたいのです
655名無しさんの野望:2011/05/22(日) 21:36:24.07 ID:ver7rsBF
>>654
TextKeyの増やし方は確かにわかりづらいです。自分も英語の文必死に読んで
何とか理解しましたが、日本語の解説サイトとかあるといいんですけどね…。

NiTextKeyExtraData の中に NumTextKeys があるので、これを2から増やして
そのすぐ下にある更新ボタンをクリックするとTextKeyが増えます。これは
NifSkope独特の操作法で他でも使うことがあります。

NifSkope上でのTextKeyの編集は面倒ですが頑張ってください。慣れたら
Blender上であらかじめ設定して楽できるようになります。
656名無しさんの野望:2011/05/22(日) 22:47:41.85 ID:etJeIAlc
>>653
うーん、どうしましょ。
お話の雰囲気だと、Blenderで言うConstraintとnifのHavokのConstraintの話がなにか
渾然としている印象なのですが、まずその辺ってOKなんでしょうか。
同じ「Constraint」という名称ですが両者は別物です。

また>>408でやっているのはBlenderで言うCopyRotationやCopyLocationではないです。
いや概念的に超広い意味では多分そういう事でいいんだろうとは思うのですが。
でもHavokでの実際の構成はBlenderのそれとは違います。

で、そのサンプルってあくまで「こんな事が出来たよ、でも動作に保証はないよ」という
ネタ例なんで、手順通りにやればどんな場合も必ず動く、というモノでもないです。

そんなかんじで元々動くかどうかすら分からない性格のモノなので、もしNifSkopeを
使うのが不慣れでそこに至る操作方法自体が分からない、という事ならそのサンプルを
最初から例題にするのは全くお勧めしないです。

HavokのConstraint関係なら地面に置いた服や天秤とかのnifをまず弄ってみるのが
いいんじゃないですかね。
関節も数個で構造もごく単純ですし。

その辺の構造や弄り方をある程度把握出来ればそのサンプルみたいな事をする手順も
自ずと分かる気も。
657名無しさんの野望:2011/05/22(日) 23:32:25.37 ID:qEcVJJNw
>>655
返信ありがつおうございます
やはり皆さん海外サイト探してでも頑張ってらっしゃるようですね
都合良く国内サイトに解説ないかと思ってましたが甘かった…

>>655で教わった通りにやってみて試行錯誤しながら覚えようと思います、ありがとうございました
658名無しさんの野望:2011/05/23(月) 00:21:41.29 ID:XMbMVuiv
>>656
回答ありがとうございます。
なるほど。これまでNifSkopeは基本的な操作しかしてなかったのでBlenderで見かけるConstraintと完全に混同してました。
一旦BlenderのConstraintを忘れてNifToolsの説明を読んでみたのですが、以下の理解は正しそうでしょうか?

外からオリジナルのボーン(この場合Spine)にアニメの動きを伝えるコピーのボーン(この場合SpineD)を作るには、
 ・オリジナル側RigidBodyにbhkMalleableConstraintを作ってコピー側のRigidBodyと結び付ける
 ・コピー側のコリジョンの形と大きさは適当?(形式上あればよい程度?)
 ・コピーとオリジナルの間のTau(τ?)はかなり小さめ(0.01)でよさそう
 ・Ragdollの稼動域設定は近隣のボーンのRagdoll(Spine1とか?)と似せて設定

こんな感じでCopyRatationというより、コピー側の動き自体をオリジナル側に伝播させるというか。
何となく混同してた部分は分離出来たので少し試行錯誤してみます。
659名無しさんの野望:2011/05/23(月) 10:15:31.92 ID:F2elUTt8
>>658
「Constraint」て言うとHavokの場合はコリジョン同士の関節構造だけの意味なんで
少しややこしいですよね。
手順的には多分そんなかんじだと思います。作業的にはコピペとか駆使で。

で、いきなり細かな話になりますが、構造自体は出来たとして、恐らく大変なのは
bhkMalleableConstraintならConeのAngleとかTau、Dampingの調整かもです。

既にConstraintで繋がったRigidBodyが二つ(AとB)あるところに新しいRighdBody(C)
を追加して、AのChild、BとConstraint、とすると「A-B」という構造に「A-C-B」を加える
事になります。
CがアニメしてConstraint経由でBが動くと「C→B→A→C」という力の伝わるループが
出来る事に。

なので各指定値によってはループで力がどんどん増幅や加速、発振して全体がその
Constraintに引きずられてあちこち飛び回ったりの凄いことに。

これの回避は理屈の上では、

・アニメの結果を相手のRigidBodyに有効に伝える為にC→BのConeAngleは小さく
・元のA-B間の可動域がアニメに対して狭すぎれば広く、
・アニメのC→Bの力とループでCにフィードバックした力がまたBに伝わる両者の
兼ね合いのちょうどいい所をTauとDampingで調整

みたいになると思います。
サンプルの各値は単にその状況でなら動く、と言うだけで、必ずしも共通な一つの
最適値がある訳ではないと思うので、状況に応じて色々試行が必要に。多分。
660名無しさんの野望:2011/05/23(月) 10:55:46.71 ID:4wWaNgXV
販売するNPCの作成で質問です。

そのNPCのお店の所有権をNPCにすると、セル内全てのものが売られてしまい、
所有権を何も設定しないと、売り物のコンテナ以外にNPC自身の持ち物も売ってしまい、
コンテナのみにすることができません。

なにか注意すべき点はありますでしょうか?
661名無しさんの野望:2011/05/23(月) 18:53:29.40 ID:HdQ6znwb
装備のiconについてです。

装備modのicon指定させお店で販売させます。
ゲーム起動させお店でその装備をみるとiconがない状態です。しかし、
購入してから装備メニューを見るとちゃんとiconが表示されています。
お店側でもiconを表示させるには何が足りないでしょうか?
662名無しさんの野望:2011/05/23(月) 18:58:00.25 ID:frpDSY+a
>>661
Femaleだけアイコン登録したらそうなったと思う。たとえ女性しか装備しなくても
maleも登録(アイコンだけでも)すると表示されると思う。
663名無しさんの野望:2011/05/23(月) 18:59:32.88 ID:R4pUxrpo
>>661
女性用のアイコンしか指定して無いんじゃないのかな
コンテナにある場合男性用のアイコンで所持してるインベントリは性別見てアイコン出してますよ
664名無しさんの野望:2011/05/23(月) 19:07:47.61 ID:R4pUxrpo
男女のmeshとアイコンの法則ですが

・男性用meshとアイコン指定だけの場合
男女とも同じmeshとアイコンを共用する装備になります
・女性用のmeshとアイコンしかない場合
男性は透明装備となりコンテナも男性のインベントリもアイコンが出ません

女性用装備を男性に適用したくないけどアイコンと透明装備はいやだと言う場合
簡単なのはvanillaの装備シートをID新規に変えて女性用meshとアイコン登録すればいいです
これでコンテナにvanillaアイコンが出ますし男性が装備しても透明になりません

逆にお遊びで男女とも女性meshの装備にするなら男性指定だけにすれば男女共女性mesh装備になります
ただし肌指定は変えられないので肌の露出がある装備だと男性はUVマップがおかしくなります
665名無しさんの野望:2011/05/23(月) 19:13:43.40 ID:HdQ6znwb
>>662
ありがとうございます。
勉強になりました。
666名無しさんの野望:2011/05/23(月) 19:20:25.87 ID:HdQ6znwb
>>663
更新してませんでした。レスありがとうございます。
>>664
なるほど・・・そういう使い方もあったんですね!
ありがとうございます。勉強になります。
667名無しさんの野望:2011/05/24(火) 08:19:24.44 ID:mQwMx4xB
>>660
遅レスですが。
注意すべき点、というか、NPCが持ち物を売るのは別に異常ではないです。

Buy/Sell指定をするとまずインベントリ内の物を売るのが基本で、所有権のある
アイテムやコンテナが近くにあればそれも売る、という方がむしろオプションな気が。

またPCのMercantileのスキルが高いとNPCはBuy/Sellの指定品目とは関係無く所有物を
全部売るのですが、それとはまた別な話なんでしょうか。、

とにかく問答無用でインベントリだけは売らない様にする、というのであれば、
システムにはない特殊なオリジナル動作、という事になるので何かそれ専用の処理を
新たに考える必要が。

あとそもそもそのNPCはなんで売ってはいけない物を持っている必要があるのかとか、
その辺ももう少し分かると多分より良い解決策が見つかるかもです。
668名無しさんの野望:2011/05/24(火) 21:04:26.58 ID:jud8LjtW
避難所からコピペ

>>631
その辺のNPCだと正常に動くのですが、相乗り対象をmpcにしてみたら上手く乗ってくれませんでした。

同行中に二人乗りスペル→あさっての方向へ歩いていきワープ、馬の近くで立ちん棒に
待機中に二人乗りスペル→強制終了

ウチのmpcは未だに1.0.1なんで現行バージョンでは問題ないかもしれませんが。
まだ触れるには早い話題かも知れませんが、一応報告まで

スクリプトの中身覗いただけで腰が抜けたのでアドバイスは何も出来ませんが、
進展を応援しております(´・ω・`)
669名無しさんの野望:2011/05/24(火) 21:32:05.96 ID:fIoRWnt2
>>668
テストしていただきありがとうございました。

うーん、ごめんなさい。MODとの互換性テストはしていませんでした。
mpc1.2.3で試してみたところ、まともに動くことは1割以下ですね。
強制終了はなかったですが。AIパッケージの干渉か、スクリプトで
何か操作されてしまってるんだと思います。でも大御所のmpcで動かない
となると、これはかなり問題ですね。

mpc向けのパッチファイルとか作るのはかなり厳しいと思うので、手法を
見直すとか何とかする必要があるかもしれないですね…。

スクリプトの中身は全然大したことないです。他の方に教えていただいた
ことの流用とか、プチ改造ばかりです。おかしなところあったらどんどん
指摘しちゃってくれると嬉しいです。
670名無しさんの野望:2011/05/25(水) 00:02:58.22 ID:jud8LjtW
>>669
このスレで前に開発されてたバイクmodではmpc用パッチが用意されているんだけど、
それを参考にさせてもらうのはどうかな?
671名無しさんの野望:2011/05/25(水) 19:09:07.52 ID:+/mUofxc
>>670
うーん、実は中の人が同じだったりします。

あのパッチは単純にmpc.esmのコンパニオンの馬の設定をバイクの
skeleton.nifに指定し直して馬からバイクにしてるだけなんです。

今回の場合、透明馬に乗らせて、SetRestrained 1で動かなくさせて
PickIdleさせてるので、他からの操作が入ると崩れてしまうみたいです。
mpcの構造を勉強して手法を模索するしかないかもしれないです。
672名無しさんの野望:2011/05/25(水) 20:35:37.27 ID:5dYa0U2I
話ぶった切ってすいません。直接作成に関わる相談じゃないのですが質問させて下さい

nifskopeを使っているのですが、各所で読んだ設定通りにしてもテクスチャがどうしても表示されません
http://shy.jsphr.net/upload/img/ups27028.jpg

oblivion/Data以下に直接置いてあるテクスチャデータは正常に読み込んでくれるのですが、
bsaファイルの中にあるテクスチャを読み込んでくれません。PC新調前は出来たのですが
以前インストールした時と何が違うのか解らず…何か気づいた事があればご教授お願いします。
OSはWindowsXPでnifskopeのバージョンは1.0.22です。
673名無しさんの野望:2011/05/26(木) 12:22:01.18 ID:CMaJyPRd
Gamehourの比較でなんかおかしなことになってしまったので教えてください

Begin Gamemode

if ( 6 <= GameHour <= 18 )
処理A
Massage "現在 %.0f 時なので処理A", GameHour, 2
else
処理B
Massage "現在 %.0f 時なので処理B", GameHour, 2
endif

End

こんな感じで分岐させようとしたら、
何故か時間に関係なく処理Aが実行されつづけてます
確認用にMassageを書いてみたら、表示時間が6-18時以外も処理Aが実行されてる始末
何をチェックしてみたらいいんでしょうか
674名無しさんの野望:2011/05/26(木) 12:27:37.78 ID:nZByIze0
>>if ( 6 <= GameHour <= 18 )

こんな書きかたはじめてみたけど

if ( GetCurrentTime => 6 ) && ( GetCurrentTime <= 18)

じゃないの?
675名無しさんの野望:2011/05/26(木) 12:32:25.59 ID:CMaJyPRd
むむす
上の方にこの書き方でイケル!
とあったので変えてみたんすよね
表記方法変えてみまする
676名無しさんの野望:2011/05/26(木) 12:38:10.45 ID:nZByIze0
いやぁ、ごめん。こっちの知識が足りないだけかも・・・
GetCurrentTime は global variable の GameHour 
と同じだからどっちでもいけるかな。OBSEが進化しすぎて便利になってるのは
いいけどどんどん使いにくく&バグが多くなってる思うのは自分だけか。
677名無しさんの野望:2011/05/26(木) 12:42:37.16 ID:CMaJyPRd
GetCurrentTimeでいけました、感謝!
元々
if ( GameHour=> 6 ) && ( GameHour<= 18)
でダメだったから変えてみたんですよね…
自分も何が何だかよくわからんのです
678名無しさんの野望:2011/05/26(木) 13:05:53.21 ID:5hutoTFx
解決できたのかな?以下は蛇足になっちゃうかもしれないけど
OBSEで if ( 6 <= GameHour <= 18 ) この書き方だと
まず最初に「6 <= GameHour」が評価されて論理演算の結果「0か1」に変換される
次に「(上記結果の0か1) <= 18」という論理演算が評価される
「0 <= 18」でも「1 <= 18」でも常に真なので常に処理Aが実行される
>>674さんのように常にばらばらに論理演算した方が混乱しないと思う
679名無しさんの野望:2011/05/26(木) 13:28:28.30 ID:G37Kc9lE
>>672
新調前の環境ではリテクスチャmodを入れていたとかは無いです?
通常、bsaの内部テクスチャは解凍しないと表示されないと思います

総合テクスチャ入れ替えや、アミュレットを綺麗にするテクスチャ等はいろんなMODに同梱されてたりします
680名無しさんの野望:2011/05/26(木) 14:03:59.56 ID:CMaJyPRd
>>678
なるほど納得
Oblivion限定て訳じゃないんでしょうが
なかなかに試行錯誤です
Flag管理で頭がふっとーしそうだよぅ
681名無しさんの野望:2011/05/26(木) 19:38:24.09 ID:9HgOB9iP
>>679
前のPCでMOD作ってた時にVanillaのリソース一杯抜き出してたので
bsaから参照してる気分になってたのやも…勘違いだったら申し訳ないです。

しかしVanillaのリソース引用する度にいちいちbsa開けるのが手間なんですが
皆さんはどうしてるんでしょか。前はどうやってたんだ俺
ああ、作業環境整えるだけで頭がふっとーしそうだよぅ
682名無しさんの野望:2011/05/26(木) 20:34:29.13 ID:e8QljJvF
横からですけど、自分の場合、bsaは例えばD:\temp\Dataみたいなところにあらかじめ
全部展開してます。
バニラのファイル構成とかnifを調べるのに便利なんで。
683名無しさんの野望:2011/05/26(木) 20:38:01.75 ID:PRIbtfRu
mesh texture sound treeを纏めて解答して置いてるな
bsaのままだとCSから登録できなかったり、scopeで表示されなかったりするし 解凍してると色々便利
684名無しさんの野望:2011/05/26(木) 20:52:59.61 ID:OUOOWFX4
>>681
というか、なぜ誰もコメントしてないのか分かりませんが
NifSkopeのSettings>Renderingの設定はちゃんとやってますよね?
AutoDetectGamePathsやって〜.bsaの類はちゃんと認識されてますか?
685名無しさんの野望:2011/05/26(木) 21:00:12.38 ID:OUOOWFX4
あと
>>678
if ( GameHour=> 6 ) && ( GameHour<= 18)
これは書き方としては
if ( ( GameHour=> 6 ) && ( GameHour<= 18) )
が安全じゃないスかね
686名無しさんの野望:2011/05/26(木) 22:34:28.93 ID:PJoXLrKc
>>684
SSを見ての通り、AutoDetectGamePathsは行ってますよ
それでbsaを読み込んでくれなかったので質問させて頂いたのですが。
ウチでは何故かパスをD:\program files\Bethesda Softworks\Oblivionとしないと
Data直下のテクスチャも読み込んでくれないのでこのSSの後、手動で追加しましたが
687名無しさんの野望:2011/05/26(木) 23:44:19.96 ID:OUOOWFX4
>>686
いや、他のレスがBSAは解凍しておくべきとか話が横道にそれていってるので
まず事実を確認した方がいいかと思いまして。
画像だけだとAutoDetectGamePathsやる前かやった後かは微妙なので。
BSAが読み込まれる状況だと
http://shy.jsphr.net/upload/img/ups27073.jpg
な感じになってる必要があります。
File>ResourceFilesで表示されるResourcesについて
AutoselectionにチェックしたBSAは自動で出てきますか?
出てくる場合はその状態で、出てこない場合は手動でBSAをAddして
改めてAutoDetectGamePathsをしてみて下さい。結果はどんなもんでしょうか?
688名無しさんの野望:2011/05/27(金) 08:37:36.15 ID:t46PZwKz
>>689
遅レスですいません
できました!できましたよ!ホントにありがとうございます!
これ気付いてない人結構いるんじゃないかしら
689名無しさんの野望:2011/05/27(金) 10:54:49.63 ID:+9C73Xmd
えっ!?
690名無しさんの野望:2011/05/27(金) 12:31:50.81 ID:+52k4Yr+
うむ、BSAは解凍必須だと思ってた!
691名無しさんの野望:2011/05/27(金) 21:06:20.26 ID:/diYt17a
>>688
普通に表示出来たようでよかった。
質問に答える側の人は、問いに対する答えが無いことを確信してる場合だけ
横道に案内するくらいにしといた方がいいかもしれないッスね。
692名無しさんの野望:2011/05/27(金) 21:55:08.44 ID:KobPvv++
聞いておいてアレですけど、この質問、全力スレでも聞いて「bsaって中身見れるの?」って
返答が帰ってきたしここで聞いてくれた人もbsaの中身は絶対見れないと
考えてた人も何人かいたみたいなので今回のケースは仕方ないかとw
wikiにNifskopeの項があったら載せておいても良い位の情報だったのでは。
wikiの書き方わからんですけど
693名無しさんの野望:2011/05/27(金) 22:51:07.89 ID:QcRspjKX
>>683
Construction Set Extender使ってればBSAから直接ファイル読み取れるからお勧め
694名無しさんの野望:2011/05/27(金) 23:31:41.81 ID:KobPvv++
>>693
早速入れてみましたがこれは良いですね。
英語力の乏しいせいでbsaを参照できるのとesmが作れるくらいしか分からんかったけど。
起動すると何故かCSが二重に開くんですがこれで正常な動作なんでしょか?
695名無しさんの野望:2011/05/29(日) 09:25:34.34 ID:lVpYS1PS
アニメーションの再生条件について質問です
兄弟(CS日本語ヘルプでの表現)で同じ条件のとき、たとえば
sittingA 条件 GetRondomPercent =< 20
sittingB 条件 GetRondomPercent =< 20
となっていたとき、優先度は上のほうが高いのでしょうか?
それとも、同じ条件の中からランダムで発生なのでしょうか?
696名無しさんの野望:2011/05/29(日) 10:49:16.28 ID:5VGqr1c9
試してないけど上しか出ないんじゃない?
というか試してみれば済むような(ry
697名無しさんの野望:2011/05/29(日) 11:17:52.57 ID:Xt5frc5V
>>695

そのABを再生させる確立が20%なら
最初の親に
GetRondomPercent =< 20
次に子供に
sittingA GetRondomPercent =< 50
sittingB なし

で20%の確立でABどちらかという風になると思います
698名無しさんの野望:2011/05/29(日) 13:49:18.67 ID:p7q3sFoj
魔法用のスクリプトを書いているのですが「プレイヤーが空中にいるとき」という条件はどのように書けばいいんでしょうか
699名無しさんの野望:2011/05/29(日) 13:56:16.52 ID:8Yx+8Crk
>>698
if ( player.IsInAir == 1 )
700名無しさんの野望:2011/05/29(日) 14:32:11.63 ID:p7q3sFoj
>>699
できました。ありがとうございます。
701名無しさんの野望:2011/05/29(日) 17:21:14.01 ID:a6NsRiyZ
半角400文字までしか書き込めないようなので、大変お見苦しいですが複数に
分けさせていただきます。

馬の2人乗りmodを作ろうとしていたものです。かなり時間が空いてしまいましたが…。

>>652
どうも上手くいきません。やったことは
1)同乗者の馬のskeleton.nifのActorParentの下に1つNiNode作成
702701:2011/05/29(日) 17:29:44.36 ID:a6NsRiyZ
2)Blenderにそのskeleton.nifをInport、新Boneの位置を上にずらしたCYCLE_CLAMPのkfを作成
3)同乗者の馬のIdleAnimationにkfを登録、一度だけPickIdleさせる

すると、どこかが間違ってるのか、PickIdleしてkfが再生されると同乗者の
グラフィックが消えてしまいます。そしてしばらくするとシステムがPickIdle
し直すのか、
703701:2011/05/29(日) 17:33:39.57 ID:a6NsRiyZ
同乗者の状態は戻り、新kfの影響がなくなります。

新BoneをActorParentの下に作っているのが間違いでしょうか?? ActorParent
の位置に新Boneを入れて、その子をActorParentにしたら、設定が足りないのか
Mountできなくなりました。

スムーズでない位置移動、mpcへの対応不可含め、問題が多いので作成を諦めよう
と考えています。ご助言頂いたのに誠に申し訳ないです。
704名無しさんの野望:2011/05/29(日) 19:23:03.03 ID:EQNi9cD8
>695
GetRandomPercentは結局、0-99の乱数を発生させるだけの機能なので、
GetRandomPercent =< 20
GetRandomPercent >= 79
のように条件に合致する数値の幅が同じなら確率的には同じです。

条件判定は、sittingA、sittingBそれぞれに乱数発生させているようです。
以前NPCのAIにGetRandomPercentでいくつか条件つけて動かしてみたことがありますが、
コンソールからevpしてみると、条件ごとにGetRandomPercentで乱数発生して判定している
ようでした。コンソールに条件の数だけGetRandomPercentの結果が並んでました。
そうして先に条件に合致したもの(並びで上にあるほう)が動作として選択されていたと
思います。
705名無しさんの野望:2011/05/29(日) 21:19:55.51 ID:lVpYS1PS
>>697,704
ありがとうございます
ということは、同じ幅のGetrandomPercentの条件だけだと、下の方ほど発生する割合が低くなるってことかな?
条件ごとに幅をかえて、同じような割合で出るようにがんばってみます
706名無しさんの野望:2011/05/29(日) 22:08:40.50 ID:Xt5frc5V
>>705
下のほうが確立が低いんじゃなくて上から順に読んで行って
それぞれの乱数を参照してるので
たとえば

親 GetRandomPercent =< 20
  A なし
  B GetRandomPercent =< 90

としたBをいくら0に設定してもAが必ず再生されます。
数を多くするときは


親 GetRandomPercent =< 20
  A GetRandomPercent =< 33
  B GetRandomPercent =< 50
  C なし

これで上からAが33%の確立で発生し、A発生しなかった場合、次のBが50%、
Bが発生しなかった場合Cが100%、という風になります。
707名無しさんの野望:2011/05/29(日) 22:10:13.69 ID:Xt5frc5V
7行目訂正: とした場合Bをいくら高い%に設定してもAが必ず再生されます。
708名無しさんの野望:2011/05/29(日) 22:16:49.00 ID:Xt5frc5V
質問の内容を勘違いしてたかも。
同じコンデション内で同じGetRandomPercentを2つ設定しても上の条件でしか
発生しないと思います。なので最初に親を作ってAとBが再生される確立を指定
しています。
709名無しさんの野望:2011/05/30(月) 00:22:07.16 ID:kxcSCzck
>>706
まさにそれですw
親の条件になったとき、子がすべて同じ割合で出てほしかったので
A =< 20 B =< 25 C =< 33 D =< 50 E なし でがんばってたところです
同じ結論が出たことで確信がもてました
ありがとうございます
710名無しさんの野望:2011/05/30(月) 01:15:40.05 ID:jacP0VbA
転載

随分前になってしまうんですが、何スレか前に
コンパニオンも使える即死武器作ってた人、まだ見てるでしょうか?

今ふと思いついたんですが、武器を入手した時にその武器用のFacitionに
Playerを加入させる様にして、そのFactionに攻撃がヒットした時には
即死が発動しない様にすればいけるんじゃないでしょか。
711名無しさんの野望:2011/05/30(月) 01:58:51.45 ID:ZUFMG1NB
OBSE経由でCSを起動させたいです。
wikiをみながらプロパティを開いて変更やバージョンの確認も
しました。obse20,CSは1.2.0.404です。

どうしても起動できなかったので教えて下さい。
712名無しさんの野望:2011/05/30(月) 02:18:19.63 ID:kOQEu0Ed
>>711
1、「obse_loader.exe」を右クリックして「ショートカットの作成」をする。
2、出来たショートカットを右クリックして「プロパティ」を表示する。
3、表示されたプロパティの「リンク先」の項目の中身を、
  →「 "〜Bethesda Softworks\Oblivion\obse_loader.exe" -editor」というようにスペースを空けて「-editor」を付ける。
713名無しさんの野望:2011/05/30(月) 02:21:12.29 ID:kOQEu0Ed
忍法帳に長文とめられた。つづき
>>711
この状態で「obse_loader.exeのショートカット」を起動すればobse本体とCSが同じフォルダにあるかぎりobse経由でCSを起動できる。
この名前だとゲーム起動用と間違えたりすると思うので、「TESCS_obse_loader」とでも改名すれば完璧。
714名無しさんの野望:2011/05/30(月) 02:39:48.36 ID:ZUFMG1NB
>>712
起動した直後に動作が停止して落ちてしまいます。

たぶん書き換えが上手くいってないのかなと・・・
715名無しさんの野望:2011/05/30(月) 02:46:20.49 ID:kOQEu0Ed
>>714
うーむ、CSは普通に起動するかな?ちょっと確かめてくれ。
716名無しさんの野望:2011/05/30(月) 02:53:07.34 ID:ZUFMG1NB
>>715
CSは普通に起動できます。

717名無しさんの野望:2011/05/30(月) 02:56:22.91 ID:kOQEu0Ed
>>716
あんまりここの書き込みが進むとまずいので、全力スレにでも移動しよう。
CS拡張のobseプラグインとか入ってる?
718名無しさんの野望:2011/05/30(月) 03:04:16.15 ID:ZUFMG1NB
>>717
わかりました。
次から全力スレに行きます

う、入れてないです。入れたほうがいいでしょうか?
719名無しさんの野望:2011/05/31(火) 18:57:43.25 ID:0k3GKc8z
>>710
まだ見てます、というかやや定期ヲチして勉強してます
レスありがとうございます
転載おつかれさまです

OnEquipで入隊、OnUnequipで除隊で if This==そのFaction で Return でいけそうですね。

ただ、反射されても反撃効果が無視になるだけで、普通のSpellのような
「吸収や反射を無視」っていうのができないのですよね

Reflect Spell 100%になるとエンチャ自体が無効されてしまう…のかな?

とにかく、普通Spellの吸収反射無視の構造がわからないのですよね…
Activator案も頂きましたけど、これは強引にエンチャ効果をSpellにして発動させたい構造なので、
結局はSpellの無視構造が謎のままという…

今はもう、反射されても死なないで妥協してるので、
これ以上は特に頭使おうと思ってませんが…w

でも、レスありがとうございました。
720710:2011/05/31(火) 22:29:07.03 ID:mx2mhLAb
あぁ、反射を回避したいんじゃなくて反射無視で効果を与えたいんでしたっけ。
ちょっと記憶違いをしてたみたいです。お役に立てず申し訳ないorz

721名無しさんの野望:2011/06/01(水) 16:42:52.78 ID:ZrRkN4yW
エスパーな質問でごめんなさい
テクスチャにない模様が出てしまうのですがこういう症状ってどういう原因が考えられますか?
http://shy.jsphr.net/upload/img/ups27239.jpg
722名無しさんの野望:2011/06/01(水) 17:41:13.94 ID:XfMPYY92
>>721
展開したUVが重なってる。たとえば左右対称装備なんかで片方だけ描かれたテクスチャに
左右重ねて展開した場合とか。
723名無しさんの野望:2011/06/01(水) 20:33:30.48 ID:ZrRkN4yW
>>722
回答ありがとうございます
ぴったりそれでした
UVマップ節約しようとしてやったらそんな罠が…
もしよろしければもう一つ質問を
Vaniraとかでたまに重なってるのがあったような気がするのですが
正常に表示されるのとされないのってどう違うんでしょうか?
724名無しさんの野望:2011/06/01(水) 22:46:38.30 ID:XfMPYY92
>>723
なぜか一旦Blenderにインポートしてからエクスポートした装備はへんな反射をするようになりますねぇ
(NifのBatchで治る&Nif 最適化でなおるヤツとは違います)。平らなメッシュにはないですが特に曲線が
多いメッシュによくみられるようです。
根本的な解決ではないですがマシになる方法が。これをするとメッシュに出来る不自然な黒い影もなくな
ります。

各町のガードの鎧を例に

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

メッシュにあるエッジの部分に沿って分割し、再合成、エッジの部分の頂点を共有させないようにします。画像
の赤い線が分割ラインで頂点が2つある部分です。もともとそうなっている部分もありますのでそこはしなくてい
いです。
また肩鎧などの丸い形のものなどは縦に半分ずつメッシュを分け、平面に近づけてやります。分割した部分に
は線が出来ますが、変な反射はこれでほぼなくなります。金属同士の溶接した線、布の縫い合わせた部分に
この線が来るように分割するのがコツです。
725名無しさんの野望:2011/06/02(木) 00:05:05.66 ID:tYicIui5
>>724
おぉ画像まで
ありがとうございますやってみます
726名無しさんの野望:2011/06/05(日) 17:52:20.82 ID:O42YU6Qk
1つ質問です。

NPCのTOPICで「体力を回復する」というTOPICを作成し、そのTOPICのScript欄に
「(NPCのリファレンス名)+cast spell名 player」
としても回復してくれません。
spellは自分で作成し、自己回復魔法を他者回復魔法に対象のみいじりました。

これでは何が不十分なのでしょうか?
お分かりの方いらっしゃいましたらご指導ください。
727名無しさんの野望:2011/06/05(日) 20:08:50.33 ID:38L8/dbF
ちょっとエスパー気味になっちゃうケド

経験上、CastってSelfじゃないTouchとかTargetタイプのSpellを指定すると
ヘンな動きをしたり全く動かなかったりってコトがよくあった気がする。

なのでとりあえずSpellをSelfにしたら動くのか?というのをまず確認して、
動いたらPlayerのHealthを回復しつつエフェクトもペロロンと表示させ
ちゃうようなScriptを自分で書いてSpellに貼り付けるのが、
CastでTargetタイプのSpellを意地でも動かそうと格闘するよか建設的な気が。

全然聞きたいコトと関係なかったらゴメンナサイ(´ω`)
728名無しさんの野望:2011/06/05(日) 20:17:46.03 ID:8/jsHbOg
Result Scriptって挙動がGameModeのQuestScriptと違うから、
変数の代入とか、オブジェクトをdisableしたりする使い方の方がいいんじゃないかな。
実現の手法でというと、
Result Scriptでは

| set CheckQuest.Cast to 1

だけにしておいて
別に走らせているQuestScriptでその状態を監視し、

| if ( CheckQuest.Cast )
|  set CheckQuest.Cast to 0
|  npcRef.Cast SpellName player
| endif

って書いておくとか。こうすれば会話から抜けた後、
次にQuestScriptが実行された時に一度だけSpellNameをPlayerに対してCastしてくれると思う。
729名無しさんの野望:2011/06/05(日) 22:48:46.35 ID:dQHTbyB0
nifskopeで装備の切り貼りなんですが
最初?「Bip〜」をコピーするところでとまってます。
copy bleach,paste bleachすると点がつくだけで線がでない、(何を言っているのか・・・)
点と線が出てもあさっての方を向いてしまい作業が進まないです。
詳しい方よろしくお願いします。
730名無しさんの野望:2011/06/06(月) 12:13:29.51 ID:OGXB7yle
MODアイテムのNPC販売の手順に関しての質問なんですが。
「NPCにMOD装備を販売させる」位まではブログ等参考に出来たのですが
Franの追加武器防具だけを一定量レベリングを反映した内容で販売させる
と言うのは複雑なのでしょうか?
必要なespや項目を掴みきれていないのも原因だと思うのですが。

テストプレイで拾った剣と同じ物が見つから無くて
LVが27になりました、
731名無しさんの野望:2011/06/06(月) 14:45:26.06 ID:nlH/X5OH
>>730
Leveled Item を自分で新たに作るか、Franのものを利用してそのLeveled Itemを
コンテナに入れて店に配置。
732名無しさんの野望:2011/06/06(月) 19:10:01.34 ID:OGXB7yle
>>731

それだけで良かったんですね。
ありがとうございます、頑張ってみます。
733名無しさんの野望:2011/06/07(火) 02:01:04.39 ID:PHX32d69
スクリプトについて質問です。

ある特定の装備を身につけている時、
プレイヤーを不死(essential)にしたいのですが、
プレイヤーを不死にするのってどうスクリプトを
書けば良いのでしょうか?
734534:2011/06/07(火) 11:47:50.08 ID:HIqbMTLr
>>733
装備したらessentialにする、と言うのはできる。
しかしプレイヤーにessential付けてもバグるだけなんで無駄じゃなかったかな。
735534:2011/06/07(火) 12:40:15.27 ID:HIqbMTLr
一応やり方は書いておこう。
アイテムにscriptでonEquipを取るか、questを使って装備を監視するか、その2つの併用か。

onEquipだけでは欠点があって、OBSEの命令で装備を着替えた場合に動かない。
たとえばOBSEの機能を使うホットキーMODを使って着替えるとおかしくなる。
よくあるのがOOOの追加クエ装備をホットキーMODで着替えると(致命的ではないものの)バグる。

装備のチェック、今何を装備しているかってのはOBSEで調べられる。なんて命令だかは忘れた…。
Essentialの付け外しはOBSEの命令、SetRefEssentialで可能。
736名無しさんの野望:2011/06/07(火) 13:42:34.48 ID:vT3KFMs8
えーと本スレに誤爆してしまいましたが当方MOD弄りは全くの初心者でして
場違いな質問でしたら申し訳ありません。多分凄く初歩の質問だと思うのですが…

HTSCLightPlus_v3.11にはレシピ追加機能があってスクリプトのテキストが同梱されていますが
これはCSで実際のMOD内のどこから見たり導入したりできるんでしょう。
メッシュやテクスチャーはできないから既存アイテムの流用させてもらうとして(あくまで個人使用)
とりあえずcobl入れると売っている料理やパン類を作れるようにしてみたいなというのが希望です。

小麦粉+ビール(イーストの代わり)>「平焼きパンの生地」
(とりあえず普通のパン生地コピー・リネームしてみた)
>焼く>レヤウィンの平焼きパン

肉類+安いワイン+玉葱 or にんにく>混ぜる>安いマリネ

肉類+タミカヴィンテージ415 or スリリーヴィンテージ415+玉葱 or にんにく>混ぜる>良いマリネ

みたいにしたいのですが。
同梱のスクリプトのテキストを見ると9番まで別個のスクリプトがあるようなので
(1番は和食がマージされています)
手順ごとに記載された内容のアイテムIDを希望するものに置き換えればいいのでしょうが…
新たにcoblやHTSCLightをマスターにしスクリプトをインポートしたたespを作成して
HTSCLightPlusの下に配置すればいいんでしょうか。
737733:2011/06/07(火) 13:57:43.65 ID:u8WKTNbR
>>735

ありがとうございます!
試しにkillってみたら無事気絶してくれました。

・・・が、おっしゃる通りバグってカメラがずれてしまいました。
確かにこれでは使い物になりませんね・・・

う〜ん・・・変わりに無敵モード(tgm)にするには
SstRefEssentialの部分をどう書き換えれば良いのでしょうか?
738名無しさんの野望:2011/06/07(火) 14:51:06.12 ID:0uI8pHNo
>>736
CS上ではRefを、つまるところFormID用の名前で品物を指定しています。
和食用のscriptテキストで、zzHTSCLFnCookUser1を例にしますと

if itemCur == zzHTSCLMiscIngCBNikuyasai
set itemNew to zzHTSCLIngCBYasaiitame
set timeEnd to 0.3
set zzHTSCLQuest.CookItemNew to itemNew
endif

この部分がレシピです。
CookUser1なので、このscriptは火で焼くレシピです。
zzHTSCLMiscIngCBNikuyasaiがコンロに置くアイテムです、
if itemCur == zzHTSCLMiscIngCBNikuyasai
なので、itemCurがzzHTSCLMiscIngCBNikuyasaiだったならば、てな意味です。
この場合は食べられない食材ということでMiscアイテムがコンロに置くアイテムに指定されています
739名無しさんの野望:2011/06/07(火) 14:54:11.78 ID:0uI8pHNo
>>738の続き
続いて、zzHTSCLIngCBYasaiitameが完成品です。
set itemNew to zzHTSCLIngCBYasaiitame
とありますので、itemNewにzzHTSCLIngCBYasaiitameをセットする、てな意味です。

set timeEnd to 0.3
上記は焼けるのに必要な時間です。増やすか減らすか、その辺はレシピ次第です

set zzHTSCLQuest.CookItemNew to itemNew
これはQuestScriptに完成品のデータをセットして処理を任せるて処理なので、触らないでください。

なので、焼くだけなら改変箇所は2か所でおkという事になります。
740名無しさんの野望:2011/06/07(火) 14:56:39.80 ID:0uI8pHNo
>>739の続き
基本的に、このif構文の塊を増やしていけば
それだけレシピが追加できる事になります。

3種を調理ボウルで混ぜる時などは、ちょっと条件が増えますが、
既存のものをコピペで改変するだけなので、基本が分かれば特に迷う事はないかと思います。
741名無しさんの野望:2011/06/07(火) 14:58:58.77 ID:0uI8pHNo
>>740の続き

こうして作ったレシピと食材を、実際にHTSClightの食べる対象に設定しているのが
zzHTSCLFnInitCalUser1Eatのscriptです。

set target to zzHTSCLContainerCalUser1EatRef

target.addItem zzHTSCLIngCBBoiledRice 120
target.addItem zzHTSCLIngCBBoiledNikudon 180
target.addItem zzHTSCLIngCBNikunabe 80
target.addItem zzHTSCLIngCBBoiledkanidon 150
target.addItem zzHTSCLIngCBYasaiitame 70

とありますが、1行目は管理コンテナを参照している部分なので弄らずに
target.addItem zzHTSCLIngCBBoiledRice 120
とかをコピペで増やして改変していくことになります。
742名無しさんの野望:2011/06/07(火) 15:03:19.36 ID:vT3KFMs8
>>738->>741
ありがとうございます。スクリプトを操作するのは初めてなのですが
ご説明をよく読み込んで実験してみます。
これから所用で出かけますのでとりあえず御指南をコピペで保存します。
時間に余裕のあるとき少しずつやってみますので、成功したら改めてご挨拶に上がりますね。
743名無しさんの野望:2011/06/07(火) 15:06:18.58 ID:0uI8pHNo
>>741の続き
target.addItem zzHTSCLIngCBBoiledRice 120
を例にすると、zzHTSCLIngCBBoiledRiceがHTSClightで食べる対象になるアイテムです。
Miscを食べられるのは妙なので、Ingredientを指定するべきだと思います。

数字はカロリーに当たります。
この数字を変えることで、その食材がどの程度お腹がふくれるかが指定できます。

作成するespは新規に、用意されたナンバーのscriptを上書き改変していくことになります。
どのナンバーのコンテナを使うかはユーザーに任せられているので、その辺は適当に。
公開配布を考えているのなら、使用したナンバーを告知した方が良いと思います。

espのロード順は、HTSClight自体結構下の方でロードされているので
その辺に置けばいいんじゃないでしょうか。
scriptが初めてなら、一つscriptを作る度にコンパイルしたり、
マスター参照が外れないようにRestoreESPなどのToolを使ったり
急がずやってみると良いと思います。
744名無しさんの野望:2011/06/07(火) 15:22:02.14 ID:vT3KFMs8
あわわわ説明途中だった…すみません。追加部分もメモしました、
それでは行って参ります。
745名無しさんの野望:2011/06/07(火) 20:11:34.20 ID:vw0nwaSg
>>737
TGM自体の切り替えはOBSEを使ってcon_TGMコマンドで。
基本はココ
http://obse.silverlock.org/obse_command_doc.html
とココ
http://cs.elderscrolls.com/constwiki/index.php/Con_TGM
みてあとは試行錯誤で。
746名無しさんの野望:2011/06/08(水) 03:23:45.35 ID:ZAuvNvvo
fallout3の三人称カメラ(三人称側を変更)を再現できたものの、座ったときの座標がずれてしまう…
原因はskeletonの中心点がずれたからなのですがこれを中心においてしまうとデフォの
真後ろからのカメラになるので、座る位置を調整したいのですがどうすればいいでしょうか?
747名無しさんの野望:2011/06/09(木) 23:38:28.66 ID:DjFnMQ78
エンチャントのScriptMagicについて質問です
各Mobに一度だけ発動するWeaponのエンチャント魔法を仕込もうと思ったのですが
色んなものをキーにしてみたんですけど全て突破してしまいます
こんな感じです
Begin ScriptEffectStart
if GetInFaction hogehogeFaction == 0
処理A
SetFactionRank hogehogeFaction, 0
endif
End

2撃目はFactionで引っかかるから処理Aがされないかと思いきや
普通に処理Aが走ります
AddItemでToken突っ込んでGetItemCountで数えても
QuestScriptの変数参照させても処理Aが走ります

if分岐以外は正常に動きます
エンチャントは何か特殊な仕様があったりするのでしょうか
748名無しさんの野望:2011/06/09(木) 23:47:16.52 ID:swoYyGMI
SetFactionRank hogehogeFaction, 0

SetFactionRank hogehogeFaction, 1

の間違いでなくて?
749名無しさんの野望:2011/06/09(木) 23:51:35.43 ID:DjFnMQ78
0はダメなんでしたっけ? CShelpの表記コピっているのですが
750名無しさんの野望:2011/06/10(金) 00:01:12.72 ID:+V1AJoN0
いや、if GetInFaction hogehogeFaction == 0の行でFactionをフラグとして使ってるんだったら、
Rank指定は1にしないと2度目以降も処理Aが走り続けるよ

0を指定するとFactionから脱退させる、という意味なので。
751名無しさんの野望:2011/06/10(金) 00:07:06.64 ID:swoYyGMI
む、ごめん、確認したら脱退は-1だった
そこは問題なさそうだ

そのスクリプト実行時のGetSelfがちゃんと対象のMobになってるかどうか確認してみたらどう?
752名無しさんの野望:2011/06/10(金) 00:13:02.56 ID:c06eGbzm
確認といいますか、if分岐以外は正常なのでよくわからないんですよね
pmeさせても対象のMob上で動きますし、何故かifの条件だけ反映されないのか
遅延的なモノなのかなぁ…

CSサイトみたらSetFactionRankはオブジェクトbase値自体を加入させるてありますね
コピーが出現するMobの分岐には不向きぽいすねぇ
753名無しさんの野望:2011/06/10(金) 00:25:33.50 ID:+V1AJoN0
多分どっかに単純ミスがある可能性が一番高いと思うよ
例えば処理Aで、暗黙的にreturnするコマンドを使ってて、SetFactionRank〜の行が走ってないとか
printc埋め込んだりトークン数なりfactionなりを随時ウォッチしてデバッグしてみ
754名無しさんの野望:2011/06/10(金) 00:28:10.47 ID:c06eGbzm
了解す
もう少し地道に検証してみます
755名無しさんの野望:2011/06/10(金) 01:36:59.59 ID:C8OOJJQ2
武器のコリジョンについて質問です
新規にコリジョンを作る方法とバニラの武器のコリジョンを使う方法とではなにか違いがあるのでしょうか?
756名無しさんの野望:2011/06/10(金) 13:25:07.83 ID:5P6fN2H7
>>755
すでにある武器のコリジョンを流用すると、細かい設定を考えなくて楽
新規で作る方が細かいコリジョンデザインにできるけど、やたら跳ねたり
半分埋まったりと、結構てこずる事が多かった

初めて作るんだったら、なるべく流用した方がトラブル少なくていいかも
きちんと機能を理解して設定できるなら新規の方がいいけどね
757名無しさんの野望:2011/06/10(金) 16:48:16.31 ID:C8OOJJQ2
>>756
ご丁寧に回答ありがとうございました
とりあえず慣れるまでバニラのコリジョンを使ってみることにします
758名無しさんの野望:2011/06/10(金) 16:59:10.43 ID:twUrVVjP
iniのCameraPath.nifってどこにある?
759名無しさんの野望:2011/06/11(土) 22:56:42.51 ID:B4a4lnz9
質問です、OBSEのユーザ定義関数にて、複数の戻り値を受け取る書式を教えてください

scn hogehogefnSC

ref ahoge
ref bhoge
short pl

begin function {ahoge, bhoge}
set pl to player.getlevel
if pl < 10
set ahoge to +++
set bhoge to ///
elseif pl >= 10 && pl < 20
set ahoge to ---
set bhoge to ***
endif

SetFunctionValue
return
end

こんな感じで書いて、SetFunctionValueの後ろの書き方と
受け取り方がよくわかりません
受け取り側は
ref choge
ref dhoge
let choge := call hogehogefnSC ahoge
let dhoge := call hogehogefnSC bhoge
こんな感じかなぁと思うのですが、基礎すぎるのかググってもOblivionの例がなかなか見つかりません
お願いします
760534:2011/06/11(土) 23:53:59.17 ID:0SUs75ct
配列で戻ってくるならともかく、複数の戻り値を受け取るなんてそんな言語この世にあるかね。

何をしたい関数なのかよくわからないので関数分けろとも言えないし
配列を返すにしてもOBSEで返り値として配列が使えるかどうか知らないのではっきり返答できない。
やはり関数の中身にもよるけど、汚い方法だけど一時的にグローバル変数に結果を入れるとかそういうのじゃダメかい。
761名無しさんの野望:2011/06/11(土) 23:56:28.49 ID:0SUs75ct
なんかずっと前から謎のコテハンwが付く…。
気にしないでください。
762名無しさんの野望:2011/06/12(日) 00:00:57.13 ID:B4a4lnz9
あー

あーそうか…ユーザー定義関数なのか
レス見て使い方が思い至りました
そもそも使えないかな?ぐらいで思い立ったぐらいなので書き方はどうにでもなる状況です
レスありがとうございました
763名無しさんの野望:2011/06/12(日) 00:29:54.38 ID:bdLNBBZJ
ちょっと試してみたけど、配列は普通に返ってくるね
function側でar_constructして呼び出し側で受け取ると、function側の配列クリアはされないみたい
(正しくは配列へのリファレンスがコピーされて、自動クリアが働かない、って事だと思うけど)
特に理由が無いなら、中身使った後は消しておけば安心かも

scn func
array_var arr
begin function {a}
 let arr := ar_construct array
 let arr[0] := a
 let arr[1] := a*a

 setfunctionvalue arr
 return
end

呼び出し側
array_var resultArray
begin
 let resultArray := call func 10
 〜
 let resultArray := ar_null
end

>>761
専ブラの「コテ記憶」とか押したんじゃね?
764名無しさんの野望:2011/06/12(日) 00:45:58.43 ID:bdLNBBZJ
追記。ついでにCとかでよくある配列の参照渡しも試してみたけど問題ないみたい
765名無しさんの野望:2011/06/12(日) 01:22:25.31 ID:m0rbU+bS
>>764
http://oblivion.z49.org/logs/ero/1271940746.html.gz#R650
過去に↑という話があってLoversで利用されてたり
766名無しさんの野望:2011/06/12(日) 01:26:19.87 ID:Qk+wzg0y
>>760
スレ違いだけどLuaは複数の値を返せるよ。
ライトウェイトランゲージだと結構あるんじゃないかな?
767名無しさんの野望:2011/06/12(日) 01:38:52.24 ID:tKSp2bJb
Scriptの分割についてお聞きしたいのですが
長くなってきたScriptを分割する際、どのように分けるのがスマートなんでしょうか
QuestScriptだと走る間隔的に使いにくいので、ObjectScriptを必要な時だけ呼びたい、みたいなことなんですが
てきとーなオブジェクトにObjectScriptを張り付けてDisable状態でDummyCellからMovetoとか考えたのですが
もっと良い方法があると思うのです
768名無しさんの野望:2011/06/12(日) 03:26:17.09 ID:WwAHS4YX
>>766
おお、面白い言語もあるんだなぁ…。
それとついでに引数でフラグも足せば>>763のようなのは実現できると思いついた。

>>767
自分は関数を使ったことがないけど、HST lightでは関数を作って分割していたような。
当然OBSE前提になっちゃうけど。
script本体で関数を順次実行。関数はそれぞれ別のscriptに書き分ける。
769名無しさんの野望:2011/06/12(日) 08:54:48.78 ID:fzgj7Dyd
>>767
自分の場合スマートかは別としてScriptはこんな感じで分けてます。OBSE前提。
・Questは変数宣言用に割り切って動作はほとんど書かない。
・非Playableなアイテム(指輪とか)1つだけ作ってこれにmain関数相当をObjectScriptで書く。
 mainは流れが分かりやすいように(あと、不要時にReturnですぐ終えられるように)ユーザー定義関数呼び出し他用して短く。
・mainから呼ばれるものはユーザ定義関数で書いてScriptのみ存在する状態に。
・ごく限られた契機で動くものは適したイベントハンドラがある場合それで表現。
・スペルなどをトリガにするものもスペルにはあまり多くを書かずにQuestの変数にフラグを渡すようにして
 mainがQuest変数を監視して実施するような感じ
770名無しさんの野望:2011/06/12(日) 09:39:57.79 ID:R7t73yVk
>>701
激遅すぎてもう異次元みたいなレスですが。
乗員位置を操作するNodeはActorParentの親側に挿入を。
771名無しさんの野望:2011/06/12(日) 09:47:00.05 ID:R7t73yVk
>>746
もしここの過去スレPart6/227の方法だとすると、確かに構造的に三人称座り/乗馬時に
位置がズレる問題があるのですが。その事ですかね。

だとするとその方法自体が実績のある手法ではなくネタの話なんで、実用になるかは
まだ謎ですよ。
座り位置はとりあえずSetPosでなんとかなりそうな気もしますが。
そういう話なんでしょうか。
772名無しさんの野望:2011/06/12(日) 10:26:01.52 ID:tKSp2bJb
>>768
>>769
なるほどーHTSClightはCallしてクエスト変数経由で
処理結果を取得するのを連打してるんですね
だからCallだらけなのか
ありがとうございました
773名無しさんの野望:2011/06/12(日) 16:49:23.28 ID:vkRBlSji
>>771
SetPosという方法があったんですね
座る位置や乗馬位置をBlenderとNifScopeで力技で
動かしてました
位置こそはどうにかなったものの乗馬のモーションが再生されないのが
今の悩みです
skeleton.nifのratationを少しでも動かすと駄目なようです

三人称にするためにやったことは_maleのskeleton.nifのSceneRootを
trans x,-15
rota R,-0.1
としただけです
774名無しさんの野望:2011/06/12(日) 17:43:49.98 ID:R7t73yVk
>>773
SceneRoot位置の直接変更ではなく、Bip01とNonAccumの間にNodeを挿入して
そのTrans/Rotを変更すれば馬の乗り/降りアニメは再生されると思います。
775名無しさんの野望:2011/06/12(日) 17:50:41.51 ID:vkRBlSji
>>774
それじゃあ肩越しじゃなくなりませんか?
776名無しさんの野望:2011/06/12(日) 17:59:14.28 ID:R7t73yVk
>>775
実際にやってみて肩越し視線にならなかったんですか?
777名無しさんの野望:2011/06/12(日) 18:12:50.61 ID:vkRBlSji
>>776
それもすでに試した結果ならなかったと記憶しています
実際にもう一度試しましたが駄目でした
あなたの環境だと肩越しになっているのでしょうか?
778名無しさんの野望:2011/06/12(日) 18:20:39.17 ID:R7t73yVk
>>777
これのskeleton.nifの「Dummy0」てNodeのTrans/Rotをその値に直接書き換えても
ダメですか?

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

うちでは肩越しになってます。
779名無しさんの野望:2011/06/12(日) 18:38:13.59 ID:vkRBlSji
>>778
すいません・・・なりました
試行錯誤して元ファイルを弄りすぎてたのが悪かったようでした
ありがとうございました
780名無しさんの野望:2011/06/12(日) 19:01:58.49 ID:R7t73yVk
>>779
そのSkeletonは別にこれが正解、という訳では無くて単に馬の乗り/降りアニメが動く例
というだけです。
座り/乗馬位置問題はやっぱそのまんまです。

この方法で行くのなら、座り位置はSetPosかkf類を変更したり、乗馬位置は馬の
ActorParentを同様なNode挿入で位置を逆に補正したりの手当てが多分必要になると
思います。
781名無しさんの野望:2011/06/12(日) 22:22:06.05 ID:5KMMWMUU
商人の商品の一覧って取得できませんか?
商人にgetInventoryObjectすると商人自身の持ち物が取得されてしまい
商人にGetMerchantContainerして取得したコンテナにgetInventoryObjectすると
Merchant Containerで選択されているコンテナの分しか取得できません

MODで追加される売り物も含めて全商品の一覧を取得する方法は無いのでしょうか
782名無しさんの野望:2011/06/12(日) 23:05:01.65 ID:bdLNBBZJ
>>781
Cell内のContainerのOwnerを調べれば良いんじゃないのかな
あと、「Ownerが商人のContainer」がParentになってるContainerも売り物になるはずだから、
そっちも調べないとダメかも
783名無しさんの野望:2011/06/13(月) 16:51:43.86 ID:zf6/eVuK
すみませんどうしてもわからないので質問させてください
CSで配置した馬とNPCが違う場所にリスポンしてしまいます
地形も弄っていて設置した場所がバニラより低くなっています
もしかしてバニラより低い位置に設置すると
リスポンポイントが変になったりするんでしょうか?

espファイル
パス a
http://shy.jsphr.net/upload/img/ups27696.zip
784名無しさんの野望:2011/06/13(月) 21:19:26.23 ID:zf6/eVuK
うーん・・・新規でもダメだ
785名無しさんの野望:2011/06/14(火) 18:59:54.43 ID:QtIAQrBM
初めてのNPC作成に挑戦しています。
一日の行動AIは試行錯誤の末問題なく動作するところまでこぎ着けたのですが、
会話パターンを仕込むところで初心者にあるまじき欲が出ました。
好感度の変化で対応が変わっていくツンデレ的キャラを作りたいのですが、
元キャラの魅力が高かったり説得ゲームで上げてしまえると面白くないと気づきました。
編集画面で説得不能にしておけますが、その場合
「最初の会話時にキャラのPCに対する好感度を強制的に低く設定し、
その後の会話によって好感度が加わる/減る」
といった細工をするのは難しいでしょうか。
786名無しさんの野望:2011/06/14(火) 19:22:21.84 ID:0FHkK8WH
>>785
簡単
787名無しさんの野望:2011/06/14(火) 20:20:21.78 ID:QtIAQrBM
ありがとうございます。
再度調べたところModDispositionというのが利用できそうですが、
「現在の数値から幾つ増減」ということのようなので二度目以後の会話内容による増減向きのようですね。
「最初の会話時にキャラのPCに対する好感度を強制的に低く設定」の際
PCによって異なるであろう最初の好感度から一律で(50でも80でもマイナス40とか)引くと
場合によっては以後の会話が成立しなくなる可能性がありそうです。
元の数値が幾つであれ30とか40とか希望の数値に設定する手段がありましたら
お教え頂けると幸いです。
788名無しさんの野望:2011/06/14(火) 21:13:40.41 ID:0FHkK8WH
>>787
好感度を30にしたいなら
クエスト変数とかグローバル変数作って
set クエスト名.変数(もしくはグローバル変数) to 30 - GetDisposition Player
Moddisposition Player クエスト名.変数(もしくはグローバル変数)
でどうでしょうか
789名無しさんの野望:2011/06/14(火) 21:28:43.12 ID:QtIAQrBM
クエスト変数ですか、また学ぶべき事ができてしまいました。頑張ります。
CSHELP日本語訳でMOD〜のコマンドを見ていたら
「ModActorValue」
(Statの基本値に影響することなしに、指定された値、そのStatを変更)
「ForceActorValue」
(指定された値だけ現在のStatを変更)
というのがありましたがこれは好感度(友好度の方が正しいのかな)には使えませんか?
790名無しさんの野望:2011/06/14(火) 21:39:49.76 ID:0FHkK8WH
>>789
それはわかんない
予想だけど、好感度(友好度?)はキャラクターのステータスではないから違うんじゃないかな
791名無しさんの野望:2011/06/14(火) 21:43:01.93 ID:QtIAQrBM
ありがとうございます。
どうやら初挑戦としてはハードルの高い事をやろうとしているようですが、
一旦試してみてダメだったら変数の勉強してみます。
792名無しさんの野望:2011/06/14(火) 22:59:46.69 ID:/F0Y8kbv
>>791
試してないので間違ってる可能性がありますが。

クエスト変数はクエストが所有する変数で、オブジェクトスクリプトの変数と違い
「クエスト名.変数名」とすることでどこからでもアクセスできます。一時置き場
とか中継場所として利用することが可能です。

クエストに添付したクエストスクリプトの中で変数を宣言して、アクセスする際は
「クエスト名.変数名」とすればOKです。クエストはダミーでも何でも問題ないです。

クエスト名がDummyQuestとして友好度を50なら、トピックのResult Scriptで
793792:2011/06/14(火) 23:04:16.98 ID:/F0Y8kbv
(続き)
set DummyQuest.tmpint to 50 - (対象のアクター.GetDisposition Player)
対象のアクター.ModDisposition DummyQuest.tmpint

とやればいけると思うのですが、多分2行目のModDispositionにクエスト変数を
使うことができない気がします。回避するにはクエスト変数でなくて普通の変数
を使えばいいのですが、あいにくResult Script内では変数を宣言できず使えない
ためできません。何か一工夫が必要ですね。

あと「対象のアクター」の指定の仕方も、変数にリファレンスを保存して指定する
必要があると思います。

一度慣れてしまえば自分なりに工夫できると思うのでまずは試行錯誤です。
794名無しさんの野望:2011/06/16(木) 01:11:41.80 ID:byqr96Ap
すみませんスイッチでセルの水位を変更したいのですがそういう事って出来ますか?
set Water Heightとか無いですよね…
795名無しさんの野望:2011/06/16(木) 01:14:06.17 ID:HZKgX2+S
>>780
先日は回答をいただきありがとうございました。
>>778のファイルのkfについてですがpickidleで変更するという手法でしょうか?
796名無しさんの野望:2011/06/16(木) 01:39:51.11 ID:wR5LQ57H
>>794
水没トラップなら部屋を動かして再現してるMODがあったような気がしますが、水面座標を動的に変化させるのは出来ないんじゃないかな
797名無しさんの野望:2011/06/16(木) 03:00:23.86 ID:byqr96Ap
>>796
ほむ無理やりやるしか無いか…
ありがとうございます色々検討してみます
798名無しさんの野望:2011/06/16(木) 04:00:12.90 ID:5m8kilug
>>783>>784
ちょっとわからなかったのでスルーしてましたが、ちょっと書いてみます。
esp拝見しました。Path Gridがそのままになってましたのでこれを正しい高さに変えればいけるかもしれません。
799名無しさんの野望:2011/06/16(木) 09:17:11.26 ID:iWuFkxM/
egmについて質問なんですが
髪の毛などはHeadメッシュとおなじnif構成でそのままwiki JpのThe Comformlaterの項目の手順でegmを作れると思うのですが
ウィッグなどゲーム上の頭の座標に配置してある装備でもegmを持っている物があるのですが、これも上記と同じ方法でegmを作れるのでしょうか?
800名無しさんの野望:2011/06/16(木) 19:02:38.32 ID:1Ogs+ZOF
>>794
OBSEのどこから追加されたかのかは知らないけど、
自分の使っている0.019なら
SetCellWaterHeightってのが一応ある

動作は不明
801名無しさんの野望:2011/06/16(木) 20:29:55.83 ID:399vuyA0
お前らもパチンコぐらいやるだろ?ならばよう見とけっ!!

極めし者になりたきゃみよっ!!あとはスルーしろ!

因みにこれはオブリの連中にしか教えてない昔色々世話になったからな…ほれ

ttp://shy.jsphr.net/upload/img/ups27765.jpg
802名無しさんの野望:2011/06/16(木) 21:00:23.25 ID:byqr96Ap
>>798
ほむほむ見えないところで空中歩いちゃってたってことですか
建物作るの想像以上に大変だ…

>>800
おぉ、OBSEにそんな便利なSCRIPTが
試してみます

皆様ありがとうございますコレで何とかなりそうです
803名無しさんの野望:2011/06/17(金) 16:04:51.43 ID:HixZ4VYO
MBPについての質問なんですけど
2chRENヘアーとか、プリキュアヘアーとか、なんとかエルフなどが
マジダサキモいのでみんな削除しましたが
要望あればWIKIにうPしてもいいのでしょうか?
804名無しさんの野望:2011/06/17(金) 16:08:08.22 ID:HixZ4VYO
MBPイタイ要素カット版
とかでいいかなぁ
805名無しさんの野望:2011/06/17(金) 16:11:26.31 ID:4aosAkVZ
作者に聞いて許可降りればうpしてもいいんじゃね
というかただのバニラとどれだけ違うんだそれ、白虎とか単体で必要なら単体でmod落とすだろうし
806名無しさんの野望:2011/06/17(金) 16:12:19.62 ID:8Wwkew7I
触るな
807名無しさんの野望:2011/06/17(金) 18:20:46.12 ID:0SwalQ0J
SKSもらえなかったとカスが各スレで暴れてる
触るな
わざとだ
808名無しさんの野望:2011/06/17(金) 19:35:49.81 ID:W5Wo5rKz
情弱おつ
809名無しさんの野望:2011/06/18(土) 10:58:55.03 ID:yP9VloDi
playerのidle.kfとNPCのidle.kfを差別化するのは可能でしょうか?
810名無しさんの野望:2011/06/18(土) 11:12:27.93 ID:Ia2wdIu9
>>809
出来ます。playerに適応させたいkfをspecialanimsフォルダに入れてCSでNPCのリストからplayerを選んで
animationタブでIdleにチェック。NPCの方は普通に_maleフォルダに。

ただし、プレイヤーを変更するMOD(アニメーションに限らない)とは競合します。
811名無しさんの野望:2011/06/18(土) 11:13:16.21 ID:yP9VloDi
自己解決しました
812名無しさんの野望:2011/06/18(土) 11:15:33.04 ID:yP9VloDi
せっかく返信いただいたのに気づきませんでした
すいません・・・
813名無しさんの野望:2011/06/18(土) 11:47:12.79 ID:Ia2wdIu9
('ω')v
814名無しさんの野望:2011/06/18(土) 13:30:29.74 ID:va8QqIC2
>>782
一週間も経ってしまいましたけどありがとうございました
一発で全部取得は出来ないみたいですね…地道にやってみます
815名無しさんの野望:2011/06/20(月) 16:06:25.28 ID:HGewsoOW
OBSEのない状態では、
ActivatorにOnHitで矢以外の認識はできないみたいなのですが、

OBSEにはそのような表記はできますか?

OBSEに関しては日本語版ヘルプがないため、完璧ではないと思いますが、
一応一通りみてはみたものの、それらしいものはなかったと思われます。

見落とし、あるいは他に何か方法がありましたらアドバイスをいただけないでしょうか?
816名無しさんの野望:2011/06/21(火) 18:46:49.10 ID:UiD51K+z
試さず憶測だけで書くので
間違ったらごめんなさいだけど、

Oblivion内にあるActivatorの地雷(Mine)は魔法だろうが矢だろうが
HITすると爆発してFireをこっちに放ってくるのを見ると

OnTriggerあたりでもHITしたら反応するんじゃないでしょうか

どういったものを作りたいのか、にもよりますけど。
817815:2011/06/21(火) 21:01:59.50 ID:PEEikoje
>>816
レスありがとうございます
特定の武器、あるいはプレイヤーの近接攻撃でだけ判定だしたいな と思ったのですが、
OnTriggerにするとPCが体当たりするだけで確か反応してしまったきがしたので、
もっと確実になにかないかなと思った次第です
818815:2011/06/21(火) 21:03:27.27 ID:PEEikoje
連投すみません

理想は、
魔法を含めたプレイヤーの全てがいいのですが、
要するに、ActivatorにCreatureのようなリアクションをとらせたい

です
819名無しさんの野望:2011/06/21(火) 21:10:47.88 ID:Ou6bQ2Ry
ActivatorとPlayerの距離と、Playerの動作(AnimGroup)あたりを条件にしたスクリプトを
ObjectScriptで書くのがいいんじゃないですかね
「要するに」以下の部分はちょっと飛躍があって要望を満たせてるか分からないですけど、なんとなく
820名無しさんの野望:2011/06/21(火) 21:34:10.12 ID:PEEikoje
>>819
ありがとうございます。
やはり、ずばりそのものはないということですね

>要するに、ActivatorにCreatureのようなリアクションをとらせたい

こちらに関しては、たんに判定を同じような感じで出したいと思っただけですのでスルーでかまいません。

OnTriggerにAnimeGroupを指定して絞ってあげれば、
似たようなことはできそうですね。
ありがとうございます。
そのあたりで少し模索してみます。
821名無しさんの野望:2011/06/21(火) 21:38:54.87 ID:Ou6bQ2Ry
面白そうな使い道を考えておられるようなので出来上がりを期待してます
822名無しさんの野望:2011/06/23(木) 15:05:11.30 ID:e14yDiIq
>>820
今更ですみません。
AnimGroupを特定するスクリプトを組もうとしたのですが、
どうも特定できるFunctionsがないようで、
本家CSwikiをみると、
v0015での希望項目にGetCurrentAnimGroupというのがあるのですが、
これ実際は実装されてないようでした。
なにか他にやり方があればご教示いただけませんか?
823822:2011/06/23(木) 15:08:42.83 ID:e14yDiIq
どうもIsAttackingあたりで代用できそうな感じですね。
調べながら書き込んでいたのですが、書き込んだ直後にそれらしいのがみつかってしまいました。

申し訳ありませぬ。
824名無しさんの野望:2011/06/23(木) 15:27:35.79 ID:oCrlNGsW
>>823
IsAttackingやIsBlockingといった判定関数は、
基本的にPlayGroupを使ってモーション変更した場合は判定できません
IsAttackingなどの判定は、主にプレイヤー、NPCのAIが自発的に操作した内容を判定する関数と思っていいかもです

PlayGroupも判定に含める場合は、IsAnimGroupPlayingで判定するといいです
ただしIsAttackingで済むものに対して、IsAnimGroupPlayingを使う場合はAttackLeft, AttackRight, AttackForwardPower...(略)
――と、複数回判定しなければならないので、注意が必要です

IsAttackingでなんか違うなあと思ったらIsAnimGroupPlaying方式も試してみてくださいね!
825名無しさんの野望:2011/06/23(木) 16:18:20.31 ID:e14yDiIq
>>824
即レスありがとうございます。
IsAnimGroupPlayingの方がよさそうですね。
色々試してみます。
これならかなり細かく設定できそうですね。

重ね重ねありがとうございます。
826名無しさんの野望:2011/06/23(木) 19:34:33.39 ID:AZ0sYLug
質問ばかりですみません。
色々試した結果上記設定周りの絞込みは大体把握できたのですが、

Activatorの仕様がよくわかりません。
ヴァニラで用意されているもので色々試してみたところ、

・OnMagicEffectHitには反応すれど、OnTriggerに反応しないもの
・逆にOnTriggerには反応すれど、OnMagicEffectHit

とあるのですが、このような設定?はBlenderあたりでどうにかなるものなのでしょうか?
質問ばかりで申し訳ありませんが、このあたりの仕様についてどこか解説などあるところはないでしょうか?


827826:2011/06/23(木) 19:35:47.87 ID:AZ0sYLug
・逆にOnTriggerには反応すれど、OnMagicEffectHit

→・OnMagicEffectHitには反応すれど、OnTriggerには反応しないもの

でした


828名無しさんの野望:2011/06/23(木) 22:57:22.69 ID:zwvem/pp
>>825
AnimPathIncludesを使うと容易かつ柔軟にモーションを検出出来ますのでおすすめです。
if ( npc.AnimPathIncludes "attack" )とか
if ( npc.AnimPathIncludes "cast" )とか
そんな感じで、kfファイルに含まれる文字を部分一致で指定して使います。
あと、Activatorに当たったのが重要なのか、そばでそのそぶりをしたのかが重要なのかで変わりますが
前者ならOBSEのOnHitかOnMagicEffectHitのEventHandler使うとかもありです。
後者ならGamemodeでPlayerとの距離とアニメーション監視してればお望みの動作は大体出来そうかと思います。
829名無しさんの野望:2011/06/24(金) 17:02:27.56 ID:PJD6wWAJ
Trokturian Cowという種族MODに手を加えて、MBPの髪型や目を使えるようにしました。

これをespからesmにコンバートしたところ、何故かtestinghallの壁と床が消えるように
なってしまいました。このMODでは、testinghallにチェストを設置していますが、
この程度で壁や床が消えたりするものでしょうか?
また、espの時には何も問題がないのに、esmにすると問題が出るのも理由が良く解りません。
地形に対する影響というのが、espとesmでは全く違うのでしょうか?

esm化しても、床が消えたりしないようにするには、どういった事に気をつければ良いですか?

830名無しさんの野望:2011/06/24(金) 17:06:57.93 ID:KTK65Vmg
>>829
Oblivion.esmにある情報を変更する項目を持ったesmを作ると不具合が出るのは既知の不具合です
esmには新規IDや新規cell以外の情報を入れてはいけません、上書きする項目はespにします
831名無しさんの野望:2011/06/24(金) 19:32:33.24 ID:okiM3GQH
>>828
おお、そのようなファンクションがありましたか!
ちょっとこちらも試してみます。
ハンドラーに関しては少し調べたところ、
セーブデータに残ってしまったりと不安要素があるような感じでしたのでなるべく使わずにやってみようと思います。

ただ、どちらにせよやはりOnhitとMagicEffectHitが両立できるオブジェクトの条件がよくわからず・・・。
最悪、トリガーゾーン(物理判定)と石像など(魔法判定)を組み合わせればできるのかなー
というのは見えてはきましたのでなんとかなりそうではあるのですが。
832831:2011/06/24(金) 19:33:00.39 ID:okiM3GQH
大事なところが抜け落ちてました。
アドバイスありがとうございました!
833名無しさんの野望:2011/06/24(金) 21:04:20.91 ID:PJD6wWAJ
>>830
回答ありがとうございます

チェストの配置をやめ、導入時にadditemする方法に変えましたが、
一度配置してしまうと、消しても該当cellを変更した情報が残ってしまうようですが、
TES4Editでcellの項目を削除してやることでうまくいきました。
834名無しさんの野望:2011/06/25(土) 16:11:57.23 ID:f/018AIw
>>499
書かれてから大分経っているので居るかどうか分からないけど

この手順どおり導入してみたけど、5のOBSE経由で起動しても、コンソールウインドウも
開かないし、ツールバーも変化ないんだけど導入に失敗しているのかな?

と書こうとした所で、もう一度確認してみたら・・・
http://www.tesnexus.com/downloads/file.php?id=36230
似たような別物を落としてたw紛らわしいなw
835名無しさんの野望:2011/06/26(日) 01:00:18.67 ID:d3lU0Pm7
OBSE関数のDeleteReferenceについて質問です。
ダイナミックなObjectをDisable状態にした後に有効で、
成功すればbool値を返すらしいのですが、
PlaceAtMeならIDが取れますけど、NPCが落とした武器の場合はIDが取れない気がするので
その後の成否判定をどのように行うのか分からないのです。
836名無しさんの野望:2011/06/29(水) 18:46:40.41 ID:zbobnyv2
そのNPCが特定NPCか不特定NPC(Banditとか)か、
その武器が特定武器か不特定武器(SteelDaggarとか)かで、
組むScriptも単純なものから複雑なものになったりするので、何とも言えませんが…

当然、不特定+不特定が一番面倒です。
837名無しさんの野望:2011/07/03(日) 21:33:58.90 ID:8/gHaIKE
水中視点の透明度を上げようと段階的にFogDistanceの数字を弄ってみてるのですがうまくいきません
どなたか数字の意味がわかる方ヘルプお願いします
838名無しさんの野望:2011/07/03(日) 21:56:41.64 ID:Gi+hFkvn
透明度なら「opacty」
バニラは100
数値を低くするほど見晴らしが良くなっていく。
839名無しさんの野望:2011/07/04(月) 00:47:44.00 ID:LxIEmi3B
>>838
透明にできました、ありがとうございます
ただ潜った時の視界が真っ暗なままなのでこっちも透明にできないでしょうか
840名無しさんの野望:2011/07/04(月) 01:23:31.48 ID:y5Lkgd7f
DefaultWater=水面
DefaultUnderwater=水中
841名無しさんの野望:2011/07/04(月) 09:26:25.10 ID:T1mYJrm7
便乗して質問です。水の中から水の外が見えるようになるには、かなり水面に近づかないと
見えませんけど、これって上から見た時の透明度みたいに中からも変更かのうなのでしょう
か?
842名無しさんの野望:2011/07/04(月) 21:31:05.60 ID:HHqJiNEj
LopearElfをベースに赤い肌の新しい種族を作っているのですが
頭、ミミ、手は反映されたのですが身体が従来の肌色のままになってしまいます
対応するテクスチャには手を加えましたがアッパーボディとローボディはCSでは表示されているのですが
フォルダ内を探してみても存在せず仕方ないのでヒューマンから引っ張ってきたupperとlegを編集してCSで登録したのですがそれでも肌色のままでした
念のためmaleのタブも編集した赤い肌に差し替えて登録したのですが変化はありません
どのようにしたら改善されるかご存じの方がいらっしゃいましたらご助言願います
843名無しさんの野望:2011/07/04(月) 21:59:05.91 ID:I5Z2S2hO
CSで家を建てたり消したり、オリジナルのキャラクターを「置く」ことはできるようになりました
まだAIは作れてません

へんな話なんですが長いミッション(複数ルート有り)のイベントMODを作るのは無理ですか?
どれくらい勉強したらできるようになりますか?
844名無しさんの野望:2011/07/04(月) 22:11:55.02 ID:E8CH5RFG
家やNPCを「置く」作業とクエストを作る作業ではやってることがかなり違う
簡単なものならクエストやスクリプトをある程度弄れるようになればできるよ
複数ルートありならスクリプトをやったほうがいい
845名無しさんの野望:2011/07/04(月) 22:45:39.45 ID:I5Z2S2hO
>>844
そうですか・・・色々なサイトを参考にして挑戦してみます!
ありがとうございました
846名無しさんの野望:2011/07/05(火) 06:15:41.75 ID:wG6gHFJH
とにかくクエストダイアログを手探りでもいいからいじりまくれ
だんだんわかってくるからとにかく身体で覚えるんだ。
簡単に説明できるようなものじゃない。
847名無しさんの野望:2011/07/05(火) 06:24:00.61 ID:QnQeaDsD
紳士のためのNPC作成講座とか読むと良いぞ
Win7だとダイアログ作成しようとすると落ちる不具合があるけど
848名無しさんの野望:2011/07/05(火) 22:00:11.84 ID:9J7s2wQL
NPCやオブジェクトからのDialogueをSayコマンドで言わせることができるそうですが
このコマンドで使われるトピックについて、
Conversationに分類されるトピックを発言させている場合と、
Topicに分類されるトピックを発言させている場合とを見掛けました
MOD製作者の意図はわからないのですが、
ConversationとTopicを発言させることについて、
仕様の違いや用途の向き不向きがあるのでしょうか?
ActivatorからSayコマンドで一方的にPCに向かってDialogueが話しかけられるようにしたいのですが、
実際に話させるテキストを作成するにあたってどちらを使うのが適切なのでしょうか?
849名無しさんの野望:2011/07/05(火) 22:08:52.06 ID:wG6gHFJH
しゃべらせる主体はNPCじゃないと無理だったきがする。
アクティベーターがしゃべらせてるっぽくしたいなら、
見えない位置にNPCおいてそいつにしゃべらせる

じゃなかったかな。
違ったらすまん
850名無しさんの野望:2011/07/06(水) 00:59:17.30 ID:t6X3fsO1
デイドラの像とかそういうシステムだな
851名無しさんの野望:2011/07/06(水) 08:10:01.67 ID:OH3gvYKG
像の中にNPCが埋まってるんでしょうか。生命探知で見たことはないけど。
852名無しさんの野望:2011/07/06(水) 11:47:16.66 ID:jEiizLAB
>>851

生命探知は基本的にボーンが反応する、ディードラ神像は反応無いよ
ナインの祭壇とかイベント用のトリガースイッチだろうね
853名無しさんの野望:2011/07/06(水) 11:48:12.02 ID:rb3iE6kb
別に埋める必要なんてない
同じセルにおいとけば
距離がどうだろうが聞こえる
854848:2011/07/06(水) 11:52:12.27 ID:EdyWaGce
>>849-850
Daedra Shrineの像は話者IDを指定してActivatorが発声しています
>>852
Nineの祭壇はActivateすると、確かそのActivatorが魔法をCastするだけです
>>853
引数で1を指定すれば距離無視で字幕を強制できますが、
そうでないと距離によっては字幕が出ないこともあったと思います
855名無しさんの野望:2011/07/06(水) 12:44:57.62 ID:rb3iE6kb
say + 1
を使えない理由でもあるの?
856名無しさんの野望:2011/07/06(水) 15:48:16.00 ID:2rzlA9fv
ちょいうちも質問
同じセル内で扉で移動するとコンパニオンが追従でもちゃんとついてこないんだけどどうすればいいんだろう?

サブスペースでも上手くいかないし
NPCが同セル内移動だと自然にドア移動はしてくれないのがデフォ?
857848:2011/07/06(水) 21:38:55.22 ID:EdyWaGce
>>855
いえ、そうではないです。
今自分で作ろうとしているMODでもSayを使おうとしています。
>>848を読んで頂ければわかるように、問題はそこではありません。
1 ConversationタブにあるTopicをSayさせている場合
2 TopicタブにあるTopicをSayさせている場合
両者に仕様上や用途の違いはあるのでしょうか?ということを伺っているのです。
858名無しさんの野望:2011/07/07(木) 05:17:49.82 ID:jMNg0fg6
>>856
パスは引いてあるんだよね?
859名無しさんの野望:2011/07/07(木) 05:24:09.01 ID:z66xbaRW
>>858
レスありです
もちろん引いてありますが、ドアをはさんでいるためその間を繋げば壁に向かってぶつかり続け、
ドアの間だけ切断しても同じく移動はしてくれず、
ドアをまったく使おうとしないです。
860名無しさんの野望:2011/07/07(木) 05:32:45.44 ID:oE+nXEK8
>>856,859
昔、同じ問題で詰まって未だ解決策が見つからない
vnillaの同セル内ドアはコンパニオンも通れるから仕様では無い筈
861名無しさんの野望:2011/07/07(木) 18:32:47.15 ID:iUoUKXMv
>>857
Sayで使うだけならどっちでも同じじゃないですかね。
実際どちらも同等に動きますし。
実用実績という意味でその辺が気になるのでしたらバニラに倣っておけばOKかも。

外見動作だけでなく実際の内部仕様にまで立ち入った詳細、となると
恐らく色んな意味で誰も答えられないです。多分。
862名無しさんの野望:2011/07/07(木) 18:42:41.55 ID:iUoUKXMv
>>859
同セル内移動でNPCがロードドアを使わないのはデフォです。多分。
解決はSubSpaceでOKだと思うのですが。

区切りたい場所のドアとドアマーカー、床位置が同じSubSpace内に確実に入って
いるか確認を。またロードドア間のPathは不要です。

バニラのICWaterfrontLighthouse等が多分参考に。
あとImperialDungeon01で敵の控え室みたいな使われ方も。
863名無しさんの野望:2011/07/07(木) 20:36:34.14 ID:z66xbaRW
>>860>>862
レスありがとうございます
やっぱりやり方としては間違ってなさそうですが、どうしても上手くいきません。
サブスペースの使い方についても問題はなさそうなのですが。
864名無しさんの野望:2011/07/07(木) 21:44:53.46 ID:iUoUKXMv
>>863
うーん、なんでしょね。
試しに適当な室内二つとドアのリンク一組だけでPathGrid無し、片方の室内だけを
SubSpaceに入れたうんと単純化したセルを作り、バニラのタマネギを連れて来て
ドアを使うかをまずチェックしてみると何か分かるかもです。
865名無しさんの野望:2011/07/08(金) 01:25:34.65 ID:PFfWOTOZ
>>864
アドバイスありがとうございます
色々試してみたのですが、
どうしても自分で作成したものだと、
プレイヤーの後追従する際、
ドアまたぐ動作を繰り返している状態でした。

上手く説明できないのですが、

その場で ドアにアクティベイトして転送?開始→身体が消えかける→その場に現れる→ドアにアクティベイト→

のループで、ぱっとみ点滅してドアを調べるSEがループしている状態でした。


866名無しさんの野望:2011/07/08(金) 08:51:12.58 ID:+wQ2v7bd
困ってるわけじゃないけど、
game settingで
fMagicResistTargetWillPowerMultとか、その周辺のsettingの意味がわかったら面白そう。誰か意味をしりませんか?

ちなみに、適当に設定してテストしたら、装備品及びmodpcaで増強した分の気力/4だけ魔法耐性がつきました。
なぜか素のマジカだと駄目?
Menu閉じないとつかなかったり、増強分から減らされるオフセットが不明だったりでわけわからなかったけど。

これらをいじったあとデフォルトに戻しても勝手に魔法耐性つくみたい?Vanillaでも気力で魔法耐性なんてついたっけ?聞いたことないですが。

今から仕事行くので興味がある人が調べてくれてたらいいなあなんて都合のいいことを考えてます
867名無しさんの野望:2011/07/08(金) 08:52:28.73 ID:+wQ2v7bd
訂正
×なぜか素のマジカだと駄目?

○なぜか素の気力だと駄目?
868名無しさんの野望:2011/07/08(金) 08:52:39.85 ID:mXmvLWVo
>>865
状況の特定にこれが動くかテストを。お時間ありましたら。

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

あと、ロードドアの行ったり来たりは、例えばAIでの移動を先取りするつもりで
強制的にドアをAcitivateさせて移動した場合なんかにタイミングによっては起きる
事があると思います。
869名無しさんの野望:2011/07/08(金) 13:42:37.00 ID:PFfWOTOZ
>>868
作例まで、ありがとうございます!

いただいたデータでは問題ありませんでした。
また、ためしに自作したNPCにフォローさせても動作できました。

で、ためしにこのいただいたセルをワールドスペースに移したところ、点滅減少(ドアアクティベート連打)状態が発生。
どうもワールドスペースだと同セルどころかセルを分けても、移動してくれないようです。
870名無しさんの野望:2011/07/08(金) 14:13:18.17 ID:mXmvLWVo
>>869
WorldSpaceの話ですか。
だとするとInteriorCellとはSubSpaceの挙動が微妙に違うのでなんかある可能性も。
ちょっと今アレなのでまた後で試してみます。
871名無しさんの野望:2011/07/08(金) 14:40:23.72 ID:PFfWOTOZ
>>870
後出しですみません。
最初に気づくべきでした。
どちらにせよ挙動が内部セルと違うのは確かみたいですね。

気になるのでもう少し色々いじっていようと思います。
872名無しさんの野望:2011/07/08(金) 19:58:53.26 ID:mXmvLWVo
>>871
挙動確認しました。
WorldSpaceの場合、現在ロードされてる5x5セル内に両方のドアがあると
その点滅状態になるみたいです。

ドア同士少なくとも2セル以上の距離間隔をおいて、ドアのあるセルが両方同時に
ロードされない状態にすれば動くみたいです。

またドア位置を近くする必要がある場合は、PCが使うドア経路とは別にInteriorCellか
2セル以上離れた場所に別なSubSpaceを用意、そこをドアで経由させてNPC専用の経路に
したり。

PC用ドアの「Minimal Use」をチェックすればNPCはそのドアを使わずにもう一つの
ルートで回り道して付いて来ると思います。
NPC用ドアを適当な場所に隠してドアマーカーを重ねて置けば多分位置的にもOKな気が。

それかドアに適当なスクリプトを書いてNPCだけ所定位置に強制的にMoveToしたり。

そんなかんじで目的に応じて対応策はいくつかあるかもです。
873名無しさんの野望:2011/07/08(金) 20:10:46.47 ID:6PPiY8S6
ルートで別れる物語を作ろうとしているのですが
何処で分かれ道にしようかストーリーが浮かばずに止まってしまいました
今メインルートを一本道作って後から付け足すのと
複数を平行して作るのはどっちの方が楽ですか?
後からルートを別けることもできるのでしょうか?
いい加減作り始めたいです・・・orz
874名無しさんの野望:2011/07/08(金) 20:38:48.42 ID:8YTy9a0e
人による
確かに一本道作って途中に色々加えるとテストプレイのやり直しやらで大変だろうけど、
メインを粗方仕上げないとモチべ続かないし全体がどの程度か分からんって人もいるだろうしな
875名無しさんの野望:2011/07/08(金) 21:32:31.90 ID:O7kpU4Dp
おいらなら、一本道を作って伏線をいくつか置いておき、
追加の際にそれを使う、追加が無ければ放置
てな具合につくりますかね…
まず一本動かないと、分岐とかそれ以前の話ですしね
876名無しさんの野望:2011/07/08(金) 22:49:56.76 ID:PFfWOTOZ
>>872
>WorldSpaceの場合、現在ロードされてる5x5セル内に両方のドアがあると

なるほど、距離による妙な制限があったのですね。

クッションセルを置くことはなんとなく考えておりましたので、
NPCの仕様最小限コースを併用して、そちらの線で色々やってみたいと思います。
それにしても、どういう内部処理をしているのか謎な仕様が多すぎる気が・・・。

丁寧かつ詳細なアドバイスありがとうございました!
877名無しさんの野望:2011/07/08(金) 23:48:35.96 ID:WejLsCra
Player.GetDeadトリガーでResurrect 1を実行していたのですが、
二回目の死亡でResurrect が発動せずそのまま死亡しました。
Resurrect には何か回数制限のようなものがあるのでしょうか?

流れとしてはQuest形式のスクリプトAでPlayer.GetDead == 1になったかを監視
Player.GetDead == 1になったらQuest形式の別スクリプトBでResurrect 1を実行。
で、StopQuestでBを終了してAに戻って終わり。
改変なのでModの構造は弄れません。
前後処理のせいなのか、Resurrect の仕様なのか、もし後者ならば
次にResurrect が発動するのはどのような条件を満たしたときなのか、を知りたいです。
878名無しさんの野望:2011/07/08(金) 23:51:43.96 ID:O7kpU4Dp
そもそもPlayerへのResurrectはイレギュラーな処理だから
あまりそこに拘泥しない方が良いような気がします…
879名無しさんの野望:2011/07/08(金) 23:52:45.71 ID:WejLsCra
あ、なんで前後処理を詳しく書いてないかというと
初めてModを触ってる初心者なものでまだ完全に読み解けてないからです。
すみません。

とあるModのイベント開始トリガーをヘルス低下時じゃなくて死亡時にしたくて…。
880名無しさんの野望:2011/07/09(土) 01:05:19.50 ID:vjfwi1xK
うーん、調べたり弄るほどResurrectのイリーガルっぷりが分かりますね…。
何か瀕死時に高確率でイベント発動する方法ってないでしょうか。
残ヘルス5%以下で発動したいけど、そこらになると次の一撃で即死も多いでしょうし、
かといって安定して生き残れる量をトリガーにすると
ちょっと死闘するとバンバン発動してプレイの邪魔に…。難しい。
881名無しさんの野望:2011/07/09(土) 01:08:58.47 ID:vjfwi1xK
あ、イベント内容は底力的なバフをイメージして貰えたらつかみ易いかな、と。
最初は死んだら確率復活+バフってのを考えてたんですよ。
んでテストで100%発動にしたら2回目で死んだので。
サイヤ人的なステータス微成長もあるので
あまり頻繁に発動されると困っちゃって。
882名無しさんの野望:2011/07/09(土) 01:13:36.60 ID:vjfwi1xK
連投すみません。頻繁に発動されるのが困るのは
微成長じゃなくて各種回復効果があるバフだったからです。
一気に温くなっちゃうんで…。
成長外せよ、で終わりそうな話だったんで訂正をば。
883名無しさんの野望:2011/07/09(土) 01:25:23.71 ID:s6xdPxVu
残5%で即死増えちゃう!てな状態を変化させたいなら
Healthが残10%の時に、GetRandomPercentで20%で発動とか、
確率で振り分けたらどうでしょ
連続チェックしないようにflg管理しないとアレですが
884名無しさんの野望:2011/07/09(土) 01:59:48.64 ID:7pRtsEKC
>>874-875
取り合えず話が別れるところまで作ってみます!
実際にやってみて自分に出来そうか出来なさそうかわかれば変わる気がするし
ありがとう!!
885名無しさんの野望:2011/07/09(土) 11:05:56.44 ID:snFPbaC1
マジカや体力の最大値っていじれないんでしょうか?
;player.setbaseav2 Health 0.5 * (player.getav Endurance ) + ((player.getav Endurance) * (player.getav Level))/7
;player.setbaseav2 Magicka (0.5 + (player.getav Level ) * 0.25 ) * (player.getav Intelligence) *(player.getav magickamultiplier)/10 + 10
;player.setbaseav2 Fatigue (7 * (player.getav Strength ) + 12 * (player.getav Endurance ) + 5 * (player.getav Agility ) + 6 * (player.getav Willpower ))/30
こんな感じでレベルが低いのに体力やマジカが普通に高かったり、持久力と敏捷でスタミナへの影響が同じという不自然を修正したいのです。
でもgetGaseav2はOBSEコマンドにあっても、setの方はないみたいで。
他の手段でもいいので知ってる方お願いします。
886名無しさんの野望:2011/07/09(土) 13:55:48.12 ID:snFPbaC1
>>885
自己解決しました。
普通にHealthやMagickaで最大値なんですね。
887名無しさんの野望:2011/07/09(土) 23:21:08.35 ID:ds8vFLcD
イベントの後に残体力や残マジカを最大体力の1割の数値にしたいのですが、いい手法はありますか?
modav2であれこれしてたのですが、固定値の増減しか(自分の頭では)出来ず、
例えばヘルス100でイベントの後に全体力の1割の状態にしたいから、と
単純に割合計算して-90したら、残ヘルス85のときに死亡してしまいます。
(逆に残ヘルス5のときに10%まで回復もしたいです)
色々現在ヘルスと残したい割合とで計算したらやれそうな感じはするんですが、
それ以前にそういう動作をするコマンドを自分が見つけれない気がしてきて…。
888名無しさんの野望:2011/07/09(土) 23:37:25.85 ID:ds8vFLcD
質問書いてから風呂入ってたら
「回復してもいいんなら一旦全快してから9割相当分減らせばいいだろボケ」
って気づきました。スレ汚しほんまスレ汚しすみません。
889名無しさんの野望:2011/07/09(土) 23:37:54.83 ID:s6xdPxVu
Set maxhoge to GetMAXAV Health
Set nowhoge to GetAV Health
Set 1perhoge to maxhoge / 10
Set sabunhoge to nowhoge - 1perhoge
Set sabunhoge to sabunhoge * -1

ModAV2 Health sabunhoge

こんなんかな
890名無しさんの野望:2011/07/09(土) 23:46:18.67 ID:ds8vFLcD
おお、これでもうちょっと細かいことする動作が出来そうです。
ありがとうございます!
891名無しさんの野望:2011/07/09(土) 23:51:15.33 ID:QIDCx/VZ
set HP to 0 - ( GetAV Health - ( GetBaseAV Health / 10 ) )
ModAV2 Health HP

2行でいけるよ
892名無しさんの野望:2011/07/09(土) 23:52:20.80 ID:ds8vFLcD
おー、なるほど…。勉強になります。質問して良かった。
893名無しさんの野望:2011/07/10(日) 02:25:12.86 ID:PuBtMmaw
デフォのコマンドでHealthを取ろうとするとmagic effectも自力で調べなきゃならなくて少し面倒。
OBSEだと1発で補正込みの現在の最大値が取れる。
894名無しさんの野望:2011/07/10(日) 22:03:29.69 ID:1A4LPOVg
クリーチャーやNPC以外(アクティベーターとか?)のオブジェクトに
魔法、矢、攻撃のヒットを検出させる方法は何かありますか?

それらしいログはいくつか見かけたのですが、
これはという回答がなかったような気がしましたので。

何か方法があればお願いします。

・要するに、静的オブジェクトで魔法、矢、武器による攻撃を検出してみたい

です。

895名無しさんの野望:2011/07/10(日) 22:55:01.92 ID:7hWADvzE
OnTriggerMobか似たようななんかで取れるんじゃね
896名無しさんの野望:2011/07/10(日) 23:00:09.02 ID:1A4LPOVg
レス感謝

もちろんOnHitとOnTriggerは試してみたのですが、前者はNPCやクリーチャ限定で、
OnTriggerMob Player
だとなぜか反応しなくなり、

またOnTrggerだけだとアタックどころか触っただけで数字が上昇して使えなかったんです。
897名無しさんの野望:2011/07/11(月) 20:01:36.12 ID:l9WDsL9f
すみません
ちょっとアドバイスをいただきたく候

アクターにスクリプトを添付して、
そのアクターのHPに応じて変数を投じてみようと思い、
過去ログや公式CS OBSEの項を見たりしつつ、以下のようにいくつか試してみたものの、
どちらも機能しませんでした。

if Getcurrenthealth >= GetObjectHealth/2
set HP50per to 1
endif

if Getcv 2 / Getov 2 < 0.5
set HP50per to 1
endif

何か誤りがありましたらアドバイスをいただきとうございます。
898名無しさんの野望:2011/07/11(月) 20:42:34.40 ID:TdzvZqna
魔法反射、ダメージ反射時の処理を自前で作ろうとしています。

魔法反射の方はOnSpellCast、OnAttackでそれぞれ魔法やエンチャをDissarrowReflectAbsorbすれば後は対象に当たった後に魔法反射値を参照して処理すればできました。
しかし、ダメージ反射が対象に届く前に反射されるので困っています。

アイデアとして、OnAttackで攻撃時にweapontypeを弓に変更、元のweapontypeはグローバル変数に入れておいて、Onhit内で元に戻す処理をする。
ということを考えました。しかし、Onhit前に2人以上がOnAttackするとWeaponTypeがごっちゃになり、わけのわからないことになりかねません。
そもそもOnAttackに入ったからと言ってOnHitにたどりつかない可能性もあります。

他の案として、「水中ダメージ抵抗」のような使わない属性の名前を「Damage Reflect」にしておいて、
本来のダメージ反射量を読み取って代入、ダメージ反射は0にしておくといったことも考えました。
これは自分のMOD内のクリーチャー、装備、魔法なんかには有効ですが、他MODの反射装備の着脱や反射魔法を使われる等するととかなり面倒です。

実はこのGameSettingで一発だよ、とか何か良いアイデアはないでしょうか?
899名無しさんの野望:2011/07/11(月) 20:44:27.59 ID:TdzvZqna
>>897
set tmp to GetObjectHealth / 2
set HP50per to 1
endif

単純にこれじゃだめですか?
If文で式使えなかったような...
900名無しさんの野望:2011/07/11(月) 20:47:34.82 ID:TdzvZqna
>>897 >>899
set tmp to GetObjectHealth / 2
if Getcurrenthealth >= GetObjectHealth/2 <<抜けてた
set HP50per to 1
endif

あと、省略してるだけとは思いますがGetCurrentHealthやGetObjectHealthの「対象」がありませんね。
901名無しさんの野望:2011/07/11(月) 23:38:38.85 ID:TdzvZqna
>>898
だみだー、weapontypeを変更しても普通に反射されるうう

ただ反射を無効化したいだけなんです。
On Hit時点でactorの腕力とスキルからダメージ計算して回復するという手もありますが、それだと反射率が100%じゃなくて反射しないときに回復しちゃうのでまずいし...

何かいい手はないでしょうか?
902名無しさんの野望:2011/07/11(月) 23:44:38.00 ID:zuRTJXQR
>>897
それは装備などのオブジェクト耐久値の取得関数だったような・・・
ヘルスのことならGetAV Health、GetMaxAV Healthで試してみてください

GetMaxAVがOBSE関数なのでEva( )で囲う必要あるかもしれないので注意してくだし
903名無しさんの野望:2011/07/11(月) 23:46:54.26 ID:zuRTJXQR
>>901
複雑ですけどイベントハンドラを使った、こういう方法もあるよってことで……

イベントハンドラのOnHealthDamage(反射ダメージ)のときに
damageマイナス反転、GetSelfに対してModAV2 Health damageで反射ダメージを無効にし、
OnHealthDamage(武器, 素手, Player-Target, NPC-Target)のタイミングで
反射処理をおこなう方法もあります
(※OnHealthDamageの引数damageは実際よりも少なく出る場合があります)

イベントハンドラの処理順はこんな感じです(魔法反射パターンは検証してなくて書けませんです)

□攻撃タイプごとのイベントハンドラ処理順(上から順に実行される):
OnMagicEffectHit(エンチャント)
OnHitWith(武器)
OnHit(武器, 素手, Player-Target, Player-Touch)
OnMagicEffectHit(Player-Target, Player-Touch, NPC-Target, NPC-Touch)
OnHealthDamage(反射ダメージ)
OnHealthDamage(武器, 素手, Player-Target, NPC-Target)
〜メインループ処理……〜
OnHealthDamage(Player-Touch, NPC-Touch, エンチャント)

長くてゴメンね(´・ω・`)
904名無しさんの野望:2011/07/12(火) 01:01:09.60 ID:FLYYVFF+
>>903
難しくてお礼言うのも遅くなりましたが詳しくありがとうございます

まだ理解できてないので明日再挑戦して無理だったらまた誰かに聞きます。
905名無しさんの野望:2011/07/12(火) 02:32:07.54 ID:r4ZRgNwh
>>904
自分でも端折りすぎたと思いましたので追記・・・・
大まかな流れは以下のような感じです。903に書いたイベントハンドラの処理順も見ながら読んでもらえば伝わる−、といいのですが

1.OnHitWith、OnHit、OnMagicEffectHitのそれぞれで、
  アタッカー、ターゲット、攻撃に使われた武器、使われた魔法のエフェクトコードを保持する

2.保持したターゲット情報が、OnHealthDamageの引数のアタッカーと同じなら
  反射とみなして、OnHealthDamageで適用されたダメージ分を回復させる

3.保持したアタッカー情報が、OnHealthDamageの引数のアタッカーと同じなら
  通常のダメージ処理とみなして、自前のダメージ反射処理をおこなう

  ※ 攻撃に武器を使っていれば通常攻撃タイプの反射処理を、
  ※ 武器情報がなく魔法のエフェクトコードだけがあれば魔法タイプの自前反射処理をおこなう
906名無しさんの野望:2011/07/12(火) 08:13:49.06 ID:FLYYVFF+
>>905
朝から何やってんだって話ですが反射無効できました!!
ってか反射をなくして反射率分だけ相手にダメージって仕様に変更したんです。
Vanillaの反射は明らかにチートなのでこれで面白くできそうです、ありがとうございました。
907897:2011/07/12(火) 19:13:41.65 ID:10d0q5Ac
>>900>>902

遅レスですみません。
完全に勘違いしておりました。お恥ずかしい限りです。

Gethealthは装備品だけだったのですね。

GetMaxAVを利用したらEvaなども必要なくあっさり実現できました。
if分中では式が使えないので予め変数を作成してから代入の件も把握しました。

ありがとうございました。
908名無しさんの野望:2011/07/12(火) 20:58:32.70 ID:r4ZRgNwh
>>907
Eva( ) → Eval( )でしたorz

Eval関数は、たとえばarray_var変数を比較式に使いたいときなどに使用します
OBSEで追加された型、OBSEで追加された一部の関数もIF判定に使用できるので便利です

デメリットとして、IF判定すべてにEval使うと速度低下につながるので、
OBSE関数がどれなのか覚えて使い分ける必要があるってことでしょうか…
909名無しさんの野望:2011/07/12(火) 22:41:50.61 ID:+ph9ZM/b
数日前に全力スレで質問したのですが回答を得られず、
また延々いろいろ試したのですが上手くいく気配がないためお願いします。

TriggerZoneに添付するスクリプトで、

プレイヤーの攻撃&プレイヤーの矢・魔法のヒットの検出を検出する方法はありますか?

前者については過去ログにあるAnimPathIncludesというので、OnTriggerに

>if (GetActionRef == Player)
>if (GetDistance Player <= 100)
>if (player.AnimPathIncludes attack)

みたいな感じで割りと適当にそれらしいことはできそうなことはわかりましたが、
とにかく後者のPCの矢・魔法の検出がうまくいきません。

ActivatorがOnTriggerやOnHitに素直に反応する仕様であればよかったのに・・・
910名無しさんの野望:2011/07/12(火) 23:27:10.39 ID:obSto4H/
>>909
TriggerZoneにOnHitやOnHitWith、OnMagicEffectHitは無効だと思いますよ。
スクリプトのブロック構造でもOBSEのEventHandlerでも。

で、そのオブジェってActivatorやTriggerZoneではなく素直にCreatureじゃダメなん
ですかね。
適当なSkeletonに好きな絵を付ければ見た目はどうにでもなると思います。
攻撃しても死なない様にする事は多分出来ますし、位置を常時SetPosすれば殴っても
動かない様にも出来ますし。

Creatureなら話が至極単純になりそうな気が。
目的用途にもよるとは思いますけど。その辺どうなんでしょう。
911名無しさんの野望:2011/07/12(火) 23:49:55.68 ID:+ph9ZM/b
>>910
ありがとうございます。

ちょっとまだ試験的に試していて、
Creature以外で似たようなことをできたら色々できるかな?
と思った次第です。

912名無しさんの野望:2011/07/13(水) 00:28:33.66 ID:QWHqzu3h
>>911
うーん、なんかややこしそうですが。
TriggerZoneのOnTriggerでProjectile(矢/魔法の弾)の通過は検出出来ます。

でも通過してしまうので当たったら停止させる必要があるならなんか手当ての必要が。
TriggerZoneにnifレベルで違う種類のコリジョンを共存させる、みたいな事が出来る
かはやってみないと謎です。

その辺を考えるとActivatorにしてProjectileやTouch魔法はOnHitWithと
OnMagicEffectHitで検出、直接攻撃はPCの位置と向き、アニメで検出、みたいにした
方が単純になるかもです。
913名無しさんの野望:2011/07/13(水) 00:49:58.24 ID:8QDpE6/9
>>912
一応おっしゃるとおり
TriggerZoneにOnTriggerで検出はできたのですが、
プレイヤー限定にできずに詰まってしまって

という感じです。
停止させるような動作は別のActivatorを重ねて別に止めてあげればいいですし、
そのあたりはどうにでもなるのであまり気にしてはおりません。

まだあまり読み解けて以内OBSEあたりで何かある可能性に期待していたのですが、
やはり現状きつそうな感じですね。

ありがとうございます。もう少しいろいろ試しては見たいと思います。
914名無しさんの野望:2011/07/13(水) 01:43:24.87 ID:QWHqzu3h
OnTriggerのGetActionRefでProjectileのRefを取れば「GetProjectileSource」で
そのCasterのRefは分かると思います。

何をどうするかは用途目的次第なんでその辺また必要でしたら。
915名無しさんの野望:2011/07/13(水) 17:41:30.34 ID:8QDpE6/9
>>914
>GetProjectileSource

このような機能があったとは知りませんでした。
この機能を組み込んだところ、想定していた動作が確認できました。
ありがとうございました!


捕捉:
>適当なSkeletonに好きな絵を付ければ見た目はどうにでもなると思います。

これがどうにもうまくいかなかったため、力技での解決を模索していた次第です。

916名無しさんの野望:2011/07/13(水) 21:17:29.80 ID:uPf19e2n
負荷の問題で質問です

基本的に大した差はないとは思うのですけど、例えば常時ゴースト化させたいNPCがいる場合、

とりあえず、何も考えずにゴースト化させるスクリプト…

Begin GameMode
SetGhost 1
End

と、ゴースト化していない場合だけゴースト化させるスクリプト…

Begin GameMode
if GetIsGhost == 0
SetGhost 1
Endif
End

では、どちらが負荷がかかるのでしょうか?
If文を使っても、結局Falseでも読み込みするようだから負荷が上がるっていうレスを見たのですけど、
常時設定させるより、If文で逃がした方が負荷が低いのかな?と思って。

負荷が上がるようでしたら、常時設定の関数をIf文で判定を全部逃がしたいと思っています。
917名無しさんの野望:2011/07/13(水) 21:32:14.89 ID:jEsPCjTh
>>915
家具みたいな静的なオブジェのnifをCreatureの体用nifにするには、
そのnifにNifSkopeで例えばネズミのhead.nifのNiStringExtraDataを0番NiNodeに
コピペし、そのStringDataを「Bip01」に書き換え、もしbhkCollisionOblectがあるなら
右クリ→BlockRemoveすればそれで大体OKだと思います。

体位置の調整が必要なら0番NiNodeを右クリ→Transform→Editで。

体nifが出来たらCSで適当なCreatureをコピーして新Creatureを作り、そのnifをその
Creatureのフォルダに入れてCreature→ModelListタブで指定で。

あと、コリジョン形状の変更とかもっと色々細かな事をする場合はSkeletonの改造も
必要になったりするので、オリジナルCreatureの作り方的な少し細かな話に
なって来ると思います。
918名無しさんの野望:2011/07/13(水) 22:53:04.83 ID:jEsPCjTh
>>916
うーん、その二つの実行時間の差そのものはさほど問題ではない気も。
確認はしてないですけど。

GameMode自体を使わない方法を考えた方が負荷低減の効果はずっと大きいと思うの
ですが、まずその辺はどうなんでしょね。

あとその二つみたいな場合って、単なる実行時間だけでなくその実行関数を毎フレーム
連発する事自体が安全かどうかがまず問題になったりするですよ。

一般的にはGameModeや不要な毎フレームの実行関数呼び出しはなるべく避け、
判定関数なりフラグ変数の条件でReturnしてこまめにスクリプトを終了させた方が
総合的に負荷は小さく安定性も上がると思います。一般論ですが。
919名無しさんの野望:2011/07/14(木) 11:23:20.06 ID:ruJak6v8
>>917でnifのコリジョン削除の手順に適当なことを書いてしまいました。訂正です。

誤) 右クリ→BlockRemoveすれば
正) 右クリ→Block→RemoveBranchすれば

お詫びに単純化したCreatureのセットを。

http://shy.jsphr.net/upload/img/ups28686.zip
http://shy.jsphr.net/upload/img/ups28687.jpg SS

以前マーカー用に作ったモノですが上みたいな目的にも使えると思います。
体nif改造例も入れときました。詳細は同梱txtに。ご参考用にでも。
920名無しさんの野望:2011/07/14(木) 18:35:29.04 ID:lA1OeLH5
>>918
助言ありがとうございます

やっぱりあまり負荷に違いがなさそうなので、そのままSetGhost 1だけのやり方で
問題出ないか様子見つつやっておきます

SetGhost自体は、GameModeブロックのスクリプト中の一行にしかすぎないので、
結局はGameMode自体外すのは難しそうなので、ここに一行だけ常時走らせおくことにしてます。
921名無しさんの野望:2011/07/14(木) 19:31:08.98 ID:jQO7/Ca7
>>917>>919
サンプルまでありがとうございます。
Creature作成に関する記事なども参考にして、色々やった結果一度あきらめていたのですが、
こんなに簡単に擬似的に再現できるとは思いませんでした。

事後報告で申し訳ないのですが、
コリジョンに関しては問題なく調整はできていますので大丈夫です。

せっかくですしこれを機にCreature周りも再度本格的にいじってみるかもしれません。
ありがとうございました。

922名無しさんの野望:2011/07/14(木) 21:37:49.28 ID:ZKBlXa6D
横から失礼いたします。

自作modでsmallworld設定の大陸を作ろうとしたのですが、
hightmapの描画をしてsaveし、ゲーム内で確認したところ、
地形が大きく裂けてしまっていました。
原因を調べるためにCSを開くと、マップがこのようにバグっていました。

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

これは地形の高低差があまりにも厳しすぎるのが原因なのでしょうか?
923名無しさんの野望:2011/07/15(金) 12:30:37.51 ID:CgVMgujw
>>922
それってespをSaveした時に何かWarningが大量に出たと思うのですが、
それを無視してセーブ→espを再ロードするとそうなるかもです。

元々HeightmapEditって少し挙動が怪しく、極端に切り立った地形を作ったり、
特に何もしなくても(0,0)や(32,32)みたいな各象限の角のセルにWarningが出て
そのセル全体の位置が変になったり地面のグリッドが部分的に陥没したりする事が。

対策はそのセルの段差をWarningが出なくなるまで滑らかにするか、象限の角セルなら
RenderWindowでセルの隅の陥没等の明らかに異常な個所を探して一つずつLandscapeEdit
のFlattenかSoftenで手作業で修正するしかないかもです。

その辺の話はここにも。

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

あと、もし切り立った崖の谷底の迷路的な地形を作るのでしたら、HeightmapEditでは
全体のおおまかな当たりを付けるだけにして、谷を掘り下げて崖を作るのは
LandscapeEditでやった方が安全かもです。
924名無しさんの野望:2011/07/15(金) 15:57:59.85 ID:9OdzwN29
すみません。
以前全力スレで質問したのですが、結局わからなかったので、改めてお願いしたいです。

begin gamemode 1026(本モード)

set BookName to GetActiveMenuObject

if BookName == BookA → (その本がBookAであれば)
set Flag to 1
endif

という感じで本に直接スクリプト添付と、
クエストスクリプト両方で試しているのですが、うまくいきません。

使い方が間違っているには違いないのでしょうが、
GetActiveMenuObjectの使い方を
簡単にでもいいのでお願いできませんでしょうか?
925名無しさんの野望:2011/07/15(金) 16:04:56.14 ID:wvsLW37C
>>924
そもそも、
begin gamemode 1026
じゃなく、
begin MenuMode 1026
じゃないの?
926名無しさんの野望:2011/07/15(金) 16:08:14.59 ID:9OdzwN29
即レスすみません
ミスでした。
おっしゃるとおり、menumodeでやっております。
927名無しさんの野望:2011/07/15(金) 18:28:48.97 ID:qMZEaW/0
>>924
もう自己解決したのかな?

普通にMenuModeに変えて、試してきたら、
Flagは1を返したので別に間違ってそうな所はないのだけど…

間違えるとしたら、BookAのIDの指定を間違っているとか。
928名無しさんの野望:2011/07/15(金) 19:25:54.00 ID:TdB6bcNm
>>923
ありがとうございました。
とりあえずrenderwindowから修正してみます。
929924:2011/07/15(金) 22:09:08.53 ID:BpXYqb8R
>>927
レス感謝。
うーん合っていますか。

何度やっても機能してくれないです。
IDは間違えようがないですし。
930名無しさんの野望:2011/07/15(金) 23:34:54.24 ID:qMZEaW/0
>>929
ごめんなさい、自分のScriptが正解の方へ間違っていた(?)という変なことしてたので
機能しない原因が分かりました。

set BookName to GetActiveMenuObject 1026←これ
この1026を記述すれば上手くいくと思います。

ちなみに、参考にしてはならないけど、Flagが1を返していた失敗TestScriptではこうしていました。

ref BookName
ref BookName2
short Flag

begin Menumode 1026
 set BookName to GetActiveMenuObject 1026 ←これが指定間違い
 set BookName2 to GetActiveMenuObject 1026
  if BookName2 == TestBook
  set Flag to 1
  Endif
MessageEX "%i%r%i%r%.0f" BookName BookNamed Flag ←デバッグ用メッセージ
End

本来は、GetActiveMenuObjectの1026の、指定なしと指定ありでのRefの読み方の違いを見るつもりでしたが、
両方1026を指定してしまっているのを気付くorz

とりあえず、GetActiveMenuObjectに1026を指定すると動くと思います。

1026を指定しないと、本を開いた時に000000を返しているのが分かるので、
そのために上手く機能していないのかもしれません。
931名無しさんの野望:2011/07/16(土) 15:59:07.14 ID:QAkrr2rb
>>930
うまくいきました

文中にも モード指定が必要だったのですね。
無事動作の確認ができました。
わざわざテストまでしていただきありがとうございました!
932名無しさんの野望:2011/07/17(日) 12:58:39.73 ID:d0U4Vt2T
1フレーム内に完結した処理で、現在プレイヤーがいるセル以外も含めた、現存する全アクターを取得したいのですが、
何か方法はありますでしょうか?
933名無しさんの野望:2011/07/17(日) 23:21:52.12 ID:Eewm5eN3
>>932
もし各アクターに処理をしたいだけなら近づいたときでいいと思うし、イベントハンドラ使うとかやりたいこと次第では楽な方法があると思います。
なので可能ならその全アクターに施したい処理も言っておけば答えてもらいやすいんじゃ?
僕は無理です。
934名無しさんの野望:2011/07/17(日) 23:25:55.38 ID:1NjbzAet
1Fで全アクターは不可能でしょうね
方法も思いつきませんし可能だとしてもPCの処理が追いつかないでしょう
935名無しさんの野望:2011/07/18(月) 07:20:40.34 ID:aw2CchgM
手詰まりしてしまったので、教えていただけると幸いです。

ある既存Cellに新しくコンテナを設置するMODを作成しているのですが、
コンテナの中身のRespawn時間を既存CellのRespawn時間に影響されないように、
別に用意した新規Cellにコンテナを設置し、既存Cellからはダミーオブジェクトを
Activateすることでコンテナを開くようにしたいのです。

進捗は下記のとおりです。
1)新規Cellにコンテナを設置
2)既存Cellにダミーオブジェクト(MiscItem)を設置
3)下記のスクリプトを2)に設定
---------
Ref XXX

begin OnActivate

Set XXX to GetParentRef
XXX.Activate player

end
---------

ここまで終えて確認してみたのですが、
ダミーオブジェクトをActivateして本当のコンテナのアイテムを取得できましたが、
Respawnが反映されません。
本当のコンテナが置かれたCellまで移動して、本当のコンテナをActivateしてから
(ダミーを通じて開かせているためかここでは開きませんが)もう一度ダミーオブジェクトを
Activateすると、反映されるようです。

冒頭の目的でRespawnが反映されるようにしたいのですが、どのように改善したらよいでしょうか?
936名無しさんの野望:2011/07/18(月) 10:38:52.85 ID:tV2Sxum0
>>933,934
ご回答ありがとうございます。
知りたいのは「MODでやりたいことへの到達手段の模索」ではなく
>>932そのもの」ですので、これまで自分で実験してみた結果+皆さんの回答によって、
単純に「これを実現する方法はない」という結論を得たことで目的は達成されています。

(現状やりたい事は>>933さんのおっしゃるような一般的な方法でやっていますが、もし>>932が可能だとすれば、
 より最適化・高精度化が出来、また今後も色々応用出来るので方法がないか探していた…という経緯です)

以上、ありがとうございました。
937名無しさんの野望:2011/07/18(月) 15:54:40.89 ID:N3s/5PAs
>>935

単純に

begin OnActivate

ダミーコンテナ.Activate Player

end


コレだけでいけると思うよ
938937:2011/07/18(月) 15:56:25.29 ID:N3s/5PAs
ああごめん後半よんでなかった
脊髄反射すまん

スルーしてくれ
939名無しさんの野望:2011/07/18(月) 17:27:38.74 ID:QKOEpdY/
>>935
コンテナ中身のRespawnってそのコンテナが置いてあるセルがロードされた時にだけ
起こります。
PCが移動せずにセルをロードしたり、ロードせずに他所のセルのコンテナ中身だけを
システムにRespawnさせたりは出来ないです。恐らく。多分出来ないと思うのですが。

なので例えば、GetBaseItemsとCalcLevItemで自前でRespawnと等価な事をする、
みたいな方向で考えた方が早いかもです。


あと少し別な話になりますが、その挙動の

>(ダミーを通じて開かせているためかここでは開きませんが)

というのは恐らくActivate関数にRunOnActivateBlockの指定が無いからで、Respawnや
ダミーとは関係無いActivate関数の既知の不具合です。
詳細はCSWikiの「Activate」を。
940名無しさんの野望:2011/07/18(月) 18:05:27.20 ID:vgt0HFYn
>>935
たぶんHTSCの卵の人ですよね?これrespawnにこだわる必要あるのかな?

グローバル変数 HTSCrespawnTime
short today
short flag

begin OnActivate

;現在日をゲット (24時間×60 = 1440)
set today to GameDaysPassed * 1440

if HTSCrespawnTime == 0
set flag o 1
elseif ( today >= (HTSCrespawnTime + (1440 * 3)))
set flag to 1
endif

if flag
Set HTSCrespawnTime to today

<コンテナの中身を全部削除する処理 (RemoveAllItems等)>
<コンテナがレスポーンした時に入れておきたいアイテムを追加する処理>

endif
end

箱の数だけグローバル変数必要だけどたぶん1つですよね?
多くてもそんなに無いと思うんですけどこんなのじゃだめなのかな
ちなみに未検証なのでどこか間違ってるかもしれません
941名無しさんの野望:2011/07/18(月) 18:10:51.58 ID:vgt0HFYn
あ、flagを0にし忘れてるんでif flag の処理の中でクリアーしてください

942名無しさんの野望:2011/07/18(月) 18:43:47.10 ID:QKOEpdY/
質問の文面から例えば、同じダンジョンとか室内にずっといても宝箱の中身が
普通にRespawnする様にしたい、みたいな事だと思ったのですが。

なんか別な事だったんでしょうか。
943935:2011/07/18(月) 20:31:30.39 ID:aw2CchgM
>>939
>>940

丁寧なレス、本当にありがとうございます。
CSWikiとGoogle先生頼りに勉強しながら取り組んでいるスクリプト素人なもので、
不具合の理解や代替案の発想まではありませんでした。本当にありがたいです。

Respawnについては、私の環境がRespawn時間をランダムで6-24時間(Timescaleは1)
にしていて一晩寝ればほぼ復活されるので、単純にRespawnだけで満足という現状と、
配布用のニーズ(デフォルト環境の人に向けて既存CellのRespawn時間の影響を受けないようにする)
を併せても、ただ違うCellからActivateさせるだけで解決なら理想だったのですが、
>>940の代替案も気付きがありますね…。

ちょっと悩んできます。
944名無しさんの野望:2011/07/18(月) 20:44:00.06 ID:vgt0HFYn
>>942
たぶんなんですけど話の流れから
http://yuzuru.2ch.net/test/read.cgi/game/1309949427/618
だと勝手に当たりを付けてます

なのでそれとは違うとまったく成り立たない話に

個人的にはこの話だとすると別にrespawn風にもこだわる必要ないと思うんですよね
要望者は卵とミルクが手に入れば問題なさそうですし
アクティベートする度にミルクが手に入る仕組みでもいいような気がするんです

begin OnActivate

<コンテナの中身を全部削除する処理 (RemoveAllItems等)>
<コンテナがレスポーンした時に入れておきたいアイテムを追加する処理>

end
945943:2011/07/18(月) 21:18:11.98 ID:aw2CchgM
>>944
あっ、そうですその書き込みの者です。失礼しました。

>個人的にはこの話だとすると別にrespawn風にもこだわる必要ないと思うんですよね
>要望者は卵とミルクが手に入れば問題なさそうですし

2度目に手に入りづらいことに問題がある、という指摘だったので、
確かにそうかもしれませんね。
必要な時に必要なだけ取れるに越したことはないでしょうか。


私も考えてみたのですが、今までの質問とご回答が無駄になってしまいますが
いっそ新規Cellの内装を作り込んで普通にドアから移動して取りに行くようにすれば
用途も広がるかと思ったのですが、これだと望まれていることとは違ってきますかね。
946名無しさんの野望:2011/07/18(月) 21:51:36.56 ID:QKOEpdY/
あー、そゆことですか。
コンテナが少なくてアイテムも決まってるなら特には問題無い気も。

コンテナが大量だったりして時間判定のローカル化や各コンテナのリスト通りに
Respawnが必要、みたいな事がありましたらまた。
947名無しさんの野望:2011/07/18(月) 23:09:02.37 ID:RNwgBwGI
MIDAS魔法などMODで追加された魔法を敵NPCに覚えさせることは可能でしょうか?
948名無しさんの野望:2011/07/18(月) 23:54:53.84 ID:FN66Dx+W
>>947
その名もMIDASforNPCとかいうMODがあってだな・・・
作り方というならすまん力になれない。上記MOD解析とか頑張ってみてはとしか
949名無しさんの野望:2011/07/19(火) 02:31:31.90 ID:a4lwcGBd
>>478
すでに有ったんですね・・・
ありがたく使わせてもらいます
950名無しさんの野望:2011/07/21(木) 07:39:06.79 ID:M5VAIAPW
すみません。途中で送信してしまいました。

2割ダメージが通るのを0.5%くらいにしたいのですが、
GECKのどこの値を弄れば良いのでしょう?
951名無しさんの野望:2011/07/21(木) 07:40:36.55 ID:M5VAIAPW
誤爆
952名無しさんの野望:2011/07/21(木) 22:23:16.29 ID:CMGBQcYm
すみません、CSで既存の装備のデータを流用した
コンパチ装備を作ろうと考えたのですが
既存のアイテムのコピーはどうすればいいのでしょう
ひょっとしてデータをどこかに書きとめて手打ちするしかないのでしょうか
953名無しさんの野望:2011/07/21(木) 22:31:55.52 ID:IXNlpAGU
>>952
コピーしたいアイテムのEditor IDを変更するといい
954名無しさんの野望:2011/07/21(木) 22:44:01.46 ID:CMGBQcYm
>>953
ありがとうございます!
955名無しさんの野望:2011/07/21(木) 23:06:42.49 ID:eSwoiOiz
NPCに、複数の装備セットの中から、ランダムで1セットを装備させようと思っています

例えば、次のような2つのセットを考えた場合、半々の確率でどちらか1セットを装備させたいわけです
・Iron一式セット(Iron Helmet,Iron Cuirass,Iron Guntlet...)
・Steel一式セット(Steel Helmet,Steel Cuirass,Steel Guntlet..,)

実際にはこのようなセットは、2つではなく、多数を考えています

これ、スクリプトなしで、LeveledItemをうまく構成してNPCのインベントリに設定する、
という方法で可能でしょうか?
スクリプト使うと可能なのは分かるのですが、なしで済むならなしで進めたいです
956名無しさんの野望:2011/07/22(金) 01:04:39.22 ID:8ZDRtBEu
たぶん無理じゃね。
全身鎧なら統一するだろうけど、
Leveledだけじゃちぐはく装備が発生すると思う。
957名無しさんの野望:2011/07/22(金) 02:10:52.42 ID:6pGkI/cl
>>956
ご返答ありがとうございます
無理ですか
スクリプト組んでみようと思います
958名無しさんの野望:2011/07/22(金) 07:13:48.82 ID:AmM3Oy8i
>>955
逆にleveledcreatureで
Iron一式装備した奴とSteel一式装備した奴作るのはどうか
959名無しさんの野望:2011/07/22(金) 19:44:11.28 ID:ZurttObW
質問です

故意に出血痕(武器や罠などで物理ダメージを受けた時に壁や床にできる出血痕)をつけたいのですけど、
OBSEを含めた関数でそれらしいことってできるのでしょうか?

他にも、PlaceAtMeで何か罠をアクターに重なるように設置して出血させて、OnTriggerなどでDeleteReferenceでもすれば再現できるかな?と思ったのですけど、
これもいい罠がなくて頓挫しています…

何かお知恵があればお願いします。
960名無しさんの野望:2011/07/22(金) 22:43:17.15 ID:cIew8mlN
>>959
コンソールコマンドに「AddDecal」てのがありますけど。
またTrapなら例えばTriggerZoneのnifを改造してコリジョンだけのnifを作ったり。
それか全身血まみれでいいならEffectShaderという手も多分。
961名無しさんの野望:2011/07/23(土) 05:28:47.92 ID:734o6sq5
>>960
レスありがとうございます

AddDecal試したのですけど、イマイチ効果がわからないorz
ただ、スクリプト上で処理したいのでコンソールだとちょっと厳しいかもしれません。

やはりTrap改造が妥当なのかな?
nifの改造がわからないっていうのがとんでもないネックなんですがorz

一応、床に血をベタベタつけたいだけなので、全身血まみれは少し困りますw

でも、アドバイスありがとうございました。
962名無しさんの野望:2011/07/23(土) 10:12:19.91 ID:B+4PTPhF
>>961
AddDecalは地面方向を向いてコンソールで「adddecal」と入れれば現在の視線中央に
血痕が出現します。
地面以外のオブジェの場合は対象をクリックで。

スクリプトからはOBSEの「RunScriptLine」で。
地面以外は「相手のRef.RunScriptLine "adddecal"」みたいにRef指定が必要に。
でも血痕出現位置が視線で決まるのでやっぱ使い難いかもです。

Trapのnifを自前で作るならバニラのTriggerZoneの改造が早いかもです。

例えばmeshes\dungeons\misc\triggers\trigzone01.nifの
bhkSimpleShapePhantom→Layerを「OL_TRAP」にすればTrapオブジェに。
大きさの調整は0番NiNode→Transform→Editで適当なScaleを。
CSでのTrap指定は「RFTrapSpikes01」等が多分参考に。
963名無しさんの野望:2011/07/23(土) 11:15:42.06 ID:FT0jKeZj
TrearureChestの箱やDungeonBossといったいかにもなもの限定で
ドロップアイテムを追加するようなespを作れればと思っているのですが
(itembaramakiをそのまま使うとleveleditemのリストが一つしかない上に
特定の場所からだけということができないので)
この場合……

・追加したいmodを改変してレアアイテムのデータやドロップのリストを追加

という方法しかないのでしょうか
これだと対象modがバージョンアップするたびに
改めてアイテムやリストを作り直さなければならないので
リストは仕方がないとしてもアイテムデータは別espで一元管理したいのですが
何か良い方法はありませんでしょうか
964名無しさんの野望:2011/07/23(土) 11:20:30.75 ID:qM3Xxuw4
邪道だけどespをマスター指定したespを作り、
オリジナルの「追加したいmod」には手を加えないようにする。
そうすればオリジナルが更新された時、TES4Editで中身をチェックして、
無効になってる部分がないか確かめるだけで使い続けられる
965名無しさんの野望:2011/07/23(土) 11:43:33.83 ID:FT0jKeZj
>>964
(例として)DungeonBoss&TreasureChestをマスターにしたespを作り
そのesp上でリストを改変したりアイテムを追加するのですね
ついでにMMMもマスター指定すれば
バルログさん辺りにも設定できそうな予感……ありがとうございます
966名無しさんの野望:2011/07/23(土) 11:55:19.48 ID:nci0yqW6
>>963
タグ付けてBashed Patchを使えばLeveled Listを「混ぜる」事が出来る。
967名無しさんの野望:2011/07/23(土) 17:01:17.62 ID:6r/zy53K
キャラクターの能力強化値を取る簡単な方法ありますか?
たとえばラシーダ特性の小手と万能の指輪装備してるときに、「力+12(5+7)」をとってくる方法です。
いろいろコマンド探してみたけど、そのものずばりのがみつかりません、お願いします
968名無しさんの野望:2011/07/23(土) 21:25:52.95 ID:uSPKGpc4
setpos?のスクリプトに関する質問なのですが、getposで得た現在の位置に数値を足すことは可能でしょうか?
現在の対象のz値がXだとして、setposでX+1000とかにしたいのですが
969名無しさんの野望:2011/07/23(土) 21:31:57.40 ID:eu1T7qYA
>>968
set tmp to honya.getpos
set tmp to tmp + 1000
setpos tmp
じゃだめなの?
970名無しさんの野望:2011/07/23(土) 21:33:07.99 ID:qM3Xxuw4
float変数か何かを作り

float temp

set temp to player.getpos
set temp to temp + 1000
player.setpos temp

とかかな?
OBSE関数使ってもいいなら2行目が
let temp += 1000
でもイケると思う。
971名無しさんの野望:2011/07/23(土) 21:45:57.71 ID:uSPKGpc4
なるほど float変数使うのですか
letに関してはOBSEがまだちょっと良く分からないので勉強してからですね ありがとうございました
972名無しさんの野望:2011/07/24(日) 08:42:05.14 ID:8OfaZE9W
>>967
日本語だとちょっとよく分からないのですが、恐らくGetAV、GetBaseAVとか
そういう事だとすると例えばおおまかにはこんなかんじで。

Strengthの増減分 = 「GetAV Strength」の値 - 「GetBaseAV Strength」の値

でもActorValueって複雑で必ずしもこれで万全という訳では無いです。
もし値を取って再設定、みたいな影響が保存される様な事をするのなら
その辺もっと厳密にする必要があるのでCSWikiでGetBaseAVの制限の確認を。

またその「力+12(5+7)」の「5」と「7」みたいな内訳も必要なら話はまた少し
ややこしくなってくると思います。
973名無しさんの野望:2011/07/24(日) 09:14:50.38 ID:8OfaZE9W
>>971
横からですが。
SetPosの指定方法自体は上の方々の仰る通りなのですが、SetPosって万能ではなくて
オブジェの種類によって挙動が違います。

どんな種類のオブジェをどんな目的でどこに移動するか次第で他の手当てが必要に
なったりするのでその辺また必要でしたら。
974名無しさんの野望:2011/07/24(日) 12:00:35.10 ID:8dv2wJFW
NPCに対しスクリプトで、 leveleditemをaddし
(leveledlistにある数種類の中から選ばれた装備を一つだけaddし)
すぐに、同装備をequipeさせたいのですが

・付与された後、まだNPCが装備してないitemを
  equipeitem命令のためにgetする方法

または

・単純にNPCに対し、自動的に装備し直し(見直し)をさせる命令

はありますでしょうか?
お願いいたします
975名無しさんの野望:2011/07/24(日) 12:07:14.07 ID:mkKZOmVA
裸に追加ならDisableEnableで自動で着るんじゃないかい
位置ズレするから補正しなきゃだけど
一瞬でも消したくないならインベントリを配列とかで取得して
各アイテムを装備スロットで走査して必要な部位をEquipとか
976名無しさんの野望:2011/07/24(日) 13:42:41.69 ID:8dv2wJFW
ご教示ありがとうございます

・前者は、位置ズレが少し問題でした

・ただアドバイスをヒントに

me.AddScriptPackage [unequip]
me.EvaluatePackage [unequip]
me.RemoveScriptPackage [unequip]

*armorやweaponを外すAIパッケージ

me.AddScriptPackage [equip]
me.EvaluatePackage [equip]
me.RemoveScriptPackage [equip]

*armorやweaponを付けるAIパッケージ

でやってみたところ
装備の付け替えはしてくれるみたいでした
(ただその際にモーション等が解除されてしまう問題が出てきました)

・後者は、私の知識不足のせいで、何を意味しているのかわかりません、すみません

>必要な部位をEquipとか

装備品やスロットをgetする命令については、装備の有無や
何を装備しているかをgetする感じで、かと思っていました
「この部位を装備しろ」と命令できるのでしょうか?
977名無しさんの野望:2011/07/24(日) 13:43:17.02 ID:8dv2wJFW
・情報不足すみません、補足です
randompercentで決め打ちでitemをaddしていたものを、手間や負荷を省くために
LLを使えないかということなので、決め打ちで装備させていくのは除外な感じです

itemのON ADDスクリプトでコンテナにmeを装備させるスクリプトについても
負荷がどうかなーといった感じです
978名無しさんの野望:2011/07/24(日) 14:23:20.30 ID:8OfaZE9W
>>976
横からでアレなのですが。

単に各装備の優先順に従って全身を自動的に再装備させるのなら、適当な装備や服を
AddItem→それをEquipItem→それをまたすぐRemoveItem、みたいな方法がコンパニオン
MOD等で使われてます。

またもし、LeveledItemをAdd→生成されたアイテムを同じ部位の既に持っている装備の
優先順とは関係無く確実にEquip、みたいな事だとすると、その場合はLeveledItemを
OBSEのCalcLeveledItem等で自前で計算してIDを決定してからAdd→Equipとした方が
話が単純になるかもです。

LeveledItemをAddした後に未装備のアイテムのIDをgetして〜、となるとそれはそれで
かなりややこしくなりそうな気が。多分。

その辺って考え方も方法もたくさんあるので最終的にどういう動作にしたいのか次第
だったりします。
979名無しさんの野望:2011/07/24(日) 15:13:47.06 ID:xdARWVrC
>>977
プレイヤーが装備できない装備でも作って
各種装備を(1個以上持っていなければ)add&自身を削除するscriptを張り付けてやり、
それとListで配布してやるとか。

ただaddやremoveのコマンド自体が挙動不審でアテにしにくいと言う問題がある。
980名無しさんの野望:2011/07/24(日) 16:07:37.06 ID:tXr5rx5O
>>972
返事ありがとうございます。
実は、スキルの値からステータス計算するMODを作ってまして、SetAVでステータス作ってるんです。
装備とか魔法での能力強化は反映されるのにBirth Signだけ反映されないのでおかしいなと。
BirthSignでStrength+10のとき、GetBaseAVとGetAVでは同じ値が得られるので差分作戦は無理でした。

Realistic Leveling見ながらやってるんでできないはず無いんですが僕の理解力じゃ無理でした。
とりあえず諦めます。
981名無しさんの野望:2011/07/24(日) 17:22:30.75 ID:8OfaZE9W
>>980
あー、やっぱレべリングMODみたいな事をするんですか。
そのMODでどうやっているかは知らないのですが、例えばBirthSignの「Strength+10」
なんかはAbilityなんでOBSEのActiveEffect関連関数で取る事は可能です。
こんなかんじで。

Player.GetTotalAEAbilityMagnitude FOAT Strength

ActorValue関係ってややこしいんで色々大変だとは思いますが。
ご参考まで。
982名無しさんの野望:2011/07/24(日) 17:54:27.75 ID:+Qz/kKVS
クエストアイコンの画像って何処に入ってますか?
983名無しさんの野望:2011/07/24(日) 18:08:06.89 ID:tXr5rx5O
>>981
こっちが諦めてるのにありがとうございます。
TotalAEAbilityで言われた通りしたら簡単にできました。
984名無しさんの野望:2011/07/24(日) 20:38:43.73 ID:8dv2wJFW
>>978
ご教示のCalcLeveledItemで、想定通りの動作ができました、ありがとうございました

>>979
アドバイス、ありがとうございました
次回以降の参考にさせていただきます
985名無しさんの野望:2011/07/24(日) 21:52:00.10 ID:9dN+TifJ
>>962
レスありがとうございます
書き込み失敗してたの忘れてました、ごめんなさい

AddDecalは一人称視点専用みたいですね。
自分がほぼ三人称視点なので、???って状態になってました。
でも、確かにこれでは使い難いですね。

nifの改造指南ありがとうございます!すごく分かりやすいです。
これで何とか先に進めそうです。

とりあえず、Trap当てる方向でいきます。ありがとうございました。
986名無しさんの野望:2011/07/25(月) 08:56:32.65 ID:qQ5ggenS
>>985
あ、AddDecalて一人称専用ですね。申し訳無かったです。
申し訳無いついでに、>>962のTriggerZone改造の手順も適当な事を書いてしまった
ので訂正です。

>大きさの調整は0番NiNode→Transform→Editで適当なScaleを。

と書きましたがtrigzone01.nifの場合はこれだけでは不十分なので以下を追加で。

1) もう一度0番NiNodeを右クリ→Transform→Apply
2) 6番NiNodeの「EditorMarker」を右クリTransform→Apply
3) 3番bhkBoxShape→DimensionsのX,Y,Zに元々ある値に上で変更した倍率を掛けて
その各値を手入力

ちょっとややこしくなってしまいましたがそんなかんじで。
987名無しさんの野望:2011/07/25(月) 09:46:27.20 ID:qQ5ggenS
あれ、CS上でのBoundingBoxの大きさが変わってないですね。
8番NiTriStrips「EditorMarker:0」も右クリ→Transform→Applyした方がいいかもです。
988名無しさんの野望:2011/07/25(月) 10:15:31.06 ID:qQ5ggenS
>>982
バニラならData\textures\menus\icons\Questに。制限等はここを。

http://cs.elderscrolls.com/constwiki/index.php/Quest_Data_Tab
989名無しさんの野望
>>988
ありがとうございました。