if who == player if isInCombat stopCombat endif elseif (player.isSneaking)&&(GetStage **** >=20) startconversation Player, *******(Topic) set ****(インベントリ変数フラグ) to 1 return endif endif endif Activate end
if (TestQuest.updown(感情値を変動させる量の変数) != 0) if (testquestVar.updown == 1) AffectBox(感情値アイテムをいれとく箱).additem AffectApple 1 set TestQuestVar.updown to 0 endif elseif (testquestVar.updown == -1) AffectBox(感情値アイテムをいれとく箱).additem AffectApple -1 set TestQuestVar.updown to 0 endif
if (aaLoDVar.updown != 0) set Affect to aaLoDVar.Affection set Affect to Affect+(aaLoDvar.updown) set aaLoDVar.updown to 0 set aaLoDVar.Affection to Affect endif
ちなみに前者のNPC同士の会話のみの部分だけ↓で if (変数a == 0) Enable DisablePlayerControls StartConversation Test NPC2 TestConverSation(このConversationの最後で→set 変数a to 1) endif
[コンテンツ] Video 0 - Basic Controls in Blender Video 1 - Basic Modeling Video 2 - 3 cubed Sword Video 3 - UV Mapping Basics Video 4 - Exporting to Nif Video 5 - Animation Basics
SCN TwinSword ref who Begin GameMode set who to GetContainer if who.GetEquipped RightSword == 1 if who.GetItemCount LeftSword >= 1 if who.IsWeaponOut == 1 who.EquipItem LeftSword elseif who.UnequipItem LeftSword endif endif endif End
-------------------------- ERROR This script requires the Python File Format Interface (PyFFI). Make sure that PyFFI resides in your Python path or in your Blender scripts fold er. If you do not have it: http://pyffi.sourceforge.net/ -------------------------- Traceback (most recent call last): File "<string>", line 20, in <module> File "C:\Program Files\Blender Foundation\Blender\.blender\scripts\bpymodules\ nif_common.py", line 69, in <module> from PyFFI.NIF import NifFormat ImportError: No module named NIF
デフォルトのがに股待機モーションが気に入らなくて、 blenderでモーションを作成して試していたのですが、 kfinjecterでidle.kfを元にnifを作成してインポートして、モーションを作る所までは 上手くできたのですが、kfを保存するときに、タイムラインが元のと同じ長さじゃないと エクスポート途中でframe out of rangeエラーが出てしまいます。
Error saving land height data for cell (*.*)Error correction attemptedがいっぱい出ました。 過去ログには「TES4GeckoのClean Pluginが云々」というレスもあったけど、 Unable to cleanと言われてダメだった。
既存の髪型メッシュを加工して新しい髪型を作る方法について、wiki翻訳の原文の http://www.niftools.org/wiki/index.php/Oblivion/Creating_New_Hair_Meshes ↑の手順で3番目の記述にある To create a Bald mesh just dump a small rendered cube inside the original mesh, and delete it (maybe you could get away with no mesh at all). の部分を分かりやすく教えてもらえないでしょうか。 「作成した髪型メッシュに、適当にcubeを新規オブジェクトで追加し、cubeを消す(?)」 と自分は解釈しましたが、上手くいかないので間違っているかと・・・
1からコンパニオンを作成しようとしています。followとstayはCSwikiを参照してなんとか仕組みはわかりました。 その次の段階のコンパニオンの荷物にアクセスするところでつまずいてます。 Red_Headed_Gang_Quest_and_Girl_Companionの以下の部分を参照してスクリプトを組みましたがトピックはでるが、インベントリーの画面を開いてくれません・・ なにぶん初心者なので原因がわかりません・・スクリプトに詳しい方ご教授ください。(mpcやggcも参考にしましたが自分には難易度が高過ぎました) 1専用サックを作り適当に設置。 2以下のスクリプトを改変(""の部分をクエストにあわせたものにした) 3「荷物をみる」のトピックを追加してresult scriptにset クエスト名.share(変数) to 1 をコンパイル。condition functionをGetisIDでfunctionparanetersをコンパニオンのID Scriptname JJJceciliaScript"スクリプト名" ref npcref"これの意味がよくわからん・・・" short sharestate"変数名" *short shareは別のスクリプト(クエストのスクリプト)に書いた。 Begin GameMode if JJJCompgir"(クエスト名)".share"(変数名)" == 1 if(isridinghorse == 1) set JJJCompgirl"(クエスト名)".share"(変数名)" to 0 MessageBox "Inventory function unavailable on horse." return endif if sharestate"(変数名)" == 0 removeallitems JJJsharesack01ref"コンパニオンの専用サック" set sharestate"(変数名)" to 1 JJJsharesack01ref"コンパニオンの専用サック".activate player endif if sharestate"(変数名)" == 1 && MenuMode == 0 set npcref to getself JJJsharesack01ref"コンパニオンの専用サック".removeallitems npcref set sharestate"(変数名)" to 0 set JJJCompgirl(クエスト名).share"(変数名)" to 0 AddItem PitCuirass 1 EquipItem PitCuirass RemoveItem PitCuirass 1 endif endif end
refは変数の宣言だよ。ref npcrefならnpcrefって変数を作るだけ。 それでset npcref to getselfとかやるとnpcrefにコンパニオンのIDが代入される。
最初は単純なコードで動作確認するのが良さげ begin gamemode if JJJCompgirl.share == 1 set JJJCompgirl.share to 0 removeallitems JJJsharesack01ref JJJsharesack01ref.activate player endif end これでもトピックでset JJJCompgirl.share to 1されれば、それを検出してインベントリを 開くはず。安全確認や後始末をしないので実用にはならないけど、会話とスクリプトの連係 は確認できると思う。
>>573の例だと、トピックでset JJJCompgirl.share to 1されたらコンパニオンの スクリプトで if JJJCompgirl.share == 1 ;フラグが有効になった set JJJCompgirl.share to 0 ;フラグをクリアしておく removeallitems JJJsharesack01ref ;自分の所持品をコンテナに移動 JJJsharesack01ref.activate player ;コンテナをプレイヤーにアクティベート endif
マルチですみません。とりあえず>>790の再現法がわかりました。 @NifSkopeでskeleton.nifのボーンのscaleをいじる ACSで以下のスクリプトを作成 Scriptname 5RescaleBoneR Begin OnLoad EquipItem WeapSilverLongsword End
でも、もしかすると例えば Begin OnActivate というのは、仮想的には Begin GameMode If Activate == 1 endif end という処理と同じなんじゃないかと。(もちろん、If Activate なんてのはアリマセンが) 先頭の条件文でほとんどの処理を必要な時まで飛ばしてしまえるならば 別にGameMode ブロックでも負荷は同じなんじゃないでしょうか。 その辺、どう思われますか?